Sqlserver环境操作
1、
用户自定义函数根据学号求学生年龄(学号为参数)
create function ages(@xh char(6))
returns int
as
begin
declare @start datetime
set @start=getdate()
declare @ages int
select @ages=datediff(yy,birth,@start)
from xsb
where xh=@xh
return @ages
end
print dbo.ages('081101')
2、
数据类型转换,利用cast函数把成绩转换为字符型,并查找成绩从70到79分的学生
select xh,cj
from cjb
where cast(cj
as char(20))
like '7_' and
cj>=70
3、
用户自定义函数,定一个函数查找某门课程的平均成绩,课程号为参数
create function
avergage(@kch char(20))
returns int
as
begin
declare @aver int
select @aver=(
select avg(cj)
from cjb
where kch=@kch
group by
kch
)
return @aver
end
print dbo.avergage(101)
4、
分别利自定义函数来实现字符串倒置,并调用执行
create function
reversal(@lines varchar(50))
returns varchar(50)
as
begin
declare @numbers varchar(50)
select @numbers=reverse(@lines)
return @numbers
end
print dbo.reversal('351eawlfe')
5、
对xsb表的姓名创建简单索引,并删除
create index xsb_xm_in
on xsb(xm)
drop index
xsb.xsb_xm_in
6、
对xsb表的姓名创建唯一索引,并删除,如果创建不成功,请解释为什么
create unique index xsb_xm_in
on xsb(xm)
创建失败及原因:
消息1505,级别16,状态1,第1 行
CREATE UNIQUE INDEX 终止,因为发现对象名称'dbo.xsb' 和索引名称'xsb_xm_in' 有重复的键。重复的键值为(王林)。
语句已终止。
即:有两个叫王林的人,所以无法创建唯一索引。
7、
对xsb表的姓名创建聚集索引,如果创建不成功,请解释为什么
create unique clustered index
xsb_xm_ind
on xsb(xm)
创建失败及原因:
消息1902,级别16,状态3,第1 行
无法对表'xsb' 创建多个聚集索引。请在创建新聚集索引前删除现有的聚集索引'PK__xsb__7C8480AE'。
即:table原本就有主键即为学号,而每个表只会有一个聚焦索引。
8、
对xsb表的姓名和专业名创建复合索引,并删除
create index xsb_ind
on xsb(xm,zy)
drop index
xsb.xsb_ind
9、
新建用户表,含用户号、用户名、注册时间、手机号码、性别等字段属性
用户号自增,注册时间用当前时间做默认值、性别用1做默认值,手机号码长度必须等11位
create table uers
(
id int identity(1,1)
primary key,
username varchar(25)
not null,
regTime datetime null
default getdate(),
phone int null
check(len(phone)=11)
sex int not
null default 1
)
Mysql环境操作
10、
用户自定义函数根据学号求学生年龄(学号为参数)
11、
数据类型转换,利用cast函数把成绩转换为字符型,并查找成绩从70到79分的学生
select xh,cj
from cjb
where cast(cj as
char(20)) like '7_' and cj>=70
12、
用户自定义函数,定一个函数查找某门课程的平均成绩,课程号为参数
13、
分别利自定义函数来实现字符串倒置,并调用执行
14、
对xsb表的姓名创建简单索引,并删除
create index xsb_xm_in
on xsb(xm)
drop index xsb_xm_in
on xsb
15、
对xsb表的姓名创建唯一索引,并删除,如果创建不成功,请解释为什么
create unique index xsb_xm_in
on xsb(xm)
创建失败及原因:
#1062 - Duplicate entry '王林' for key
'xsb_xm_in'
16、
对xsb表的姓名创建聚集索引,如果创建不成功,请解释为什么
create unique clustered index
xsb_xm_ind
on xsb(xm)
创建失败。
17、
对xsb表的姓名和专业名创建复合索引,并删除
create index xsb_ind
on xsb(xm,zy)
drop index xsb_ind
on xsb
18、
新建用户表,含用户号、用户名、注册时间、手机号码、性别等字段属性
用户号自增,注册时间用当前时间做默认值、性别用1做默认值,手机号码长度必须等11位
create table uers
(
id int auto_increment primary key,
username varchar(25) not null,
regTime timestamp not null current_timestamp,
phone int null check(length(phone)=11),
sex int default 1
)
思考:
索引的作用,唯一索引和主键的区别