MySQL的学习
一、SQL分类
——DDL:数据定义语句,如create, drop 等
——DQL:select
——DML:数据操纵语句,如insert, update 等
——DCL: 数据控制语句,如grant, revoke 等
——TCL: 事务控制语句,如 commit, rollback等
(1)create 创建表,创建视图等;drop删除表,删除视图等。
(2)select 查询。
(3)insert 插入新数据,update更新数据。
(4)grant授权,revoke撤销授权。
(5)commit提交事务,rollback回滚。
二、函数
(1)字符函数
Concat( str1, str2, … ) 连接字符串
Insert( str, pos, len, newstr ) str从第pos位置开始的共len个字符用newstr代替
Lower(str) 转成小写
Upper(str) 转成大写
Length(str) 返回str的长度
Char_length(str) 返回str的长度
Lpad(str, len, padstr ) 返回长度为len的字符串,左边由padstr填充,原串长度如果大于len则从左边截取出长为len的串。
Rpad(str, len, padstr ) 返回长度为len的字符串,右边由padstr填充,原串长度如果大于len则从右边截取出长为len的串。
Trim(str) 去掉str的前后缀空格
Repeat(str, count ) str重复count次
Replace( str, from_str, to_str ) 用to_str代替str中所有from_str
Substring( str, pos, len ) 返回str中从pos位置起的共len个字符
(2)数值函数
(3)日期和时间函数
(4)流程函数
(5)其他函数
三、查询
select
– select 列 -- 选择列
from 表名-- 选择表
where 条件-- 满足条件
group by 列-- 结果分组
having 条件-- 分组结果过滤
order by 列-- 排序
limit 开始位置, 数量 -- 结果限定
四、模糊查询
模糊查询like
– _:匹配任何单个字符
– %:匹配任何数量字符
练习:查询名字为SCOTT的员工记录
• 查询名字为SCOTT以外的员工记录
• 查询薪水大于3000的员工记录
• 查询薪水在2000 ~ 5000之间的员工记录
• 查询部门编号是10,20的员工记录
• 查询名字以’A’开头的员工记录
• 选择在1987年雇用的员工记录
• 查询工资提高百分之20%后的结果
五、分组查询
• 分组group by
– Select列表中包含组函数,那么select中的列,或者出现在组函数中,或者出现在group by中
– where中不能出现组函数
• 分组结果过滤having
六、排序
• 排序order by 子句 (asc升序,缺省; desc 降序)
– 按别名排序
– 多个列排序
练习:
• 查询员工按部门编号,薪水排序
• 查询员工的姓名,以及在公司工作的月份数,并按月份数降序排列
七、子查询
• 子查询
– 为了给主查询提供数据而先执行的查询称为子查询
– 子查询要包含在括号内
– 将子查询放在比较条件的右侧
– 单行操作符对应单行子查询,多行操作符对应多行子查询
• 单行子查询
– = / > / >= / < / <= / <> / !=
• 多行子查询
– IN / ANY / ALL
练习
• 查询月薪最高的员工的名字
• 查询每个部门的平均月薪
• 查询月薪比平均月薪高的员工的名字
• 查询管理者是king的员工姓名和工资
八、事务语句:
开启事务:Start Transaction
事务结束:End Transaction
提交事务:Commit Transaction
回滚事务:Rollback Transaction
练习:
原文:https://www.cnblogs.com/gaojinmanlookworld/p/11095349.html