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

SQL作业的题与代码4:函数

2019-11-28 23:47 作者:诗书画唱  | 我要投稿

--一、创建数据库superKTV

create database superKTV;

go

use superKTV;

create table singer(

sing_ID int primary key identity(1,1),

sing_name nvarchar(50) not null,

sing_typeid nvarchar(20) check(sing_typeid='男歌手' or sing_typeid='女歌手') ,

sing_birthday date default(getdate()),

sing_address nvarchar(100),

sing_imgpath nvarchar(200),

sing_cunkuan decimal(18,2)

)

create table song(

song_ID int primary key identity(1,1),

song_name nvarchar(50) not null,

sing_ID int,

sing_Hit int default(0)

)

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

--二、创建歌手表singer:

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

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

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

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

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

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

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

insert into singer values('周杰伦1','男歌手','1999-11-11','北京','C://img1.jpg',988832134.11)

insert into singer values('周杰伦2','男歌手','1999-11-11','北京','C://img1.jpg',988832134.11)

insert into singer values('周杰伦3','男歌手','1999-11-11','北京','C://img1.jpg',988832134.11)

insert into singer values('周笔畅','女歌手','1999-11-11','广州','C://img1.jpg',988832134.11)

insert into singer values('邓紫琪','女歌手','1999-11-11',null,'C://img1.jpg',988832134.11)

--三、创建歌曲表song

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

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

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

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

insert into song(song_name,sing_ID,sing_Hit) values('稻香',1,2)

insert into song(song_name,sing_ID,sing_Hit) values('东风破',1,2)

insert into song(song_name,sing_ID,sing_Hit) values('青花瓷',1,2)

insert into song(song_name,sing_ID,sing_Hit) values('泡沫',5,2)

insert into song(song_name,sing_ID,sing_Hit) values('最美的期待',4,2)

--drop table song

--drop table singer

----------------------------------------------

(以上内容可以不写,但是要会)

--练习(T4):

--1.使用sql语句给歌手表和歌曲表各添加5条数据

--2.删除歌手表歌手ID为5的数据

delete singer where sing_ID=5

select * from singer

select * from song

--3.修改歌手表歌手ID为3的地区为湖南

update singer set sing_address='湖南' where sing_ID=3

--4.查询歌手表所有的数据

select * from singer

--5.查询歌手表所有男歌手的名称和生日,名称和生日需使用别名

select sing_name as '姓名',sing_birthday as '生日' from singer

where sing_typeid in('男歌手')

--6.查询歌手表的所有信息,给其增加一个常量列国家为中国

select *,'中国'as '国家' from singer

--7.查询歌手表的歌手ID大于3并且是男歌手的数据

select * from singer where sing_ID>=3 and sing_typeid ='男歌手'

--8.查询歌手表前三条数据,按照倒序排序

select top 3 * from singer order by sing_ID desc

子查询

select top 3 * from singer where sing_id in(select top 3 sing_id from singer  )order by sing_ID desc

--9.查询歌手地区为空的歌手信息

update singer set sing_address = null where sing_ID=2

select * from singer where sing_address is null

--10.查询歌手表歌手ID为2到4之间的数据

select * from singer where sing_ID between 2 and 4

--11.查询歌手表歌手ID为2和4的数据

select * from singer where sing_ID in(2,4)

--12.查询歌手表ID为1和3的歌手名称和歌手图片路径并使用别名给其起名称,给其加一个常量列国家是中国

select sing_name as '歌手名称',sing_imgpath as '图片路径',

'中国' as '国家' from singer where sing_ID in(1,3)

select sing_imgpath as '原内容', lower(sing_imgpath) as '转换小写后',

upper(sing_imgpath) as '转换为大写后'from singer

--去除空格函数

select sing_name,LTRIM(sing_name) as '去除左边空格' from singer

select sing_name,len(sing_name) as '长度' from singer

--查询用户名长度为4的用户

select sing_name,len(sing_name) as '长度',REVERSE(sing_name) as '翻转后' from singer

where len(sing_name)=4

--返回指定字符的开始位置

select sing_name,CHARINDEX('周',sing_name) from singer

--截取字符串

select sing_name,replace(sing_name,1,'') from singer

--字符串截取

select sing_name,SUBSTRING(sing_name,2,2) from singer

--删除并插入

select sing_name,stuff(sing_name,1,5,'你好') from singer

--数学函数

select sing_cunkuan,CEILING(sing_cunkuan) as '向上取整' from singer

select sing_cunkuan,floor(sing_cunkuan) as '向下取整' from singer

select sing_cunkuan,round(sing_cunkuan,1) as '四舍五入' from singer

--幂值

select sing_ID,POWER(sing_ID,3) from singer

--绝对值

select sing_cunkuan,ABS(sing_cunkuan) from singer

--平方根

select sing_ID,sqrt(sing_ID) from singer

select * from singer

--取年,取月,取日

select sing_birthday,YEAR(sing_birthday) '取年',

MONTH(sing_birthday) '取月',day(sing_birthday),

dateadd(YY,1,sing_birthday) as '增加一个月'

 from singer 

 select *,'中国' as '国家' from singer where singname like '[a-i]'


SQL作业的题与代码4:函数的评论 (共 条)

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