--、while循环
declare @sum int
declare @i int
set @i=
set @sum=
while(@i<)
begin
set @sum =@sum+@i
set @i=@i+
if(@i>)
print @i
end
print @sum --、goto语句
declare @num int
set @num=
flag:
print @num
select @num=@num+
while(@num<)goto flag
print '------------------'
print @num --、表变量 declare @mytable table(nam nvarchar(),num nvarchar()) insert into @mytable select ClassName,ClassNum from dbo.tb_Class select * from @mytable --、局部临时表,全局临时表 --局部临时表
create table #temp_tb(
id int,
pwd nvarchar()
) --全局临时表
create table ##temp_tb(
id int,
pwd nvarchar()
) --、批量导入数据并创建临时表
select ClassName,ClassNum into #temp from dbo.tb_Class
select * from #temp --、区间查询 between and (not between and) select * from tb_class where classnum between and select * from tb_class where classnum not between and --、in变量,is null is not null,去重复distinct --、随机查询、子查询 select top * from tb_class order by newid() --、行号 select '行号'=identity(int,,),classname,classnum into #temp from tb_class
select * from #temp --模糊查询 like not like "% _ []"通配符 select * from tb_class where className like '高%[^三]' select * from tb_class where des like '[a-z]%' select * from tb_class where ClassNum like '[^1]%' select * from tb_class where des like '%100/%%' escape '/' select * from tb_class where des+ClassName like '%[二在]%' --case 语句、类型转换 cast显示转换
select *,班级=
case
when ClassNum> then '大班'
when ClassNum= then '中班'
when ClassNum< then cast(ClassNum as nvarchar())
end
from tb_class --类型转换 ,cast ,Convert
select convert(nvarchar(),getdate(),)as 时间格式 --去除空格 rtrim ltrim select ltrim(' 中国 人 ')as title --截取字符串substring select substring('中华人民共和国',,) as title --字符插入sutff select stuff('中华共和国',,,'人民') as title --计算字符长度 len
select len('中华人民共和国') --字符串大小写lower upper
--字符串替换replace
select replace('中*华*人*民*共*和*国','*','-') --获取字符所在位置 select substring('010-99998888',,charindex('-','010-99998888')) --日期函数
select year(getdate())
select month(getdate())
select day(getdate())
select datepart(year,getdate())
select datepart(hh,getdate()) select datename(dw,getdate()) as 今天星期几 select datename(ww,getdate()) as 本周是一年的第几周 select datename(yy,getdate()) as 年份 select datename(dy,getdate()) as 今天是一年中的第几天 select datediff(d,'2012-11-27','2012-11-30') as 相差天数
select datediff(hh,'2012-11-27','2012-11-30') as 相差小时 select getdate(),dateadd(d,,getdate()) as 增加三天
select getdate(),dateadd(hh,,dateadd(d,,getdate())) as 增加三天在增加三小时 --排序order by 笔画排序:Chinese_prc_stroke_cs_as_ks_ws,音序排序:chinese_prc_cs_as select * from tb_class order by des collate Chinese_prc_stroke_cs_as_ks_ws select * from tb_class order by des collate Chinese_prc_cs_as --动态排序 declare @myorder int
set @myorder=
select * from tb_class order by case @myorder
when then classnum
when then id
end
desc --聚合函数,where(作用单行) 和 having(作用多行)区别 select count(distinct classname) from tb_class --游标 sql语句面向一个集合操作,游标面向逐条记录的操作
declare cur_s cursor
for select * from tb_class
for read only --只读游标
for update of classname--更新游标 declare @cur_ss cursor--游标变量 open cur_s fetch next from cur_s while @@FETCH_STATUS=
begin
fetch next from cur_s
end close cur_s
--释放游标
deallocate cur_s --存储过程是一组为了完成特定功能的SQL语句集合,创建Create、修改Alter、删除Drop
create procedure GetClassInfo
(
@id int,
@ClassName nvarchar(),
@Sum int output--存储过程返回值一种情况
)
as
begin
select @Sum=sum(ClassNum)from tb_Class where id>@id and ClassName=@ClassName
declare @AllSum int
select @AllSum=sum(ClassNum)from tb_Class
return @AllSum--存储过程返回值另一种情况
end
go
declare @sum int
declare @AllSum int
EXEC @AllSum=GetClassInfo ,'高三',@sum output
select @sum as 总数,@AllSum as 全部总数 --重命名存储过程
exec sp_rename 'GetClassInfo','ReNameGetInfo'
--监视存储过程
exec sp_monitor
--返回参数含义
-- *last_run: 上次运行时间
--
-- *current_run:本次运行的时间
--
-- *seconds: 自动执行存储过程后所经过的时间
--
-- *cpu_busy:计算机CPU处理该存储过程所使用的时间
--
-- *io_busy:在输入和输出操作上花费的时间
--
-- *idle:SQL Server已经空闲的时间
--
-- *packets_received:SQL Server读取的输入数据包数
--
-- *packets_sent:SQL Server写入的输出数据包数
--
-- *packets_error:SQL Server在写入和读取数据包时遇到的错误数
--
-- *total_read: SQL Server读取的次数
--
-- *total_write: SQLServer写入的次数
--
-- *total_errors: SQL Server在写入和读取时遇到的错误数
--
-- *connections:登录或尝试登录SQL Server的次数 --自动执行存储过程
--sp_procoption [@procName=] 'procedure', [@optionName=] 'option', [@optionValue=] 'value'
-- [@procName=] 'procedure': 即自动执行的存储过程
--
-- [@optionName=] 'option':其值是startup,即自动执行存储过程
--
-- [@optionValue=] 'value':表示自动执行是开(true)或是关(false)
exec sp_procoption @procName='masterproc', @optionName='startup', @optionValue='true' --自定义函数
--标量函数
create function myfunAdd(@a int,@b int)
returns int
as
begin
declare @c int
set @c=@a+@b
return @c
end
go
declare @a1 int,
@b1 int,
@c1 int
set @a1=
set @b1=
set @c1=School.dbo.myfunAdd(@a1,@b1)
print @c1 --表值函数
create function GetTable()
returns table
as
return (select * from tb_class) select * from School.dbo.GetTable() --触发器,特殊的存储过程,嵌套触发器、递归触发器 create trigger mytrigger
on tb_Class
for update,delete,insert--三种触发器
as
update tb_student set age=age+ where id = update tb_Class set des='???' where id =
delete from tb_Class where id= --事务
begin try
begin transaction
insert into tb_class values('特色班',,'描述')
insert into tb_student([name],sex,age,classid) values('小刘',,,)
commit transaction
end try
begin catch
rollback
end catch --保存事务
begin transaction
insert into tb_class values('特色二班',,'描述')
insert into tb_student([name],sex,age,classid) values('小二',,,)
save transaction save1
insert into tb_class values('特色三班',,'描述')
insert into tb_student([name],sex,age,classid) values('小叁',,,)
rollback transaction save1
commit transaction --事务并发控制
begin tran
select * from dbo.tb_Class with(holdlock)
waitfor delay '00:00:10'
commit tran update tb_Class set ClassNum= where id=
select * from tb_Class --视图 --创建约束,主键约束、外键约束、唯一约束、check约束、default约束 --创建表设置字段
create table ss
(
id int identity(,) not null constraint pk_id primary key ) --修改表设置字段
alter table dbo.tb_Class
add constraint pk_id primary key(id)
-- drop constraint pk_id --删除主键
--add constraint un_ss unique(id)--唯一约束
add constraint ch_sex check (like '[0-1]')
add constraint de_sex default for sex alter table dbo.tb_student
add constraint fk_classid
foreign key(classid)
references tb_Class (id)

sql基础复习的更多相关文章

  1. SQL基础复习1

    一.概述 SQL语言组成:DDL,DCL,DML 二.数据定义 1.模式定义(Schema) Schema这个东西一直感觉不大明白,一直以为就是对表的字段定义则被称为Schema,在复习数据库理论中才 ...

  2. SQL基础复习2

    一.视图 1.创建视图      创建视图后加 WITH CHECK OPTION 2.视图查询 数据库系统的处理方法: 视图消解法(View Resolution) 步骤: 进行有效性检查-> ...

  3. MySQL学习笔记_8_SQL语言基础复习

    SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...

  4. 数据库学习---SQL基础(二)

    数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) 上篇复习的sql的增删改查,and ,or ,>=, <=,!=等逻辑运算符,还有in ...

  5. mybatis学习笔记之基础复习(3)

    mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...

  6. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  7. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  8. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  9. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. Android的两种菜单

    Android子菜单和选项菜单与上下文菜单的实现 菜单在Android开发中必不可少,可是要怎么实现各种菜单呢?是不是很头疼呢?下面我就来介绍一下: 1. 选项菜单和子菜单的实现 选项菜单:最常规的菜 ...

  2. static class

    http://msdn.microsoft.com/zh-cn/library/79b3xss3(VS.80).aspx 不可被继承

  3. poj 3628 Bookshelf 2

    http://poj.org/problem?id=3628 01背包 #include <cstdio> #include <iostream> #include <c ...

  4. 交叉编译环境以及开发板上-/bin/sh: ./hello: not found(使用arm-linux-gcc -static -o 来进行静态编译)

    目标板是S3C2440.至于交叉编译环境的搭建就不多说了,网上很多教程. 搭建好了交叉编译环境后,第一件事就是传说中的”Hello,World!”. 一. 主机编译环节 我使用的系统是ubuntu10 ...

  5. Android双击返回键退出Activity的两种方法

    在开发应用程序的时候,有一种功能是非常常用到的,那就是迅速双击返回按钮,然后实现退出Activity的功能.本人在网上看了很多资料代码,总结起来,主要有两种比较好的方式.一种是开线程延时执行,一种是记 ...

  6. 2014-07-28 使用Axure RP进行手机端BBS的原型设计

    今天是在吾索实习的第14天.因本公司的微信公众号需要有一个对外的技术交流平台,所以我们小组打算设计一个手机端的BBS以满足其要求.首先,我们需要做的是进行数据库设计与原型设计,然后提交给经理验收,看看 ...

  7. 关于Python中的for循环控制语句

    #第一个:求 50 - 100 之间的质数 import mathfor i in range(50, 100 + 1):    for j in range(2, int(math.sqrt(i)) ...

  8. Linux下使用虚拟网卡的ingress流控(入口流控)

    Linux内核实现了数据包的队列机制,配合多种不同的排队策略,可以实现完美的流量控制和流量整形(以下统称流控).流控可以在两个地方实现,分别为egress和ingress,egress是在数据包发出前 ...

  9. 《Linux Device Drivers》第十二章 PCI司机——note

    一个简短的引论 它给这一章总线架构的高级概述 集中访问讨论Peripheral Component Interconnect(PCI,外围组件互连)外设内核函数 PCI公交车是最好的支持的内核总线 本 ...

  10. Ubuntu Wpa wifi connection

    最近做一个项目,需要做一个WIFI连接模块,这几天都在折腾,终于,今天终于是连上网络了,只不过连网的过程有点慢,还有一些缺点,先写下来以备忘记. 1.环境建立: sudo apt-get instal ...