mysql时间格式化

视图、触发器、事务、存储过程、函数

大憨熊 提交于 2019-11-28 08:29:46
一、视图 1.什么是视图? 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来 它就变成了一个视图2.为什么要用视图? 当频繁需要用到多张表的连表结果,你就可以事先生成好视图 之后直接调用即可,避免了反复写连表操作的sql语句3.视图特点: 1.视图只有表结构,在数据库中只会生成表结构文件,视图中的数据还是来源于原来的表2.不要改动视图表中的数据,一旦改动就会改动原文件数据,并且在多表情况下,因为有关联关系,你也修改不了视图3.一般情况下不会频繁的使用视图来写业务逻辑 4.视图虽好可不要多用:1.视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便。企业中开发和数据库管理是分开的,如果你的大量逻辑都基于视图来写当你需要  新增视图或者修改视图就要跨部门交流,谁管你的吊事,并且人家可能也不会帮你去维护视图,一旦视图被误删或者丢失,你的所有代码都要重新从头再来,因此还是老老实实使用sql原生语句,该连表就连表2.生成一个视图就会生成一个表结构,当视图足够多的时候占用大量资源 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+

day39_8_23mysql的其他内容(视图等)

一曲冷凌霜 提交于 2019-11-28 08:29:35
一。视图   MySQL中有一种比较方便的表,就是视图(view)。   什么是视图?   视图就是通过查询获得一张虚拟表,然后将其保存,下次可以直接使用这个视图。   使用视图就可以不需要重复查询/连接表,在代码层次比较方便。   视图创建的语法: #语法:CREATE VIEW 视图名称 AS SQL语句 create view teacher_view as select tid from teacher where tname='李平老师';   修改了视图里的数据后,原数据表中的数据也会跟着修改,所以,视图只是复制了他的表结构,。   而且,设涉及多个表的视图是无法修改的。 # 修改视图 ALTER VIEW 视图名称 AS SQL语句   删除视图 语法:DROP VIEW 视图名称 DROP VIEW teacher_view   视图不会被频繁的使用。视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能。 二。触发器。   触发器使得当某个操作数据表的增删改之前或者之后,自动触发一些语句。   触发器的操作有:

视图、触发器、事务、存储过程、函数、流程控制

蹲街弑〆低调 提交于 2019-11-28 08:07:00
一、视图 1.什么是视图 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来 它就变成了一个视图 2.为什么要用视图 当频繁需要用到多张表的连表结果,你就可以事先生成好视图 之后直接调用即可,避免了反复写连表操作的sql语句 3.如何使用视图 创建视图语句: create view teacher_course as select * from teacher INNER JOIN course on teacher.tid = course.teacher_id; 注意: 1.视图只有表结构,视图中的数据是来源于原来的表 2.不要改动视图表中的数据 3.一般情况下不会频繁的使用视图来写业务逻辑 二、触发器 1.什么是触发器 触发器是达到某个条件自动触发, 当对数据进行增、删、改的情况下会自动触发触发器的运行 2.为何要使用触发器 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 就会触发触发器的执行,即自动运行另外一段sql代码 3.固定语法结构 create trigger 触发器的名字 after/before insert/update/delete on 表名 for each row begin sql语句 end 如下: t1为表名 触发器名:tri_befor_t1 在触发器之前或者之后进行插入或更改或删除t1

【数据库】MySQL 函数大全包含示例(涵盖了常用如时间、数字、字符串处理、数据流函数的和一些冷门的)

末鹿安然 提交于 2019-11-28 00:33:30
ps:博客园markdown不能自动生成列表,更好的阅读体验可访问我的个人博客http://www.isspark.com/archives/mysqlFunctionDesc 数学函数(Mathematical Functions) 函数名 描述 示例 ABS(X) 绝对值 SELECT ABS(-2); -> 0 ACOS(X) 反余弦值 SELECT ACOS(1); -> 0 ASIN(X) 反正弦值 SELECT ASIN(0.2); -> 0.20135792079033 ATAN(X) 反正切值 SELECT ATAN(2); -> 1.1071487177941 ATAN(Y,X), ATAN2(Y,X) 反正切值(两个参数), 类似于求Y/X的反正切值 SELECT ATAN(-2,2); -> -0.78539816339745; CEIL(X),CEILING(X) 求不小于X的最小整数 SELECT CEILING(1.23); -> 2 CONV(N,from_base, to_base) 将数据N从from_base进制转化 成to_base进制 SELECT CONV(2,10,2); ->10 COS(X) 余弦值 SELECT COS(PI()); -> -1 COT(X) 余切值 SELECT COT(12); -> -1

mysql将int 时间类型格式化

為{幸葍}努か 提交于 2019-11-27 04:42:00
DATE_FORMAT(date,format) 根据format字符串安排date值的格式。 select from_unixtime(time,'%Y-%m-%d %H:%i:%s'); select from_unixtime(now(),'%Y-%m-%d %H:%i:%s'); 以下说明符可用在 format字符串中: 说明符 说明 %a 工作日的缩写名称 (Sun..Sat) %b 月份的缩写名称(Jan..Dec) %c 月份,数字形式(0..12) %D 带有英语后缀的该月日期(0th, 1st, 2nd, 3rd, ...) %d 该月日期, 数字形式(00..31) %e 该月日期, 数字形式(0..31) %f 微秒(000000..999999) %H 小时(00..23) %h 小时(01..12) %I 小时(01..12) %i 分钟,数字形式(00..59) %j 一年中的天数(001..366) %k 小时(0..23) %l 小时(1..12) %M 月份名称(January..December) %m 月份, 数字形式(00..12) %p 上午(AM)或下午(PM) %r 时间, 12小时制(小时hh:分钟mm:秒数ss后加AM或PM) %S 秒(00..59) %s 秒(00..59) %T 时间, 24小时制(小时hh:分钟mm:秒数ss

MySQL日期时间函数大全

拥有回忆 提交于 2019-11-26 22:16:36
MySQL 日期时间函数大全 DAYOFWEEK(date)  返回日期 date 是星期几 (1= 星期天 ,2= 星期一 , …… 7= 星期六 ,ODBC 标准 ) mysql> select DAYOFWEEK('1998-02-03');    -> 3 WEEKDAY(date)  返回日期 date 是星期几 (0= 星期一 ,1= 星期二 , …… 6= 星期天 ) 。 mysql> select WEEKDAY('1997-10-04 22:23:00');    -> 5 mysql> select WEEKDAY('1997-11-05');    -> 2 DAYOFMONTH(date)  返回 date 是一月中的第几日 ( 在 1 到 31 范围内 ) mysql> select DAYOFMONTH('1998-02-03');    -> 3 DAYOFYEAR(date)  返回 date 是一年中的第几日 ( 在 1 到 366 范围内 ) mysql> select DAYOFYEAR('1998-02-03');    -> 34 MONTH(date)  返回 date 中的月份数值 mysql> select MONTH('1998-02-03');    -> 2 DAYNAME(date)  返回 date 是星期几 (

MySQL函数大全 及用法示例

泪湿孤枕 提交于 2019-11-26 22:16:19
字符串函数 ASCII(str)  返回字符串str的第一个字符的ASCII值(str是空串时返回0) mysql> select ASCII('2');   -> 50 mysql> select ASCII(2);   -> 50 mysql> select ASCII('dete');   -> 100 ORD(str)  如果字符串str句首是单字节返回与ASCII()函数返回的相同值。  如果是一个多字节字符,以格式返回((first byte ASCII code) *256+(second byte ASCII code))[*256+third byte ASCII code...] mysql> select ORD('2');   -> 50 CONV(N,from_base,to_base)  对数字N进制转换,并转换为字串返回(任何参数为NULL时返回 NULL,进制范围为2-36进制,当to_base是负数时N作为有符号数否则 作无符号数,CONV以64位点精度工作) mysql> select CONV("a",16,2);   -> '1010' mysql> select CONV("6E",18,8);   -> '172' mysql> select CONV(-17,10,-18);   -> '-H' mysql> select CONV

MySQL日期时间函数大全

♀尐吖头ヾ 提交于 2019-11-26 22:16:14
DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准) mysql> select DAYOFWEEK('1998-02-03');   -> 3 WEEKDAY(date)  返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 mysql> select WEEKDAY('1997-10-04 22:23:00');   -> 5 mysql> select WEEKDAY('1997-11-05');   -> 2 DAYOFMONTH(date)  返回date是一月中的第几日(在1到31范围内) mysql> select DAYOFMONTH('1998-02-03');   -> 3 DAYOFYEAR(date)  返回date是一年中的第几日(在1到366范围内) mysql> select DAYOFYEAR('1998-02-03');   -> 34 MONTH(date)  返回date中的月份数值 mysql> select MONTH('1998-02-03');   -> 2 DAYNAME(date)  返回date是星期几(按英文名返回) mysql> select DAYNAME("1998-02-05");   -> 'Thursday' MONTHNAME

MySQL日期时间函数大全

烈酒焚心 提交于 2019-11-26 22:15:59
DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准) mysql> select DAYOFWEEK('1998-02-03');   -> 3 WEEKDAY(date)  返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 mysql> select WEEKDAY('1997-10-04 22:23:00');   -> 5 mysql> select WEEKDAY('1997-11-05');   -> 2 DAYOFMONTH(date)  返回date是一月中的第几日(在1到31范围内) mysql> select DAYOFMONTH('1998-02-03');   -> 3 DAYOFYEAR(date)  返回date是一年中的第几日(在1到366范围内) mysql> select DAYOFYEAR('1998-02-03');   -> 34 MONTH(date)  返回date中的月份数值 mysql> select MONTH('1998-02-03');   -> 2 DAYNAME(date)  返回date是星期几(按英文名返回) mysql> select DAYNAME("1998-02-05");   -> 'Thursday' MONTHNAME

MySQL日期时间函数大全 转

别说谁变了你拦得住时间么 提交于 2019-11-26 22:15:41
MySQL日期时间函数大全 DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准) mysql> select DAYOFWEEK('1998-02-03');   -> 3 WEEKDAY(date)  返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 mysql> select WEEKDAY('1997-10-04 22:23:00');   -> 5 mysql> select WEEKDAY('1997-11-05');   -> 2 DAYOFMONTH(date)  返回date是一月中的第几日(在1到31范围内) mysql> select DAYOFMONTH('1998-02-03');   -> 3 DAYOFYEAR(date)  返回date是一年中的第几日(在1到366范围内) mysql> select DAYOFYEAR('1998-02-03');   -> 34 MONTH(date)  返回date中的月份数值 mysql> select MONTH('1998-02-03');   -> 2 DAYNAME(date)  返回date是星期几(按英文名返回) mysql> select DAYNAME("1998-02-05");   -> 'Thursday'