欢迎光临散文网 会员登陆 & 注册

SQL 作业的答案与代码3:创建数据库superKTV,创建歌手表singer,创建歌手表staff

2019-11-27 22:25 作者:诗书画唱  | 我要投稿

1. 一、创建数据库superKTV

--二、创建歌手表singer:

--歌手ID(SingerID):主键ID,自动增长,种子和增量为1

--歌手名称(SingerName):非空,nvarchar(50)

--歌手类型(SingerType):非空 nvarchar(10),只能为男歌手或女歌手

--歌手生日(Birthday):date类型

--歌手地区(Area):nvarchar(50)

--歌手图片路径(PhotoPath):nvarchar(200)

--存款(Cunkuan):decimal(18,2)

--三、创建歌曲表song

--歌曲id(SongID):主键ID,自动增长,种子和增量为1

--歌曲名称(Title):非空 nvarchar(50)

--歌手编号(SingerID):int 外键,参照完整性歌手表

--点播次数(Hit):int 默认值为0


create database superKTV

create table singer(

SingerID  int   primary key identity(1,1),     (用了identity(1,1),或default(0)等单词的列名,不要出现在insert 语句中,不然会报错

SingerName nvarchar(50) not null,

SingerType  Varchar(2)  check(SingerType ='男' or SingerType ='女') not null , 

Birthday date,

Area nvarchar(50),

PhotoPath nvarchar(200),

Cunkuan decimal(18,2)

)



create table song(

SongID int primary key identity(1,1),

Title nvarchar(50) not null,

SingerID int ,  

Hit int default(0)


)


alter table  song add foreign key (SingerID) references singer (SingerID)


insert into singer( SingerName,SingerType,Birthday,Area,PhotoPath,Cunkuan  ) 

values('李胡','男','2000-1-1','湖南','https://pic2.zhimg.com/80/v2-c92cf40607f91c123d55ab2e2a37ea45_hd.jpg',1100999999999999.99)


insert into singer( SingerName,SingerType,Birthday,Area,PhotoPath,Cunkuan  ) 

values('李云','女','2000-1-2','湖南','https://pic2.zhimg.com/80/v2-c92cf40607f91c123d55ab2e2a37ea45_hd.jpg',1200)


insert into singer(SingerName,SingerType,Birthday,Area,PhotoPath,Cunkuan  ) 


values('孙一成','男','2000-1-3','湖南','https://pic2.zhimg.com/80/v2-c92cf40607f91c123d55ab2e2a37ea45_hd.jpg',1300)


insert into singer( SingerName,SingerType,Birthday,Area,PhotoPath,Cunkuan  ) 

values('林笑','男','2000-1-4','湖南','https://pic2.zhimg.com/80/v2-c92cf40607f91c123d55ab2e2a37ea45_hd.jpg',1400)


insert into singer( SingerName,SingerType,Birthday,Area,PhotoPath,Cunkuan  ) 


values('卫晴','女','2000-1-5','湖北','https://pic2.zhimg.com/80/v2-c92cf40607f91c123d55ab2e2a37ea45_hd.jpg',1500)




insert into song(Title ,SingerID) 

values('男孩你快来',1)


insert into song( Title ,SingerID) 


values('女孩你快来',2)


insert into song( Title ,SingerID ) 


values('男孩你别来',3)


insert into song( Title ,SingerID ) 


values('男孩你得来',4)


insert into song(Title ,SingerID) 


values(  '女孩你得来',5)

delete from singer where SingerID =5

update  singer set Area= '湖南' where SingerID =5

select * from singer 

select * from song

select SingerName as'姓名' ,Birthday as'生日' from singer where SingerType='男'

select '中国'as'国家' from singer  (红字部分用了虚拟内容与虚拟列)

select * from singer where SingerType='男' and SingerID>3

select top 3* from singer decs

select * from singer  where  Area is null

select * from singer  where SingerType='男' and SingerID between 2 and 4

select * from singer  where SingerType='男' and SingerID = 2 or  SingerID = 4

select PhotoPath as '路径', SingerName as '名称' ,'中国'as'国家' from singer  where  SingerID = 1 or  SingerID = 3





2.赵龙 男  25 湖南省长沙市伍家岭江南苑9栋203号 0731-4230123 zl@163.net 2005/10/5

   李云 女 23 湖南省长沙市东风路东风新村21栋502号 0731-4145268 ly@163.net 2003/7/3

   孙一成 男 24 湖南省株洲市601厂宿舍15栋308号 0732-8342567 syc@163.net 2002/2/11

   林笑 男 27 湖南省郴洲市人民医院20栋301号 0735-2245214 null 2006/1/5

   卫晴 女 23 湖南省长沙市望月湖12栋403号 0731-8325124 wq@163.net 2007/3/5

   张高 男 30 湖南省株洲市601厂宿舍18栋122号 0732-8342143 aee@163.net 2004/2/11

   insert into EMP_DB values('赵龙','男',25,'湖南省长沙市伍家岭江南苑9栋203号','0731-4230123','zl@163.net','2005/10/5')

   insert into EMP_DB values('李云','女',23,'湖南省长沙市东风路东风新村21栋502号','0731-4145268','zl@163.net','2003/7/3')

   insert into EMP_DB values('孙一成','男',24,'湖南省株洲市601厂宿舍15栋308号','0732-8342567','zl@163.net','2002/2/11')

   insert into EMP_DB values('林笑','男',27,'湖南省郴洲市人民医院20栋301号','0731-4230123',null,'2006/1/5')

   insert into EMP_DB values('卫晴','女',23,'湖南省长沙市望月湖12栋403号','0731-4230123','zl@163.net','2007/3/5')

   insert into EMP_DB values('张高','男',30,'湖南省株洲市601厂宿舍18栋122号','0731-4230123','zl@163.net','2004/2/11')

   select * from EMP_DB

   --查询前三条数据

   --查询年龄大于25岁的员工的姓名和年龄,取前两条

   --查询性别为男的员工信息,取前三条

   --查询性别为男的员工年龄和姓名,要求使用别名,并增加一列常量列为

   --地址是湖南 ,取前两条

   --查询年龄在23到28之间的员工姓名和年龄,增加一个常量'称号'列为‘年轻员工’

   --并按照员工的年龄倒序排序,取前三名

   

--查询前几条数据

--1.查询前三条数据

--2.查询年龄大于25岁的员工的姓名和年龄,取前两条

--3.查询性别为男的员工年龄和姓名,要求使用别名,

--并增加一列常量列为地址是湖南 ,取前两条

    --4.查询年龄在23到28之间的员工姓名和年龄,

--增加一个常量'称号'列为‘年轻员工’

--并按照员工的年龄倒序排序,取前三名

--5.查询地址在长沙的的年龄大于25岁的男员工信息

--6.查询男员工的姓名包含‘一’的员工姓名和年龄

--7.查询以‘张’开头的员工信息

--8.查询姓名长度为2个字的员工信息

%:匹配0个到任意个字符

_:匹配一个字符,可以代表任意文字

   --1. 查询所有职员的所有信息

--2. 查询所有职员的姓名,电话,地址

--3. 查询所有女职员的详细信息

--4. 查询年龄在24到26岁之间的男职员的姓名,性别

--5. 查询家住长沙的女职员的姓名,电话,地址

--6. 查询李云,孙一成,林笑的电话,地址

--7. 查询郴洲和株洲的职员的姓名,性别,年龄

--8. 查询家住长沙,年龄在25到28岁之间的男职员的姓名

--9. 查询邮件地址为空的职员

--10.根据员工的年龄进行排序(从高到低),并给每个列取别名

--查询姓‘孙’的人员

--查询所有内容根据年龄进行升序操作

--使用区间查询

--查询所有内容根据年龄进行降序操作

查询所有内容根据时间进行倒序操作

--查询年龄在25到28之间的数据

--查询姓名为孙一成和卫张的用户

--查询年龄在25到28之间的数据

--查询年龄为25,27岁的用户使用in进行操作

--将所有的用户年龄加3岁

(默认是升序操作)





create table staff(

    EmpName  Varchar(20)      not null,

EmpSex Varchar(2)  check(Empsex='男' or Empsex='女') not null , 

EmpAge Int,

U_address Varchar(50),

Tel Varchar(20),

E_mail Varchar(50),

EmpJoinTime Datetime

)



insert into staff( EmpName,EmpSex,EmpAge,U_address,Tel,E_mail,EmpJoinTime  ) 

values( '赵龙','男',25,'湖南省长沙市伍家岭江南苑9栋203号','0731-4230123','zl@163.net','2005/10/5')

insert into staff( EmpName,EmpSex,EmpAge,U_address,Tel,E_mail,EmpJoinTime  ) 

values('李云','女',23,'湖南省长沙市东风路东风新村21栋502号','0731-4145268','ly@163.net','2003/7/3')

insert into staff( EmpName,EmpSex,EmpAge,U_address,Tel,E_mail,EmpJoinTime  ) 

values('孙成','男',24,'湖南省株洲市601厂宿舍15栋308号','0732-8342567','syc@163.net','2002/2/11')

insert into staff( EmpName,EmpSex,EmpAge,U_address,Tel,E_mail,EmpJoinTime  ) 

values('林笑','男',27,'湖南省郴洲市人民医院20栋301号','0735-2245214','null','2006/1/5')

insert into staff( EmpName,EmpSex,EmpAge,U_address,Tel,E_mail,EmpJoinTime  ) 

values('卫晴','女',23,'湖南省长沙市望月湖12栋403号','0731-8325124','wq@163.net','2007/3/5')

insert into staff( EmpName,EmpSex,EmpAge,U_address,Tel,E_mail,EmpJoinTime  ) 

values('张高','男',30,'湖南省株洲市601厂宿舍18栋122号','0732-8342143','aee@163.net','2004/2/11')

select * from staff

select Top 3  *  from  staff

select Top 2  EmpAge,EmpName    from  staff where EmpAge>=25

select  Top 2 EmpAge,EmpName as'年龄','姓名','湖南'as'地址'  from  staff where Empsex='男'

select  Top 3 EmpAge,EmpName as'年龄','姓名','年轻员工'as'称号'  from  staff where EmpAge>=23 and EmpAge<=28 order by EmpAge desc  

select  Top 2 EmpAge,EmpName as'年龄','姓名','湖南'as'地址'  from  staff where Empsex='男'

select * from staff where   U_address like'%长沙%' and EmpAge>25

select EmpName ,EmpAge from staff where   EmpName  like'%%' and EmpSex='男'

select *  from staff where   EmpName  like'张%'

select * from staff where   EmpName  like'--'

select * from staff

select EmpName,Tel,U_address from staff

select Tel,U_address from staff where EmpName in ('李云','孙一成','林笑');




-- 查询郴洲和株洲的职员的姓名,性别,年龄


select EmpName,EmpSex,EmpAge from staff where  U_address like '%郴洲%' or U_address like '%株洲%';




--查询家住长沙,年龄在25到28岁之间的男职员的姓名


select EmpName from staff where U_address like '%长沙%' and (EmpAge between 25 and 28) and EmpSex = '男';




-- 查询邮件地址为空的职员


select * from staff where E_mail is null

select * ,EmpAge as '年龄'from staff order By EmpAge desc (有列名时,要加逗号,没列名时,不要加逗号,

select *  from staff where   EmpName  like'孙%'

select * from staff order By EmpAge asc 

select * from staff order By EmpAge desc 

select * from staff where EmpAge between 25 and 28;

select * from staff where EmpAge in( 25 ,28)

select * from  staff

update staff set EmpAge = EmpAge + 3


SQL 作业的答案与代码3:创建数据库superKTV,创建歌手表singer,创建歌手表staff的评论 (共 条)

分享到微博请遵守国家法律