MYSQL 练习题
SQL 练习一
创建staff表,其中有字段id,name,sex,age,salary,department,且id自增,表格数据自行补完整(sex有男有女)。
(1)查询员工表中所有员工的编号、名字
select id,name from staff
(2)查询员工表中所有员工的所有信息(所有列),两种写法,有啥区别?
select * from staff
select id,name,sex,age,salary,department from staff
区别:列出字段时只查询投映选取指定的字段,使用 *
号是指查询全部字段。通常前者在查询表的全部列时较方便,但使用*
号查询时增加了转换数据集合字段列表这一步,故会牺牲一些性能。
(3)查询员工表中所有员工的编号、名字、薪资(本月薪资含年终奖2000一起发放)
select id,name,salary+2000 as "salary" from staff
(5)查询员工表中所有员工的编号、名字、薪资(本月薪资含年终奖2000一起发放),在查出来的列中标记含年终奖
select id,name,salary+2000 as "salary(含年终奖)" from staff
(6)查询员工表中所含有的部门
select department from staff group by department
(7)查询员工表中所有信息,根据薪资降序排列
select salary from staff order by salary desc
(8)查询员工表中所有信息,根据薪资降序排列,当薪资相同时,根据id升序排列
【注】MYSQL 默认按照升序排序,升序ASC
降序DESC
select salary from staff order by id,salary desc
(9)查询薪资是**的员工信息
select salary from staff where salary=**
(10)查询薪资是**并且性别为男的员工信息
select salary from staff where salary=** and sex="男"
(11)给name中添加数据张三,法外狂徒张三,张涂涂等数据%
:通配符,代替一个或多个字符_
:占位符,代替一个字符
a. 查询所有带“张”的
select * from staff where name like "%张%"
b. 查询所有姓“张”的
select * from staff where name like "张%"
c. 查询所有“张某某”的
select * from staff where name like "张__"
d.说出查询依据
(12)统计所有员工每月的工资总和
select sum(salary) from staff
(13)