sql中常用语句

sql中常用语句

select语句

1、强制转换(数据类型转换cast,convert)
select sno,sname, cast(studyday as char(10)) as 入学年份 from tbl_stu
2、将'_'转换为普通字符(*代表多个字符,_代表一个字符)
select * from tbl_course where c_name like '数据库/_%' escape '/'
3、查询并显示其他字段名
select sno as 学号 ,sname as 姓名 ,sage as 年龄 from tbl_stu
4、查询并加一列
select *, 十分制=mark/10 from tbl_mark
5、all
select all sno from tbl_stu与select sno from tbl_stu 一样
6、distinct去掉重复的数据
select distinct sno as 学号 from tbl_mark
7、top 查头三个并按成绩倒序排列
select top 3 * from tbl_mark order by mark desc
注:先排序再查头三个
select top 30 percent * from tbl_mark
8、case语法
select sno,c_id,mark,等级=
case when mark is null then '缺考'
when mark<60 then '不及格'
when mark>=60 and mark<=80 then '及格'
else '优秀'
end
from tbl_mark
9、在查询结果中加入常量
select 课程信息=cast(c_id as varchar(3))+'---'+c_name from tbl_course

update语句

1、更改字段名
update tbl_course set c_name='数据库_sql' where c_id=1

索引


if exists(select * from sys.indexes where name='学号')
drop index 学号 on tbl_stu--drop index tbl_stu.学号
go
create unique nonclustered index 学号 on tbl_stu(sno)
go
exec sp_helpindex 'tbl_stu'
exec sp_rename 'tbl_stu.学号','tbl_stu.学号_index'

创建视图
create view v_mark_id1
with encryption
as
select * from tbl_mark where c_id=1

select * from v_mark_id1

exec sp_helptext v_mark_id1 --对象 'v_mark_id1' 的文本已加密。

if exists (select * from sys.sysobjects where name='v_mark_某个学生的总成绩'and type='v')
drop view v_mark_某个学生的总成绩
go
create view v_mark_某个学生的总成绩
as
select sno as 学号,总分=sum(mark)from tbl_mark
group by sno
having sum(mark)>150

select * from v_mark_某个学生的总成绩

sp_rename v_mark_某个学生的总成绩,v_mark_学生的总成绩
sp_rename v_mark_学生的总成绩,v_mark_某个学生的总成绩

exec sp_helptext v_mark_某个学生的总成绩 --查看sql语句

函数

 

use student
go
if exists(select * from sys.sysobjects where name='xuefen'and xtype='fn')
drop function xuefen
go
create function xuefen(@inputxf int)
returns nvarchar(10)
begin
declare @returnstr nvarchar(10)
if @inputxf>=60
set @returnstr='取得学分'
else
set @returnstr='未取得学分'
return @returnstr
end
go

select *,dbo.xuefen(mark) as 是否取得学分 from tbl_mark

print dbo.xuefen(90)--必须在函数前面写上dbo

if exists(select * from sys.sysobjects where name='xuesheng'and xtype='if')
drop function xuesheng
go
create function xuesheng(@inputsno char(10))
returns table
as
return select sno,c_id,mark from tbl_mark where sno=@inputsno
go

select * from dbo.xuesheng('wl06101')

exec sp_helptext xuefen
exec sp_helptext

存储过程

 

if exists(select * from sys.sysobjects where name='proc_mark'and xtype='p')
drop proc proc_mark
go
create proc proc_mark
as
begin
select * from tbl_mark where mark>70
end
go

exec proc_mark

--使用系统表查看存储过程信息
select text from sys.syscomments where id in (select id from sys.sysobjects where name='proc_mark'and xtype='p')
--使用系统存储过程查看存储过程信息
exec sp_helptext proc_mark

--print语句
declare @str char(20)
set @str='欢迎使用PRINT语句'
print @str

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值