-- 创建MyCompany 数据库create database MyCompanyon( Name ='MyCompany' , filename ='c:\abc\MyCompany.mdf' , size =3 , maxsize =100 , filegrowth =1)Gouse MyComPanygo-- 部门表department --dId --dNameCreate Table department( dId int identity( 1 ,1 ) primary key , dName nvarchar ( 10) not null)-- 员工表employee-- eId-- eName-- eSex-- eAge-- eSalary-- eDepIdcreate table employee( eId int identity( 1 ,1 ) primary key, eName nvarchar ( 10), sSex nchar ( 2), eAge int , eSalary money , eDepId int)alter table employeedrop column sSexalter table employeeadd eSex nchar( 2 )-- 员工姓名唯一alter table employeeadd constraint UQ_employee_eName unique (eName )-- 员工性别限制为男女默认为男alter table employeeadd constraint CK_employee_eSex check (eSex = '男 ' or eSex =' 女 '), constraint DF_employee_eSex default ( '男 ' ) foreSex-- 员工年龄限制大于岁默认为岁alter table employeeadd constraint DF_employee_eAge default (18 ) for eAge ,constraint Ck_employee_eAge check ( eAge>= 18 )--eDepId 外键设置alter table employeeadd constraint FK_employee_eDepId foreign key ( eDepId) references department (dId )-- 级联删除--on delete cascadeinsert into department values (' 财务部 ')insert into department values (' 开发部 ')insert into department values (' 后勤部 ')insert into employee( eName ,eSex , eAge, eSalary ,eDepId )values (' 淡定哥 ', ' 男' , 18, 3000 ,2 )insert into employee( eName ,eSex , eAge, eSalary ,eDepId )values (' 小月月 ', ' 女' , 20, 4000 ,1 )insert into employee( eName ,eSex , eAge, eSalary ,eDepId )values (' 马户 ', ' 男' , 18, 3500 ,1 )insert into employee( eName ,eSex , eAge, eSalary ,eDepId )values (' 凤姐 ', ' 女' , 21, 2500 ,2 )insert into employee( eName ,eSex , eAge, eSalary ,eDepId )values (' 凤 ,姐 ' ,' 女 ', 21 ,2500 , 2)--1 、查询所有员工select * from employee--2 、查询工资超过快钱的员工select * from employee where eSalary>= 2000--3 、查询最新进来的个员工select top 5 * from employee order by eId desc--4 、查询员工的平均工资,最高工资select MAX ( eSalary) as ' 最高工资 ', avg (eSalary ) as ' 平均工资' from employee--5 、查询总共有多少员工select COUNT (*) from employee--6 、查询每个部门有多少员工select COUNT (*), eDepId from employeegroup by eDepId--7 、查询每个部门的平均工资select eDepId , avg( eSalary )as '平均工资 ' from employeegroup by eDepId--8 、查询每个部门男员工的平均工资select AVG ( eSalary), eDepId from employeewhere eSex =' 男 'group by eDepId--9 、查询平均工资超过的那些部门select AVG ( eSalary), eDepId from employeewhere (select AVG( eSalary )from employee)>= 2000group by eDepIdselect AVG ( eSalary), eDepId from employeegroup by eDepIdhaving AVG ( eSalary)>= 2000--10 查询员工工资 (姓名工资 ) 的同时同一结果集显示最高工资平均工资select eName , eSalary from employee union allselect ' 最高工资 ', MAX (eSalary ) from employee union allselect ' 平均工资 ', avg (eSalary ) from employee--11 查询名字里包含 '定 '' 月' 的员工并按照年龄排序输出select eName , eAge from employee where eName like '%[ 定月]%' order by eAge
联系客服