sql server常用操作

来源:互联网 发布:修改电脑mac地址 编辑:程序博客网 时间:2024/05/16 12:34
1:在sql语句中,临时表有两类,分别是局部(local)和全局(global)临时表,局部临时表只在其会话(事务)中可见,全局临时表可以被会话(事务)中的任何程序或者

  模块访问


2:创建局部临时表

    

[sql] view plaincopyprint?
  1. use db_sqlserver 
  2. go 
  3. create table #db_local_table 
  4.   id  int
  5.   name varchar(50), 
  6.   age int
  7.   area int 
创建的临时表不能与其他会话共享,当会话结束时,行和表的定义都将被删除


3:创建全局临时表

[sql] view plaincopyprint?
  1. use db_sqlserver 
  2. go 
  3. create table ##db_local_table 
  4.   id  int
  5.   name varchar(50), 
  6.   age int
  7.   area int 

全局临时表对所有用户都是可见的,在每个访问该表的用户都断开服务器连接时,全局临时表才会被删除


4:创建主键、外键关联的数据库表
[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. create table db_table5 
  4.   职工编号 int primarykey
  5.   职工号  varchar(50) unique
  6.   仓库号  varchar(50), 
  7.   工资   int 
  8.  
  9. go 
  10. create table db_table6 
  11.   订单编号 int primarykey
  12.   订单号  varchar(50) unique
  13.   职工号 varchar(50) references db_table5(职工号), 
  14.   订购日期 datetime, 
  15.   销售金额 int 


5:创建具有check约束字段的数据库表
[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. create table db_table7 
  4.   仓库编号 int primarykey
  5.   职工号  varchar(50) unique
  6.   仓库号  varchar(50), 
  7.   工资   int
  8.   面积  int check(面积>=600and 面积<=1800) 

6:创建含有计算字段的数据库表

 

[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. create table db_table8 
  4.   职工编号 int primarykey
  5.   职工号 varchar(50) unique
  6.   仓库号 varchar(50), 
  7.   基本工资 int check(基本工资>=800and 基本工资<=2100), 
  8.   加班工资 int
  9.   奖金 int
  10.   扣率 int
  11.   应发工资 as (基本工资 + 加班工资 + 奖金 - 扣率) 

7:创建含有自动编号字段的数据库表

   

[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. create table db_table9 
  4.    仓库编号 int identity(1,1)primary key
  5.    仓库号 varchar(50) unique
  6.    城市 varchar(50) default('青岛'), 
  7.    面积 int check(面积>=300and 面积<=1800) 

向表中添加记录:

[sql] view plaincopyprint?
  1. insert into [db_sqlserver].[dbo].[db_table9](仓库号, 面积)values('400', 1600); 
仓库编号会自动增加


8:创建含有排序字段的数据表

[sql] view plaincopyprint?
  1. create table db_table10  
  2.    仓库编号 int identity(1, 1)primary key
  3.    仓库号 varchar(50) collate french_CI_AInot null
  4.    城市 varchar(50) default '青岛'
  5.    面积 int check(面积>=300and 面积<=1800) 

仓库号是一个排序字段,其中CI(case insensitive)表示不区分大小写,AI(accent insensitive)表示不区分重音,即创建的是一个不区分大小写

和不区分重音的排序。如果要区分大小和和区分排序,修改代码为:French_CS_AS


9:动态判断数据库表是否存在

[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. if(Exists(select * from sys.sysobjects where id=OBJECT_ID('db_table9'))) 
  4.   print '数据库表名已经存在' 
  5.    
  6. else  
  7.   print '该数据库表名不存在,可以利用该名创建表' 

10:查看表的各种信息,可以查看指定数据库表的属性、表中字段属性、各种约束等信息

[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. execute sp_help db_table9; 


11:用select语句查看数据库表的属性信息

[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. select * from sysobjectswhere type='U' 

12:重命名数据库表
[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. execute sp_rename "db_table9", "db_renametable" 

13:增加数据库表的新字段
  
[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. alter table db_table1add 电子邮件 varchar(50) 
  4. alter table db_table1add 联系方式 varchar(50)default '0532-88886396' 
  5.  
  6. select name 字段名, xusertype 类型编号, length 长度from syscolumns where id = object_id('db_table1'





14:修改数据库表的字段
[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. alter table db_table1alter column 电子邮件varchar(200) 
  4.  
  5.  
  6. select name 字段名, xusertype 类型编号, length 长度from syscolumns where id = object_id('db_table1'



15:删除数据库表字段

[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. alter table db_table1drop column 电子邮件  
  4.  
  5.  
  6. select name 字段名, xusertype 类型编号, length 长度from syscolumns where id = object_id('db_table1'




16:删除数据库表
[sql] view plaincopyprint?
  1. use db_sqlserver; 
  2. go 
  3. drop table db_table1 
  4. drop table db_table1, db_table2 

如果删除有依赖关联的数据库表,即主键、外键关键表、则要删除两个表之间的关联约束,然后才能删除表。注意,也可以先删除引用该表的数据库表,然后
即可删除该表,
0 0
原创粉丝点击