当前位置:   article > 正文

sql server创建数据表的完整语法_sqlserver建表语句

sqlserver建表语句

1.创建数据库

语法:CREATE DATABASE <数据库名称>

复制

CREATE DATABASE dbname -- 创建名为 dbname 的数据库

复制

2.表的创建

  1. 语法:
  2. USE suntest
  3. create table 仓库
  4. (
  5. 仓库编号 int ,
  6. 仓库号 varchar(50) ,
  7. 城市 varchar(50) ,
  8. 面积 int
  9. )
  10. create table 仓库1
  11. (
  12. 仓库编号 int not null ,
  13. 仓库号 varchar(50) not null,
  14. 城市 varchar(50) not null, --不能为空not null--
  15. 面积 int
  16. )
  17. create table 仓库2
  18. (
  19. 仓库编号 int primary key , --主键的关键字primary key--
  20. 仓库号 varchar(50) unique, --唯一索引关键字unique--
  21. 城市 varchar(50) not null, --不能为空not null--
  22. 面积 int
  23. )
  24. create table 仓库3
  25. (
  26. 仓库编号 int primary key , --主键的关键字primary key--
  27. 仓库号 varchar(50) unique, --唯一索引关键字unique--
  28. 城市 varchar(50) default '青岛', --不能为空not null--
  29. 面积 int check (面积>=300 and 面积<=1800)
  30. )
  31. create table 职工表
  32. (
  33. 职工编号 int identity (1,1) primary key,
  34. 职工号 varchar(50) unique,
  35. 仓库号 varchar(50),
  36. 工资 int check(基本工资>=800 and 基本工资<=2100),
  37. )
  38. create table 订单表
  39. (
  40. 订单编号 int identity(1,1) primary key,
  41. 订单号 varchar(50) unique,
  42. 职工号 varchar(50) references 职工表(职工号),--references两张表通过“职工号”关联--
  43. 订购日期 datetime,
  44. 销售金额 int
  45. )
  46. create table 阳光工资表
  47. (
  48. 职工编号 int identity (1,1) primary key,
  49. 职工号 varchar(50) unique,
  50. 仓库号 varchar(50),
  51. 基本工资 int check(基本工资>=800 and 基本工资<=2100),
  52. 加班工资 int,
  53. 奖金 int,
  54. 扣率 int,
  55. 应发工资 as (基本工资+加班工资+奖金-扣率) --as为自动计算字段,不能输入值--
  56. )

复制

3.在现有表中添加标识列

  1. 下面的例子向表T_test中添加一个名为ID,类型为int,种子为1,递增量为1的标识列
  2. --创建表
  3. CREATE TABLE T_test
  4. (Name varchar(50)
  5. )
  6. --插入数据
  7. INSERT T_test(Name) VALUES('张三')
  8. --增加标识列
  9. ALTER TABLE T_test
  10. ADD ID int IDENTITY(1,1)
  11. 注:这只适用于刚建完表的情况,如果此时主键已经使用过了,表中存在许多数据,不能使用该方法删除主键,会导致数据丢失。(可行的方法,建一张相同的表来存储数据,在修改,插入)。

复制

4.创建外键

  1. create table 表名(
  2. 列名1 参数,
  3. 列名2 参数,
  4. foreign key(列名) references 目标表名(目标列名)
  5. );

复制

5.添加外键

  1. 比如stuInfo(学生信息表)表是主表。他的主键是stuID,
  2. 另外还有一个stuExam表(学生考试成绩表)。在这个表中也有个列是stuID,但是要引用主表中的stuID.
  3. 那么在创建约束的时候:
  4. alter table stuExam
  5. add constraint fk_stuID foreign key(stuID) references stuInfo(stuID)
  6. go

复制

6.约束

  1. primary key 主键
  2. not null, 不能为空not null
  3. unique, 唯一索引关键字unique
  4. check (面积>=300 and 面积<=1800) check 约束
  5. 约束
  6. 非空约束 --NN,ont null constraint
  7. 必须填写数据不能为空
  8. --指定表 Student 添加名为NN_Student_sClassId非空约束(指定列名sClassId),括号输入表达式
  9. alter table Student add constraint NN_Student_sClassId check(sClassId is not null)
  10. 主键约束 --PK,primary key constraint
  11. 唯一且不为空
  12. --指定表 Student 添加名为PK_Student_sId主键约束(指定列名sId)
  13. alter table Student add constraint PK_Student_sId primary key(sId)
  14. 唯一约束 --UQ,unique constraint
  15. 唯一,允许为空,但是同样的数据只能出现一次
  16. --指定表 Student 添加名为UQ_Student_sName唯一约束(指定列名sName)
  17. alter table Student add constraint UQ_Student_sName unique(sName)
  18. 默认约束 --DF,default constraint
  19. 设置默认值
  20. --指定表 Student 添加名为DF_Student_sName默认约束(指定列名sBirthday),获取当前日期
  21. alter table Student add constraint DF_Student_sName default(getdate()) for sBirthday
  22. --指定表 Student 添加名为DF_Student_sName默认约束(指定列名sBirthday),指定日期
  23. alter table Student add constraint DF_Student_sName default('1995-12-12') for sBirthday
  24. --指定表 Student 添加名为DF_Student_sName默认约束(指定列名sSex),指定性别
  25. alter table Student add constraint DF_Student_sSex default('男') for sSex
  26. 检查约束 --CK,check constraint
  27. 设置范围以及格式限制
  28. --指定表 Student 添加名为 CK_Student_sSex检查约束(指定列名sSex),限制为'男'或者'女'
  29. alter table Student add constraint CK_Student_sSex check(sSex='男' or sSex='女')
  30. --指定表 Student 添加名为 CK_Student_sSex检查约束(指定列名sAge),限制为0-100之间的数字
  31. alter table Student add constraint CK_Student_sAge check(sAge>=0 and sAge<=100)
  32. 外键约束 --FK,foreign key constraint
  33. 表关系
  34. alter table Student add constraint Fk_Student_sClassId foreign key(sClassId) references Class(cId)
  35. --指定表Student添加sClassId外键为Class的主键cId
  36. on delete cascade on update cascade --级联删除 --级联更新
  37. 删除约束
  38. alter table Student drop Constraint NN_Student_sClassId --删除指定表中的约束

复制

7.创建局部临时表

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

复制

8.创建全局临时表

  1. use db_sqlserver
  2. go
  3. create table ##db_local_table
  4. (
  5. id int,
  6. name varchar(50),
  7. age int,
  8. area int
  9. )
  10. 全局临时表对所有用户都是可见的,在每个访问该表的用户都断开服务器连接时,全局临时表才会被删除

复制

9.创建具有check约束字段的数据库表

  1. use db_sqlserver;
  2. go
  3. create table db_table7
  4. (
  5. 仓库编号 int primary key,
  6. 职工号 varchar(50) unique,
  7. 仓库号 varchar(50),
  8. 工资 int,
  9. 面积 int check(面积>=600 and 面积<=1800)
  10. )

复制

10.创建含有计算字段的数据库表

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

复制

11.创建含有自动编号字段的数据库表

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

复制

12.创建含有排序字段和默认值的数据表

  1. create table db_table10
  2. (
  3. 仓库编号 int identity(1, 1) primary key,
  4. 仓库号 varchar(50) collate french_CI_AI not null,
  5. 城市 varchar(50) default '青岛',
  6. 面积 int check(面积>=300 and 面积<=1800)
  7. )

复制

13.动态判断数据库表是否存在

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

复制

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

  1. use db_sqlserver;
  2. go
  3. execute sp_help db_table9;

复制

15.用select语句查看数据库表的属性信息

  1. use db_sqlserver;
  2. go
  3. select * from sysobjects where type='U'

复制

16.重命名数据库表

  1. use db_sqlserver;
  2. go
  3. execute sp_rename "db_table9", "db_renametable"

复制

17.增加数据库表的新字段

  1. use db_sqlserver;
  2. go
  3. alter table db_table1 add 电子邮件 varchar(50)
  4. alter table db_table1 add 联系方式 varchar(50) default '0532-88886396'
  5. select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')

复制

18.修改数据库表的字段

  1. use db_sqlserver;
  2. go
  3. alter table db_table1 alter column 电子邮件 varchar(200)
  4. select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')

复制

19.删除数据库表字段

  1. use db_sqlserver;
  2. go
  3. alter table db_table1 drop column 电子邮件
  4. select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')

复制

20.删除数据库表

  1. use db_sqlserver;
  2. go
  3. drop table db_table1
  4. drop table db_table1, db_table2
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号