数据库小笔记
文章平均质量分 55
我是程序媛
这个作者很懒,什么都没留下…
展开
-
数据库字段为什么设置为Not Null更优化
(针对MySQL,部分原因可见另一篇博文《数据库(MySQL,Oracle中)‘’和null的区别》)最近看了关于sql优化的文章,今天做一个小小的总结。数据库建表时,对于一些可填可不填的字段,我们尽量把他设置为非空,这种做法:1.可提高性能,2.可在很大程度上避免空指针一类的问题。具体的好处颇多。1.节省空间。大体看上去,好像设置可以为空的时候更节省空间,但实际上,他比NOT原创 2018-02-07 15:31:40 · 8699 阅读 · 1 评论 -
UNION 和UNION ALL
UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。Employees_China:E_IDE_Name01Zhang, Hua02Wang, Wei03Carter, Thomas04Yang, MingEmployees_...转载 2018-06-07 13:58:11 · 257 阅读 · 0 评论 -
MYSQL 中 LEFT JOIN ON 后的AND 和WHERE
表1 app_notification_user,里面有两条数据:表2 app_notification, 里面有一条数据语句1:SELECT anu.id,anu.app_notification_id,anu.`status`,an.* FROM app_notification_user anu LEFT JOIN app_notification an ON anu.app_not...原创 2018-05-24 10:59:20 · 16050 阅读 · 0 评论 -
Mysql一些函数
记录一些函数的作用:1. 计算相差日期:DATEDIFF(expr1,expr2)expr1,expr2都为日期(expr1-expr2)2. 时区转换: CONVERT_TZ(dt,from_tz,to_tz)eg. CONVERT_TZ(creat_time,'+08:00','+5:30')或者另一种写法CONVERT_TZ(creat_time,@@session.time_zone,'+...原创 2018-03-21 16:57:40 · 144 阅读 · 0 评论 -
MYSQL的FIND_IN_SET用法
FIND_IN_SET(needle,haystack);needle:要查找的字符串(不能包含逗号,若有逗号,则函数无法正常工作)haystack:以逗号分隔的字符串列表查找needle是否存在与haystack中,1.needle或haystack有一个为null,则返回null;2.needle存在于haystack则返回正整数(存在的位置,从1开始),不存在返回0;3.haystack为空...原创 2018-03-06 17:23:33 · 592 阅读 · 0 评论 -
MYSQL 字符串拼接:CONCAT, CONCAT_WS, GROUP_CONCAT
以成绩表为例一个学生有多门成绩,将成绩拼接起来1. CONCAT(str1,str2,...)连接字符串(有一个参数为null,则返回null)SELECT CONCAT(name,chinese) FROM grade结果:xiaoming86这样拼接不直观,我们给他加上逗号分隔2. CONCAT_WS(separator,str1,str2,...)以指定分隔符连接字符串(concat wi...原创 2018-03-06 11:24:18 · 190 阅读 · 0 评论 -
MYSQL中IF, IFNULL, CASE WHEN的使用
CASE WHEN两种写法 1.SELECT CASE WHEN status=1 THEN 'status1' -- 当status=1时,返回值为状态1WHEN status=2 THEN 'status2' -- 当status=1时,返回值为状态1ELSE 'other'END FROM table2.SELECT CASE status ...原创 2018-03-12 17:45:47 · 5181 阅读 · 0 评论 -
数据库(MySQL,Oracle中)‘’和null的区别
对于MySQL:''是空的字符串,数据库做非空限定的地方,''仍旧可以插入,而类型为数值型的则不可以。用IS NULL判断时结果为false;null 插入,字符型的,插入的就是null空值,用IS NULL判断时结果为true。而一些数据类型,插入null的时候,不一定为空。比如timestamp,插入null代表的是系统当前时间;具有auto_increment属性的列,插入nul原创 2018-02-07 16:35:15 · 2118 阅读 · 0 评论 -
Mybatis 中 IN 条件的使用 <foreach>
foreach属性主要有item,index,collection,open,separator,close。1、item表示集合中每一个元素进行迭代时的别名,2、index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,3、open表示该语句以什么开始,4、separator表示在每次进行迭代之间以什么符号作为分隔符,5、close表示以什么结束,6、coll...原创 2018-07-19 11:24:28 · 1939 阅读 · 1 评论