常用的SQL语句

以下语句根据自己的数据库来应用:

/*1 简单SELECT语句*/

//as指定列名

1.select * from T_Table

2.select 12*13 as 计算结果

3.select 姓名 as 学生姓名,性别 from 学生信息

4.select distinct * from T_Table

 

/*2 设置查询条件*/

1.select * from 学生信息 where 姓名='张三'

2.select * from 学生信息 where 姓名='张三' and(or) 性别='男'

3.select * from 学生信息 where 姓名 like '张%'

 

/*3 排序*/

//默认升序asc

1.select * from 学生信息 where 姓名='张三' order by 分数 desc,学生编号 asc

 

/*4 分组.*/

1.select 课程编号,avg(分数) from 学生信息 where 课程编号='0101'group by 课程编号

//rollup 对同一个考试编号,以课程编号分别小计,最后对考试编号进行总计

2.select 考试编号,课程编号,avg(分数) from 学生信息 where 课程编号='0101'group by rollup (考试编号,课程编号)

//cube 对同一个课程编号,以考试编号分别小计,最后对课程编号进行总计

3.select 考试编号,课程编号,avg(分数) from 学生信息 where 课程编号='0101'group by cube (考试编号,课程编号)

 

/*5 使用函数*/

//函数有max(),min(),avg(),sum()

1.select max(分数) from 学生信息 where 姓名='张三'

//显示前三名

2.select top 3 分数 from 成绩信息 where 考试编号='0801'and 课程编号='2' order by 分数 asc

 

/*6 having子句.*/

1.select 考试编号,课程编号,avg(分数) from 学生信息 group by考试编号,课程编号

         havingavg(分数)>=90

 

/*7 插入数据*/

1.insert into 学生信息values('2009100101','张三','男','1986-06-01','汉族','20050101','湖北武汉')

1.insert into 学生信息(学号,姓名,家庭住址)values('2009100101','张三','湖北武汉')

 

/*8 使用INSERT…SELECT语句*/

//备份数据表

1.insert 学生信息1

         select* from 学生信息 where 家庭住址 like '武汉%'

 

/*9 使用SELECT…INTO语句*/

1.select *

        into #student

        from 学生信息

        where 性别='男'

       

/*10 UPDATE语句*/

1.select * from 学生信息

         update学生信息 set 姓名='赵四' where 学号='2005050101'

        

/*11 在UPDATE语句中使用FROM子句*/

//连接a和b表更新数据

1.select * from T_student

update T_student set ....

from T_student a join 学生信息 b ona.s_name=b.姓名

 

/*12 DELETE语句*/

1.delete from table where 姓名=''

 

/*13 TOP关键字和Top表达式句*/

1.select top 10 * from 成绩信息

2.select top 10 percent * from 成绩信息

//利用变量来操作,关键字ties必须在使用orderby..之后使用,将同样符合条件列出

3.declare @i int

         set@i=20

 select top (@i) with ties percent * from 成绩信息 order by 分数

  

/*14 COMPUT子句*/

1.select * from 成绩信息 where 课程编号=2

         computesum(分数),avg(分数),max(分数),min(分数)

2.select * from 成绩信息 where 课程编号=2 orderby 考试编号

         computesum(分数),avg(分数),max(分数),min(分数) by 考试编号

 

/*15 在where子句使用运算符*/

1.select * from 成绩信息 where 考试编号='0802'and (分数%5=0)

2.select * from 成绩信息 where 考试编号='0802'and 分数 in (85,90,87,88)

3.select * from 成绩信息 where 考试编号='0802'and 分数 between 90 and 95

 

 

//关键字exists

declare @username varchar(20)

declare @pwd vachar(20)

set @username='2005040102'

set @pwd='张三'

if exists(select * from 学生信息 where 学号=@usernameand 姓名=@pwd)

print '登录成功'

else

print '登录失败'

 

//交查询

select a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b

where a.学生编号=b.学号 and a.课程编号=2 and a.考生编号='0801'

intersect

select a.成绩编号,a.分数,A.姓名 from

(

select top 10 a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b

where a.学生编号=b.学号 and a.考试编号='0801'order by a.分数 desc

) A

 

//差查询EXCEPT(去掉两个结果集交叉的部分)

select a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b

where a.学生编号=b.学号 and a.课程编号=2 and a.考生编号='0801'

 

except

 

select a.成绩编号,a.分数,A.姓名 from

(

select top 10 a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b

where a.学生编号=b.学号 and a.考试编号='0801'order by a.分数 desc

) A


 //exec存储过程调用

//创建存储过程

create proc p_sorce

@name varchar(20),

@sorce int output

as

select @sorce=avg(a.分数) from 成绩信息 a,学生信息 b 

where a.学生编号=b.学号 and b.姓名=@name

//调用语句

declare @sorce1 int

 exec p_sorce @name='  ',@sorce=@sorce1 output

print @sorce1

----goto语句使用-S--
--print '1'
--goto test_target
--print '2'
--test_target:
--print '3'
----goto语句使用-E--

----while,continue,break语句使用-S
--begin
--    declare @test_Var int,@test_sum int
--    select @test_Var=0,@test_sum=0
--    while @test_Var<=200
--    begin
--        set @test_sum += @test_Var
--        set @test_Var += 1
--        if @test_Var=30
--            break    --continue语句结束本次循环,继续下次循环,break语句直接跳出循环
--    end
--    select '100内所有整数之和:',@test_sum
--end
----while,continue,break语句使用-E

----程序块,变量case when赋值-S
--begin
--    declare @test_Var1 int,@test_String1 varchar(30)
--    set @test_Var1=50
--    set @test_String1=
--    case
--        when @test_Var1>=90 and @test_Var1<=100 then '优秀'
--        when @test_Var1>=60 and @test_Var1<90 then '及格'
--        else '不及格'
--    end
--    select 'result:' + @test_String1
--end
----程序块,变量case when赋值-E


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值