单表操作
sql语句【CRUD】
-
insert语句;
- 插入数据于字段的数据类型相同;
- 当数字字符时,会尝试转型;
- 数据长度应在规定范围内【字符串】;
- 字符和日期在单引号中;
- 当允许时,可以插入空值;
- 当不给某个字段值时,有默认值就会添加,否则【NOT null】报错;
-- values与列表位置一一对应; insert into table_name(col1, col2..) values(value1, value2); -- 一次插入多条记录 insert into table_name(col1, col2..) values(value1, value2),(),(); -- 给所有字段添加 insert into table_name values(value1, value2),(),(); - 插入数据于字段的数据类型相同;
-
update语句
- 更新已有数据;
- set鄙视修改或赋予的值;
- where是更新条件;
-- where是匹配条件,没有时是对所有记录; UPDATE t13 SET `sex` = '男', 字段2 = 值... UPDATE t13 SET `sex` = '男' WHERE `name`='ch'; UPDATE t13 SET salary = salary + 200; -
delete语句
-- 删除id对应的记录 DELETE FROM t13 WHERE id = 3; -- 删除所有记录,但是表还在 DELETE FROM t13; -- 删除表 DROP TABLE t13; -
select语句
-- distinct 去重复; SELECT DISTINCT id, `name` FROM student; SELECT DISTINCT * FROM student; -- 加入表达式 + as 别名; SELECT DISTINCT `name` AS '名字', (chinese + english + math) AS 'total score' FROM student; -
where子语句中的运算符;
- 比较运算符:<,>,...,!= (<>,不等于);
- between ... and ... :在某区间的值,闭区间[ ];
- in(set):在集合列表中,in(100,200,300);
- like '...' ,not like '...':模糊查询;
- is null:是否为空;
- 逻辑运算符:and, or, not;
- 比较运算符:<,>,...,!= (<>,不等于);
-
order by语句:
指定排序的列,既可以是表中列名,也可以是别名;
- asc:升序,默认
- desc:降序;
-
统计函数
- 统计函数:count()
-- 统计返回记录条数; SELECT COUNT(*) FROM student; -- 统计id条数,会排除null记录; SELECT COUNT(id) FROM student;- sum(),一般对数值列使用;
- avg(),返回满足where条件的一列平均值;
- max(),
- min(),
- 分组统计:
- group by:进行分组;
- having:对分组后的结果进行过滤;
- where使用在聚合函数之前,having使用在聚合函数之后;
- where用于筛选行的条件,having用于筛选组的条件;
-
字符串函数:
charset(); -- 返回字符集 concat(str1, str2); -- 连接字符串 instr(str, substr); -- 返回substr在str中出现的位置,没有,返回0; ucase(str); -- 转换大写; lcase(str); -- 转换小写; left(str, length) -- 取前length个字符 length(str) -- str的长度 replace(str, seach_str, relpace_str) -- 在str中替换seach_str字符; strcmp(str1, str2) -- 比较两个字符 substring(str, posion, [length]) -- 从1开始取子字符串; ltrim(str),rtrim(),trim(); -- 出去前后端空格; -
数学函数
abs(num); -- 绝对值 bin(decimal_num); -- 十进制转2进制 ceiling(num); -- 向上取整; conv(num, from_base, tobase); -- 进制转换; floor(num); -- 向下取整; format(num, decimal_place); -- 保留小数位数,四舍五入; hex(num); -- 转16进制; least(num1, num2, ...); -- 求最小值; mod(num1, num2); -- 求余; rand([seed]); -- 其范围是[0, 1.0]; -
日期相关函数
current_date() -- 当前日期 current_time() -- 当前时间 current_timestamp() -- 当前时间戳 date(datetime) -- 返回datetime中的日期部分; date_add(date1, interval d_value) -- 在date1中加上日期或者时间; date_sub(date1, interval d_value) -- 在date1中减去一个时间; -- d_value 的单位:year,month, day, hour,minute, second; datediff(date1, date2); -- 两个日期只差,天; timediff(date, date2); -- 两个时间差,hh,mm,ss; now(); -- 当前时间 year|month|day|date|time(datetime); -- 年月日 from_unixtime(int, '%y-%m-%d %H:%m:%s'); unix_timestamp(); -- 返回 1970-1-1但现在的毫秒数; -
加密函数
user() -- 查询登录用户; database() -- 数据库名称; MD5(str) -- 为字符串算出一个MD32的字符串,用于密码加密; password(str) -- 从str计算并返回密码字符串,mysql默认加密算法; -
流程控制函数:
if(exp, expr1, expr2); -- 三元表达式 ifnull(expr1, expr2); select case when expr1 then expr2 when expr3 then expr4 else expr5 end; -- 如果expr1是true,返回expr2, -- 如果expr3是true,返回expr4, -- 否则返回expr5;

浙公网安备 33010602011771号