【sql server常用操作{增删改查}】

use DB_x
 go
 drop database DB_y
 create database DB_y --创建数据库
 on primary --指定主数据文件
 (
 name=db, --逻辑名
 filename='d:\db.mdf', --文件位置
 size=3MB, --初始大小
 maxsize=10MB, --最大增长
 filegrowth=1MB --增长方式
 )
 log on --指定日志文件
 (
 name=ldb,
 filename='d:\ldb.ldf',
 size=3MB,
 maxsize=10MB,
 filegrowth=1MB
 )
 alter database DB_y --修改数据库
 add file --添加主数据文件或日志等存储文件
 (
 name=dbs,
 filename='d:\dbs.ndf',
 size=1MB,
 maxsize=10MB,
 filegrowth=2%
 )
  
 create partition function x(int) --创建分区函数
 as range left for values(10,20,30,50)
  
 create partition scheme x --创建分区方案
 as partition x
 to (group1,group2,group3,PRIMARY)
  
 drop table tb_x
 create table tb_x --为表格分区
 (
 id int not null ,
 name char(10)
 )
 on x
  
 alter table tb_x add num int
 use DB_x
 select * from tb_x
 union all
 select * from tb
 alter table tb add constraint PK_id primary key(id) --insert两种插入数据方法
 insert into tb_x values(10,'a',5)
 insert into tb_x(id) select id from tb
 --查看视图定义
 exec sp_helptext vi_x
  
 select * from tb
  
 declare @x char(10) --声明变量
 set @x='hello world' --为变量赋值
 print @x --打印变量
  
 declare @y int
 select @y=id from tb where name='tindy' --用select选择字段为变量赋值
 print @y
 select * from tb
 --insert into tb values(1,'b','women')
 update tb set id=1 where id=2
 if @@ERROR=2627 --全局变量@@ERROR自定义错误信息
 print '你的查询有错误'
 select @@version
 --版本号及开发信息
 declare @x_x int,@y_y int --局部变量结合运算符表达式的运算
 set @x_x=10
 set @y_y=90
 print @x_x+@y_y
  
 select tb.id ,tb_x.name --T-sql 同mysql处理多表连接
 from tb
 full join tb_x
 on tb.id=tb_x.id
  
 select * from tb
 select sex='man' from tb where not exists( --T-sql子查询not|exists语句共存判断条件
 select id='1' from tb
 )
 set showplan_all on --开启查询过程索引连接搜索功能
 select * from tb_x
 set showplan_all off
 --整理数据磁盘文件
 set statistics IO off
 DBCC showcontig(tb) with fast
  
 if exists(select sex='mans' from tb) --exists执行判断是否满足select选择性删除索引
 drop index tb_x.in_x
  
 select * from tb
 alter table tb add constraint CK_tb check(id>0) --检查约束
  
  
  
 begin --begin...end:sql代码块开始与结束控制
 declare @x int,@y char(10),@z char(10)
 set @x=10
 set @y='my'
 set @z='sql'
 print @x
 end
 print @y+@z
  
  
 declare @x int,@y int --if..else分支判断语句
 set @x=0
 set @y=0
 if @x>0
 print '@x@y在一四象限'
 else
 print '@x@y在坐标原点'
 if @x<0
 print '@x@y在二三象限'
 else
 print '@x@y在坐标原点'
  
 select * from tb
  
 select id= --case循环分支语句
 case
 when id>1 and id<3 then 'jark'
 when id>3 and id<6 then 'tindy'
 else 'a'
 end
 from tb
  
 declare @i int,@sum int --while循环语句
 set @i=1
 set @sum=0
 while @i<=10
 begin
 print '死循环'
 /*
  if @i%2=0
  --set @sum=@sum+@i
  --set @i=@i+1
  continue
  --else
  --print '查询有误'
 set @sum=@sum+@i
 set @i=@i+1
 */
 end
 print '1-100的和是:'
 print @sum
  
 declare @x int
 set @x=10
 print @x
 return --语句返回,忽视下面语句
 print '还可以输出吗'
  
  
 declare @y int
 select @y=1
 example:
 print @y
 select @y=@y+1
 if @y%2=0
 while @y<10 goto example --跳转
  
  
 waitfor delay'00:00:01' --语句延迟和执行时间
 drop table tb
 print '现在删除DB_x库里的tb表'
  
 exec sp_addtype y , 'char(10)','not null' --自定义数据类型
 --形参
 create function fun_max(@x int ,@y int ) --自定义函数
 returns int --返回新的数据类型
 as
 begin
 if @x<@y
 set @x=@y
 return @x
 end
  
 declare @a int,@b int
 set @a=2
 set @b=10
 print fun_max(@a,@b ) --调用自定义的最大值函数,代入实参
  
  
 create function find(@z int) --自定义筛选函数
 returns table
 as
 return(select * from tb_x where id>@z)
 select * from find(4) --赋形参为4,筛选id>4的行
  
 use DB_x
 create procedure pro_tb_x --存储过程创建
 as
 select * from tb_x
  
 exec sp_helptext pro_tb_x --执行和查看存储过程
 use DB_x
 drop table tb_x
 create trigger tri_x --触发器创建
 on database --对于库的触发
 for DROP_TABLE,ALTER_TABLE --触发条件
 as
 begin
 print '你确定要触发这个触发器'
 rollback
 end
  
 drop trigger tri_y
 create trigger tri_y
 on all server --对于服务器的触发
 for create_login
 as
 begin
 print '你没有权限创建用户'
 end
  
 create login u1 with password='123'
  
 create trigger tri_z
 on
 for drop_table
 as
 begin
 print '删除了一张表'
 end
  
 drop trigger tri_x
  
 create login u4 with password='123' --创建登陆账号
 /*alter*/ drop login u1 /*with password='456'*/--修改和删除登陆账号
  
  
  
  
  
  

转载于:https://www.cnblogs.com/activecode/p/9985419.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值