SQL常用语句之数据库中表的创建、删除以及属性的修改-篇幅3
一.表的创建:
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的更多相关文章
- SQL常用语句之数据库的创建、删除以及属性的修改-篇幅1
本篇文章主要总结了SQL Server 语句的使用和一些基础知识,因为目前我也正在学习,所以总结一下. 要使用数据库语句,首先就要知道数据库对象的结构: 通常情况下,如果不会引起混淆,可以直接使用对象 ...
- SQL常用语句之数据库数据类型-篇幅2
系统数据类型: 1.二进制数据类型 2.整数数据类型 3.浮点数据类型 4.精确小数数据类型 5.货币数据类型 6.日期/时间数据类型 7.字符数据类型 ...
- Oracle和SQL server查询数据库中表的创建和最后修改时间
有时候我们需要查看下数据数据库中表的创建时间和最后修改时间,可以通过以下语句实现: Oracle数据库 -- 查看当前用户下的表 SELECT * FROM USER_TABLES -- 查看数据库中 ...
- 【数据库】 SQL 常用语句
[数据库] SQL 常用语句 1.批量导入 INSERT INTO Table2(field1,field2,...) SELECT value1,value2,... FROMTable1 要求目标 ...
- 【数据库】 SQL 常用语句之系统语法
[数据库] SQL 常用语句之系统语法 1. 获取取数据库服务器上所有数据库的名字 SELECT name FROM master.dbo.sysdatabases 2. 获取取数据库服务器上所有非系 ...
- SQL常用语句(二)
--语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据 --数 ...
- mysql sql常用语句大全
SQL执行一次INSERT INTO查询,插入多行记录 insert into test.person(number,name,birthday) values(5,'cxx5',now()),(6, ...
- mysql sql常用语句
1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...
- ORACLE数据库 常用命令和Sql常用语句
ORACLE 账号相关 如何获取表及权限 1.COPY表空间backup scottexp登录管理员账号system2.创建用户 create user han identified(认证) by m ...
随机推荐
- IOC详解
Ioc--控制反转详解(转载 http://www.cnblogs.com/qinqinmeiren/archive/2011/04/02/2151697.html) 本文转载与百度知道,简单例子让 ...
- linux Sersync 参数说明
Sersync 的可选功能是通过 xml 配置文件来实现的,下面来为大家解释该文件! 在该文件中,使用<!--中间是注释内容-->的方式去注释信息,注意不是我们平时# [root@SERS ...
- [Luogu1220]关路灯(区间dp)
[Luogu1220]关路灯 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏 ...
- dialog写进dll调用
#ifdef DLG_WINDOW_API #define DLG_WINDOW_EXPORT __declspec(dllexport) #else #define DLG_WINDOW_EXPOR ...
- pandas数据读取(DataFrame & Series)
1.pandas数据的读取 pandas需要先读取表格类型的数据,然后进行分析 数据说明 说明 pandas读取方法 csv.tsv.txt 用逗号分割.tab分割的纯文本文件 pd.read_csv ...
- [python 学习] random
1.random() 生成一个随机浮点数 import random # x 属于 [0,1) x = random.random() print x 2.uniform() 生成制定范围内的随机浮点 ...
- Windows中的Work线程和GUI线程
Windows线程分为两种:Worker线程.GUI线程 worker线程:是指完全不牵扯到图形用户界面(GUI),纯粹做运算的线程. GUI线程:负责建造窗口以及处理消息循环(拥有消息队列).任何一 ...
- 网络安全意识有多重要?SamSam勒索软件敲诈了近600万美元
近年来,对于网络犯罪分子来说,勒索软件已成为数百万美元的黑市业务,SamSam就是一个很好的例子. 中国信息安全新研究显示,自2015年12月以来,SamSam勒索软件从受害者手中敲诈了近600万美元 ...
- Task9.Attention
注意力模型最近几年在深度学习各个领域被广泛使用,无论是图像处理.语音识别还是自然语言处理的各种不同类型的任务中,都很容易遇到注意力模型的身影.所以,了解注意力机制的工作原理对于关注深度学习技术发展的技 ...
- Java浏览器弹出下载框,多个文件导出压缩包
项目里一直有这个功能,也一直没怎么注意,今天研究了一下 依据逻辑往下走: 首先是要下载的ajax的Java方法,只有返回值需要设定一下,其他的不用管: Map<String, Object> ...