SQL 作業(yè)的答案與代碼3:創(chuàng)建數(shù)據(jù)庫superKTV,創(chuàng)建歌手表singer,創(chuàng)建歌手表staff

1.?一、創(chuàng)建數(shù)據(jù)庫superKTV
--二、創(chuàng)建歌手表singer:
--歌手ID(SingerID):主鍵ID,自動增長,種子和增量為1
--歌手名稱(SingerName):非空,nvarchar(50)
--歌手類型(SingerType):非空 nvarchar(10),只能為男歌手或女歌手
--歌手生日(Birthday):date類型
--歌手地區(qū)(Area):nvarchar(50)
--歌手圖片路徑(PhotoPath):nvarchar(200)
--存款(Cunkuan):decimal(18,2)
--三、創(chuàng)建歌曲表song
--歌曲id(SongID):主鍵ID,自動增長,種子和增量為1
--歌曲名稱(Title):非空 nvarchar(50)
--歌手編號(SingerID):int 外鍵,參照完整性歌手表
--點(diǎn)播次數(shù)(Hit):int 默認(rèn)值為0
create database superKTV
create table singer(
SingerID? int? ?primary key?identity(1,1),? ? ?(用了identity(1,1),或default(0)等單詞的列名,不要出現(xiàn)在insert 語句中,不然會報(bào)錯(cuò))
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('衛(wèi)晴','女','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? (紅字部分用了虛擬內(nèi)容與虛擬列)
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 湖南省長沙市伍家?guī)X江南苑9棟203號 0731-4230123 zl@163.net 2005/10/5
? ?李云 女 23 湖南省長沙市東風(fēng)路東風(fēng)新村21棟502號 0731-4145268 ly@163.net 2003/7/3
? ?孫一成 男 24 湖南省株洲市601廠宿舍15棟308號 0732-8342567 syc@163.net 2002/2/11
? ?林笑 男 27 湖南省郴洲市人民醫(yī)院20棟301號 0735-2245214 null 2006/1/5
? ?衛(wèi)晴 女 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,'湖南省長沙市伍家?guī)X江南苑9棟203號','0731-4230123','zl@163.net','2005/10/5')
? ?insert into EMP_DB values('李云','女',23,'湖南省長沙市東風(fēng)路東風(fēng)新村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,'湖南省郴洲市人民醫(yī)院20棟301號','0731-4230123',null,'2006/1/5')
? ?insert into EMP_DB values('衛(wèi)晴','女',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
一
? ?--查詢前三條數(shù)據(jù)
? ?--查詢年齡大于25歲的員工的姓名和年齡,取前兩條
? ?--查詢性別為男的員工信息,取前三條
? ?--查詢性別為男的員工年齡和姓名,要求使用別名,并增加一列常量列為
? ?--地址是湖南 ,取前兩條
? ?--查詢年齡在23到28之間的員工姓名和年齡,增加一個(gè)常量'稱號'列為‘年輕員工’
? ?--并按照員工的年齡倒序排序,取前三名
? ? 二
--查詢前幾條數(shù)據(jù)
--1.查詢前三條數(shù)據(jù)
--2.查詢年齡大于25歲的員工的姓名和年齡,取前兩條
--3.查詢性別為男的員工年齡和姓名,要求使用別名,
--并增加一列常量列為地址是湖南 ,取前兩條
? ? --4.查詢年齡在23到28之間的員工姓名和年齡,
--增加一個(gè)常量'稱號'列為‘年輕員工’
--并按照員工的年齡倒序排序,取前三名
--5.查詢地址在長沙的的年齡大于25歲的男員工信息
--6.查詢男員工的姓名包含‘一’的員工姓名和年齡
--7.查詢以‘張’開頭的員工信息
--8.查詢姓名長度為2個(gè)字的員工信息
%:匹配0個(gè)到任意個(gè)字符
_:匹配一個(gè)字符,可以代表任意文字
三
? ?--1. 查詢所有職員的所有信息
--2. 查詢所有職員的姓名,電話,地址
--3. 查詢所有女職員的詳細(xì)信息
--4. 查詢年齡在24到26歲之間的男職員的姓名,性別
--5. 查詢家住長沙的女職員的姓名,電話,地址
--6. 查詢李云,孫一成,林笑的電話,地址
--7. 查詢郴洲和株洲的職員的姓名,性別,年齡
--8. 查詢家住長沙,年齡在25到28歲之間的男職員的姓名
--9. 查詢郵件地址為空的職員
--10.根據(jù)員工的年齡進(jìn)行排序(從高到低),并給每個(gè)列取別名
四
--查詢姓‘孫’的人員
--查詢所有內(nèi)容根據(jù)年齡進(jìn)行升序操作
--使用區(qū)間查詢
--查詢所有內(nèi)容根據(jù)年齡進(jìn)行降序操作
查詢所有內(nèi)容根據(jù)時(shí)間進(jìn)行倒序操作
--查詢年齡在25到28之間的數(shù)據(jù)
--查詢姓名為孫一成和衛(wèi)張的用戶
--查詢年齡在25到28之間的數(shù)據(jù)
--查詢年齡為25,27歲的用戶使用in進(jìn)行操作
--將所有的用戶年齡加3歲
(默認(rèn)是升序操作)
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,'湖南省長沙市伍家?guī)X江南苑9棟203號','0731-4230123','zl@163.net','2005/10/5')
insert into staff( EmpName,EmpSex,EmpAge,U_address,Tel,E_mail,EmpJoinTime? )?
values('李云','女',23,'湖南省長沙市東風(fēng)路東風(fēng)新村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,'湖南省郴洲市人民醫(yī)院20棟301號','0735-2245214','null','2006/1/5')
insert into staff( EmpName,EmpSex,EmpAge,U_address,Tel,E_mail,EmpJoinTime? )?
values('衛(wèi)晴','女',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 (有列名時(shí),要加逗號,沒有列名時(shí),不要加逗號,)
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