SQL学习笔记
2021-08-11 13:35:49 32 举报
AI智能生成
SQL学习笔记主要记录了我在学习和实践SQL过程中的心得体会,包括SQL的基本语法、常用函数、表连接、子查询、存储过程等内容。通过学习,我掌握了如何使用SQL语句进行数据的增删改查操作,以及如何优化查询性能。此外,我还学习了如何使用事务处理数据,以及如何使用触发器和存储过程实现自动化操作。在实际项目中,我运用所学知识解决了多个数据库相关的问题,提高了工作效率。总之,通过不断地学习和实践,我对SQL有了更深入的理解,为今后的工作打下了坚实的基础。
作者其他创作
大纲/内容
select 函数,列名 5 from 表面 1where 筛选条件 2group by 分组字段 3 having 分组筛选条件 4order by 排序条件 6
SQL执行顺序
partition by 分组字段
row_num() over(将前面的视窗函数传递给这里面的数据)
窗口函数
更多精彩微信搜一搜《数据与编程之美》
网站的数据存储地方
concat()
1、拼接字符串
ifnull()
2、判断空值
order by
多字段排序
select length(name) 名字长度 from table order by 名字长度
按昵称排序
3、排序
获取字节长度【utf-8中文占3个字节,gbk中文占2个字节】
length()
lower()
upper()
数据库索引是从1开始
从索引第一个开始,截取3个字符
substr()
返回str2在str1第一次出现的索引
去掉字符串前后特定字符
trim('a' from 'aaaaa数据与编程之美aaaa')
trim()
左填充
用str3替换str1中的str2
字符函数
四舍五入
round(1.65,2)
向上取整
ceil(1.01) ===> 2
向下取整
floor(9.99) ====> 9
截断函数
取余
mod()
数学函数
当前日期包含时间
now()
当前日期不包含日期
curdate()
当前时间
curtime()
1996
year('1996-11-02')
日期函数
case 要判断的字段和表达式when 常量1 then 要显示的值;when 常量2 then 要显示的值;
流程控制函数
4、单行函数
select sum(salary) from table
忽略null值
sum()
select avg(age) from table
avg()
min()
max()
统计行数
select count(*) from table
select count(distinct salary) from table
count()
5、分组函数
having 放在 group by后
group by中还可以使用 函数
select count(*).length(last_name) len_namefrom tablegroup by len_namehaving count(*)>5
按多字段分组
分组和排序
5、分组查询
内连接,取并集
外连接,用来查询一个表中有,一个表中没有的数据
6、连接查询
出现在其他语句中select语句,称为子查询
可以放在:select 语句后面,from后面,where和having后面,exists后面
select * from employeewhere salary > ( select salary from employee where name='abel')
查询工资比abel的高的人?
工资最少的员工有哪些?
查询每个部门最低工资高于dept_id为50的部门最低工资的信息
查询location_id为1400或者1700的部门中所有的员工信息
放在select中的子查询的条件可以和父查询中的字段连用
查询每个部门的员工个数(在部门表后面加上一个该部门的员工个数)
放在from中的子查询结果为多行多列的数据,类似一个临时表
查询每个部门的平均工资等级
0表示没有结果
1表示有结果
select dept_namefrom table1 awhere exists( select * from table2 b where a.dept_id = b.dept_id)
select dept_namefrom departmentswhere employ_id in (select employ_id from employment)
有员工的部门名
exists中的查询语句是否有结果
exists的使用
查询工资高于本部门的平均工资
7、子查询
数据过多,不能一次性显示完成
offset 要显示的条目的其实索引,从0开始
size 要显示的条目个数
limit offset,size
查询第11条到第25条数据
select * from employmentswhere comission_pct not nullorder by salary desclimit 10
有奖金的员工信息,并且工资较高的前10名
8、分页查询
SQL语句
SQL面试题.sql
常见面试题总结
MySQL
0 条评论
回复 删除
下一页