1.SQL语句
DDL(数据库对象操作)、DML(增删改)、DQL(查询)、DCL(用户和权限操作)
2.DDL:
1.数据库操作:
show databases;
create database [];
use [];
select database();
drop database [];
2.表操作:
show tables;
create table []();
desc [];
show create table [];
alter table [] add/modify/drop/..;
drop table [];
3.DML
1.添加:
insert into [表名]() values();
2.修改:
update [表名] set ... where ...;
3.删除:
delete from [表名] where...;
4.DQL
案例:
查询年龄为20,21,22,23岁的女员工信息。
select * from table where gender = '女' and age in(20,21,22,23);
查询性别为 男 ,并且年龄在 20-40 岁(含)以内的姓名为三个字的员工。
select * from table where gender = '男' and age between 20 and 40 and name like '___';
统计员工表中,年龄小于60岁的,男性员工和女性员工的人数。
select gender,count(*) from table where age < 60 group by gender;
查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。
select name,age from table where age <= 35 order by age asc,join_time desc;
查询性别为男,且年龄在20-40 岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序。
select * from table where gender = '男' and age between 20 and 40 order by age asc,join_time desc limit 5;
5.DCL
1.用户管理:
2.权限管理:
6. 函数
7.约束
8.多表查询
1.多表关系:
2.多表查询:
内连接是交集,外连接是并集;
案例:
员工表:emp,部门表:dept,薪资表:salgrade
1.查询员工的姓名、年龄、职位、部门信息(隐式内连接)
select e.name,e.age.e.job,d.name from emp e,dept d where e.dept_id = d.id;
2.查询年龄小于30岁的员工姓名、年龄、职位、部门信息(显式内连接)
select e.name,e.age.e.job,d.name from emp e inner join dept d on e.dept_id = d.id where e.age < 20;
3.查询拥有员工的部门ID、部门名称。
select distinct e.id,e.name from emp e,dept d where e.dept_id = d.id;
4.查询所有年龄大于40岁的员工,及其归属的部门名称;如果员工没有分配部门,也需要展示出来。
select e.* from emp e left join dept d on e.dept_id = d.id where e.age > 40;
5.查询所有员工的工资等级。
select e.* from emp e,salgrade s where e.salary >= s.min and e.salary <= s.max;
6.查询"研发部" 所有员工的信息及工资等级。
select e.*,s.grade from emp e, dept d, salgrade s where e.dept_id = d.id and e.salary between s.min and s.max and d.name = '研发部';
7. 查询 "研发部" 员工的平均工资。
select agv(e.salary) from emp e, dept d where e.dept_id == d.id and d.name = '研发部';
8.查询低于本部门平均工资的员工信息。
select * from emp e1 where e1.salary < (select avg(salary) from emp e2 where e2.dept_id = e1.dept_id)
9.查询所有的部门信息,并统计部门的员工人数。
select id,name, (select count(*) from emp where dept.id = id) '部门人数' from dept;
10.查询所有学生的选课情况,展示出学生名称,学号,课程名称
select s.name,s.num,c* from course c,student s,course_student sc where c.id = sc.course_id and s.id = sc.student_id
9.事务
1.四个特性
2.事务并发问题
3.事务隔离级别