sql拼接int类型的字段_MySQL数据库—SQL汇总
⼀、SQL常⽤数据类型
1
数值型
a、整型
默认有符号,需要⽆符号的话,⽤UNSIGNED INT。
插⼊超过范围的数,最终为临界值。
整型的长度代表显⽰的宽度,如果要使⽤,需要搭配zerofill使⽤,对于int(M),如长度⼩于M,⽤0左填充⾄宽度为M,如果⼤于M则⽆影响。没实际意义。
b、⼩数
D保留⼩数位数。
M整数+⼩数位数和。
MD可以省略,DECIMAL默认为(10,0),FLOAT和DOUBLE会根据实际插⼊的值来确定。
定点型精确度⾼⼀点,⼀些⾼精度要求的可以⽤定点型,如货币汇率等。
2
字符型
M为最多的字符数,“abc”是3个字符,“你好”是两个字符。
CHAR是固定长度的字符,可省略M,默认为1,费空间,效率⾼。
VARCHAR是可变长度字符,不可以省略M,M为最⼤长度,省空间,效率低。
BINARY和VARBINARY与CHAR和VARCHAR类似⽤法。
ENUM(“a”,“b”,“c”) ,多选⼀,只能保存"a",“b”,"c"其中之⼀,不区分⼤⼩写,在mysql5.7中如果插⼊⾮列表中的内容,则为null。
SET(“a”,“b”,“c”),多选多,能保存⼀个或多个abc中的值,如保存"a,b",不区分⼤⼩写,在mysql5.7如果插⼊⾮列表中的内容,则报错。
3
⽇期型
⼆、SQL字段约束
1
六⼤约束
外键说明
1. 保证从表的值必须来⾃于主表的某⼀列的值,需在从表中添加外键。
2. 主表从表对应的字段类型要⼀致或兼容。
3. 主表的字段必须是⼀个key(⼀般是主键或唯⼀)。
4. 插⼊数据时,必须先插⼊主表再插⼊从表。
主键与唯⼀的区别
1.主键具有唯⼀性,不允许为null,⼀张表最多⼀个,可以组合使⽤(即多个字段为组合为⼀个主键)但不推荐。
2.唯⼀具有唯⼀性,允许为null且在mysql5.7中默认可以有多个null,⼀张表可以有多个,可以组合使⽤但不推荐。
2
标识列(⾃增长列)
标识列⽤AUTO_INCREMENT设置。
标识列必须是主键或唯⼀。
json编译
⼀个表中最多⼀个标识列。
标识列类型只能是数值型。
有关约束和标识列的使⽤,在DDL表的管理部分有整理。
三、DQL(Data Query Language)数据查询语⾔
1
语句顺序
书写顺序:SELECT、DISTINCT、FROM、JOIN ON、WHERE、GROUP BY、HAVING、ORDER BY、LIMIT 执⾏顺序:FROM、 JOIN ON、WHERE、GROUP BY、HAVING、SELECT、DISTINCT、ORDER BY、LIMIT
2
基础查询(SELECT)
mysql面试题汇总(1)查询常量
SELECT 200;
SELECT 'hello';
(2)查询表达式
对于"+"运算符,仅⽤于数字类型的相加。若运算数为字符,尝试转化为数字,若转换失败,则认为是0;若运算数为null,结果为null。如下:
SELECT 100%3;
SELECT '123'+9; #结果为 132,'123'-->123
SELECT 'haha'+9; # 结果为 9,’haha’-->0
SELECT null+9; # 结果为 null
(3)查询字段
a.表中字段查询
SELECT first_name FROM employees; #查询单个字段
SELECT first_name,last_name FROM employees; #查询多个字段
SELECT * FROM employees; #查询所有字段
源代码评价
b.使⽤别名(AS)
SELECT first_name AS '名',last_name '姓' FROM employees; #查询结果使⽤别名
c.去重(DISTINCT)
SELECT DISTINCT department_id FROM employees; #查询结果去重updateset多条数据
(4)查询函数
SQL提供了很多现成函数,常⽤的⼤致可分为单⾏函数和分组函数。
单⾏函数为处理⼀条数据,输出⼀个结果,如对字符串的处理等。
分组函数⼜称聚合函数、统计函数或组函数,是对多条记录的统计结果,如求和等。
a、单⾏函数
根据处理的数据类型不同,单⾏函数⼜可细分为字符函数、数学函数、⽇期函数、流程控制函数等。
字符函数:
LENGTH(str) 返回字符串长度
SELECT LENGTH('hello'); #结果为5
SELECT LENGTH(last_name); #结果为last_name字段的长度
CONCAT(str1,str2) 拼接字符串
SELECT CONCAT(last_name,'-',first_name); #结果为 last_name字段 - first_name字段
UPPER(str) | LOWER(str) 转换为⼤/⼩写
SELECT UPPER('hello'); #结果为'HELLO'
SELECT LOWER('HeLLo');#结果为'hello'
SUBSTR(str,pos,len) 截取字符串,字符串索引从1开始xcode ios
SELECT SUBSTR('my name is xiaoming',4,4); #结果为'name'
SELECT SUBSTR('my name is xiaoming',4); #结果为'name is xiaoming'
plc技术实训报告INSTR(str,substr) 返回⼦串第⼀次出现的索引,字符串索引从1开始
SELECT INSTR('my name is xiaoxiao','xiao'); #结果为12
TRIM(str,substr) ⾸尾去除规定字符,默认去空格
SELECT TRIM(' my name is xiaoming ');
#结果为'my name is xiaoming'
SELECT TRIM('7' FROM '77my name 777 is xiaoming 777');
#结果为'my name 777 is xiaoming
LPAD(str,len,padstr) | RPAD(str,len,padstr) ⽤规定字符左(右)填充⾄指定长度
SELECT LPAD('my',10,'*');#结果为'********my'
SELECT RPAD('my',10,'ab');#结果为'myabababab'
REPLACE(str,old,new) 字符串替换
SELECT REPLACE('my name is xiaoxiao','xiao','da');#结果为'my name is dada'数学函数:
ROUND(X,D) 四舍五⼊,保留指定位数,默认为保留整数。
SELECT ROUND(-1.65); #-2
SELECT ROUND(-1.65,1); #-1.7
CEIL(X) | FLOOR(X) 向上|向下取整
SELECT CEIL(1.44);#2
SELECT FLOOR(1.55);#1
TRUNCATE(X) 截取保留指定⼩数位
SELECT TRUNCATE(2.666,1); #2.6
MOD(X1,X2) 取模
SELECT MOD(10,3);#1,符号与被除数⼀致
SELECT MOD(-10,3);#-1
SELECT MOD(10,-3);#1
⽇期函数:
NOW()、CURDATE() 当前时间、当前⽇期
SELECT NOW();#2019-10-19 14:40:54
SELECT CURDATE();#2019-10-19
YEAR() | MONTH() | DAY() | HOUR() | MINUTE() | SECOND()
SELECT YEAR('2019-10-1');#2019
DATEDIFF(date1,date2) | TIMEDIFF(date1,date2) 两个⽇期相差的天数|两个时刻相差的时间
SELECT DATEDIFF('2019-10-17','2019-10-1');#结果为16,前⾯的减后⾯的
SELECT TIMEDIFF('2019-10-17 15:30:2','2019-10-1 7:0:0');#结果为 392:30:02
STR_TO_DATE(str,format) 字符串按格式转为⽇期
DATE_FORMAT(date,format) ⽇期按格式转为字符串
SELECT STR_TO_DATE('10-1 2019','%c-%d %Y');#2019-10-01
SELECT DATE_FORMAT(NOW(),'%Y.%m.%d');#2019.10.19
流程控制函数:
IF ⼆选⼀
SELECT IF(10>5,'yes','no');#结果为'yes'
CASE-WHEN-THEN-END 多选⼀
⽤法1,相当于Java的which,判断⼀个*值*:
SELECT last_name,job_id,CASE job_id
WHEN 'AD_PRES' THEN '1'
WHEN 'AD_VP' THEN '2'
WHEN 'IT_PROG' THEN '3'
ELSE '4'
END FROM employees; 
⽤法2,相当于Java的if-else if-else,判断⼀个*表达式*:
SELECT last_name,CASE
WHEN salary<5000 THEN
'<5000'
WHEN salary BETWEEN 5000 AND 10000 THEN
'5000-10000'
ELSE
'>10000'
END FROM employees;
b、分组函数
分组函数⼜称为聚合函数、统计函数、组函数,所有分组函数对null值处理为忽略它,⽽⾮当做0。常⽤的分组函数有以下⼏个:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。