一.表的创建:

CREATE TABLE [database_name.[schema_name].|schema_name.]table_name

(column_name1 data_type                 --列名

[ DEFAULT constant_expression]    --约束类型

[ IDENTITY ( SEED, INCREMENT )]  --列标识

[ NULL | NOT NULL ][ ,…n]         --是否允许为空

)

[ON { filegroup | DEFAULT } ]      --所在文件组

例.为sales数据库在文件组USER1上创建Category种类表

use sales

CREATE TABLE Category

(CategoryID int NOT NULL,

CategoryName nvarchar(15),

Description nvarchar(200),

NodeID char(8) IDENTITY(1,1)    --标识列标识从1开始递增,每次增幅为1

)

ON USER1

二.表结构的修改--增加、删除、修改列:

ALTER TABLE table_name

{ ADD column_name  date_type [DEFAULT  contant_expression]

[IDENTITY(SEED,INCREMENT)] [NULL | NOT NULL] [ ,…n]

| DROP  COLUMN  column_name

| ALTER  COLUMN  column_name  new_datetype  [NULL | NOT NULL ]

}

例.在数据库test的表Custom中增加Address列

ALTER TABLE Custom

ADD Address char(20)

删除xx列

ALTER TABLE Custom

DROP COLUMN xx

修改列:将Custom表中的Address字段的长度改为30,且不能为空

ALTER TABLE Custom

ALTER COLUMN Address char(30) not null

三.修改表中的内容--插入、删除:

1.在表中插入数据:

INSERT [ INTO ] table_name [ ( column_name [,…n] ) ]
VALUES ( expression | NULL | DEFAULT [,…n] )--expression为要插入的值,字符型与日期类型要加   ' '  号

例.在表Seller中插入下面数据

INSERT INTO Seller(SaleID,SaleName,Sex,Birthday,HireDate,Address,Telephone,Notes)

VALUES('01','张三',DEFAULT,'1974-07-25',NULL,NULL,NULL,DEFAULT)

--其中空值(null)可以不写出来,对应的列名也不必列出,对有默认值的可以使用DEFAULT使用默认值

--具有IDENTITY属性的列,其值由系统给出,用户不必向表中插入数据。

2.修改表中数据:

UPDATE table_name

SET column_name=expression [,…n]

[ WHERE search_conditions ]

3.删除表中数据:

DELETE [ FROM ] table_name
[ WHERE search_conditions]

四.创建表的约束:

总的语法格式:

CREATE TABLE table_name

( column_name data_type  [ [ CONSTRAINT constraint_name ] constraint_type ]

[,…n]  )

在已经创建的表中添加约束:

ALTER TABLE table_name

[ WITH CHECK | WITH NOCHECK ]

ADD [ CONSTRAINT constraint_name ] constraint_type

--WITH CHECK | WITH NOCHECK代表新加入的约束对表中现有的数据是否进行检查。

删除约束:

ALTER TABLE table_name

DROP CONSTRAINT constraint_name

1.创建主键约束:主键用于唯一地标识表中每一条记录。可以定义表中的一列或多列为主键。主键列的值不能重复,也不能为空值。

[ CONSTRAINT constraint_name ] PRIMARY KEY [ CLUSTERED | NONCLUSTERED ]

( col_name [,…n])

2.创建唯一约束:指定列上不可以有重复值

[ CONSTRAINT constraint_name ] UNIQUE [ CLUSTERED | NONCLUSTERED ]

( col_name [,…n])

3.创建CHECK约束:用来指定某列的可取值的范围。

[ CONSTRAINT constraint_name ] CHECK (exp)   --exp是表达式(表示条件、范围)

--作用:当向该表执行插入或更新操作时,SQL Server会检查插入的新列值是否满足CHECK约束的条件,若不满足,系统会报错,并拒绝执行插入或更新操作。

--注意:不能在具有IDENTITY属性的列上设置CHECK约束。

4. 创建DEFAULT约束:给表中指定列赋予默认值,当向该表插入数据时,如果用户没有明确给出该列的值,SQL Server会自动为该列输入默认值。每列只能有一个DEFAULT约束。

[ CONSTRAINT constraint_name ] DEFAULT (expression | NULL) FOR column_name

5.外键约束(Foreign key): 用于与其他表(主键表)中的列(称为主键列)建立连接。

[ CONSTRAINT constraint_name ]

FOREIGN KEY (col_name1[,…n])

REFERENCES table_name(column_name1[,…n])

其中:

col_name1[,…n]:是要实现外键约束的列。

table_name:是主键表(参照表)表名。

column_name1[,…n]:是主键列(参照列)列名。

例.

例3.31  若sales数据库中包含Seller表和Customer表。

Seller(SaleID、SaleName)

Customer(CustomerID、Company)

新建表Orders(OrderID、CustomerID、SaleID,OrderDate)

其中CustomerID、SaleID为外键。

CREATE TABLE Orders

(Orderid int PRIMARY KEY,

CustomerID char(3) REFERENCES Customer(CustomerID),

SaleID char(3) CONSTRAINT fk_sid REFERENCES Seller(SaleID),

OrderDate datetime DEFAULT getdate())

例.  修改OrderDetail表,在OrderID列上创建外键约束。

ALTER TABLE OrderDetail

ADD CONSTRAINT fk_orderid

FOREIGN KEY (OrderID) REFERENCES Orders(OrderID)

ALTER TABLE OrderDetail

WITH NOCHECK

ADD CONSTRAINT fk_orderid

FOREIGN KEY (OrderID) REFERENCES Orders(OrderID)

五.查看约束名:

sp_help student

或者:

sp_helpconstraint student

六.删除约束:

alter table_name

drop constraint  约束名

SQL常用语句之数据库中表的创建、删除以及属性的修改-篇幅3的更多相关文章

  1. SQL常用语句之数据库的创建、删除以及属性的修改-篇幅1

    本篇文章主要总结了SQL Server 语句的使用和一些基础知识,因为目前我也正在学习,所以总结一下. 要使用数据库语句,首先就要知道数据库对象的结构: 通常情况下,如果不会引起混淆,可以直接使用对象 ...

  2. SQL常用语句之数据库数据类型-篇幅2

    系统数据类型: 1.二进制数据类型      2.整数数据类型 3.浮点数据类型         4.精确小数数据类型 5.货币数据类型         6.日期/时间数据类型 7.字符数据类型    ...

  3. Oracle和SQL server查询数据库中表的创建和最后修改时间

    有时候我们需要查看下数据数据库中表的创建时间和最后修改时间,可以通过以下语句实现: Oracle数据库 -- 查看当前用户下的表 SELECT * FROM USER_TABLES -- 查看数据库中 ...

  4. 【数据库】 SQL 常用语句

    [数据库] SQL 常用语句 1.批量导入 INSERT INTO Table2(field1,field2,...) SELECT value1,value2,... FROMTable1 要求目标 ...

  5. 【数据库】 SQL 常用语句之系统语法

    [数据库] SQL 常用语句之系统语法 1. 获取取数据库服务器上所有数据库的名字 SELECT name FROM master.dbo.sysdatabases 2. 获取取数据库服务器上所有非系 ...

  6. SQL常用语句(二)

    --语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据 --数 ...

  7. mysql sql常用语句大全

    SQL执行一次INSERT INTO查询,插入多行记录 insert into test.person(number,name,birthday) values(5,'cxx5',now()),(6, ...

  8. mysql sql常用语句

    1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...

  9. ORACLE数据库 常用命令和Sql常用语句

    ORACLE 账号相关 如何获取表及权限 1.COPY表空间backup scottexp登录管理员账号system2.创建用户 create user han identified(认证) by m ...

随机推荐

  1. 攻防世界--re1-100

    测试文件:https://adworld.xctf.org.cn/media/task/attachments/dc14f9a05f2846249336a84aecaf18a2.zip 1.准备 获取 ...

  2. 微信支付签名算法JavaScript版,参数名ASCII码从小到大排序;0,A,B,a,b;

    // 支付md5加密获取sign paysignjs: function (jsonobj) { var signstr = this.obj2str(jsonobj) signstr = signs ...

  3. TCP窗口

    一.窗口移动1.在建立TCP连接时,接收端会告诉发送端自己的接收窗口.2.发送端在发送数据时,会先为数据分包,编号,然后先发送窗口大小的数据(数据大于窗口大小),小于则全部发送了,窗口后的不允许发送. ...

  4. [python 学习] logging模块

    1.将简单日志打印到屏幕: import logging logging.debug('debug message') logging.info('info message') logging.war ...

  5. 在MySQL登录时出现Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问,并可修改MySQL密码

    这两天装了一个mysql 5.7数据库,但是在本地dos登陆不上去,报错Access denied for user 'root'@'localhost'(using password:YES): 也 ...

  6. Task2.特征提取

    参考:https://blog.csdn.net/u012052268/article/details/77825981/ 利用jieba分词工具去除停用词: 停用词:1.在SEO中为节省空间和提高搜 ...

  7. HashMap的几种遍历方式(转载)

    今天讲解的主要是使用多种方式来实现遍历HashMap取出Key和value,首先在java中如果想让一个集合能够用for增强来实现迭代,那么此接口或类必须实现Iterable接口,那么Iterable ...

  8. luoguP4721 【模板】分治 FFT (分治NTT)

    给定 $g[1....n-1]$,求 $f[0],f[1],...,f[n-1]$,其中   $f[i]=\sum_{j=1}^{i}f[i-j]g[j]$    变界为 $f[0]=1$ 答案模 9 ...

  9. CSS/CSS3常用的样式

    强制文本显示 让一段文字在固定宽度在一行显示,最后一个字符为省略标记(...),css样式如下 单行显示语法:white-space:nowrap; div{ white-space:nowrap; ...

  10. Python_007(深浅拷贝)

    一.基础数据类型的补充 1.其他类型之间的相互转换 例如:str = int(str) str => int; int = list(int) int => list;  tuple = ...