SQL数据库语句总结
- 格式:docx
- 大小:126.51 KB
- 文档页数:13
数据库
T-SQL语句
1、创建数据库create database 数据库名
2、选择数据库use 数据库名
3、删除数据库drop database 数据库名
用SSMS
1、创建数据库
2、查看可修改数据库参数
3、删除数据库
基本表(仅仅是对表结构(属性和约束)的操作,而非表中数据)
T-SQL语句
1、创建基本表<重在约束>
2、修改基本表(约束或属性)
3、删除基本表
4、基本表的索引
用SSMS
1、创建基本表(课本137)
2、建立表的约束条件和索引(课本138)
3、修改表结构(课本141)
1、创建基本表<重在约束>
数据(是对表中数据(属性和约束)的操作(增删改查),而非表结构)
T-SQL语句
1、数据插入
2、数据修改
3、数据删除
4、数据查找
视图
T-SQL语句
1、建立视图
2、删除视图
3、查询视图
4、更新视图
用SSMS(课本167)
1、建立视图
2、删除视图
3、查询视图
4、更新视图
别名
可能破坏参照完整性的情况及违约处理
In和exist的区别
1、创建基本表<重在约束>
CREATE TABLE [〈库名〉]〈表名〉(
〈列名〉〈数据类型〉[〈列级完整性约束条件〉] ,
〈列名〉〈数据类型〉[〈列级完整性约束条件〉]]
[,…n]
[,〈表级完整性约束条件〉]
[,…n] )
针对属性值设置的限制条件《列级》
1) NOT NULL或NULL约束。NOT NULL约束不允许字段值为空,而NULL约束允许字段值为空。
2) UNIQUE约束。惟一性约束,即不允许列中出现重复的属性值。
3)PRIMARAY KEY [CLUSTERED|NON CLUSTERED]:定义该字段为主码并建立聚集(非)索引
Not null unique和primary key的区别:DBMS会给primary key建立索引
多个属性构成的主码只能通过表级约束条件定义PRIMARY KEY (Sno,Cno)
单个属性构成的主码可通过列级或表级约束条件定义Sno CHAR(9) PRIMARY KEY
或PRIMARY KEY (Sno)
4) DEFAULT约束。默认值约束。DEFAULT〈约束名〉〈默认值〉FOR〈列名〉
5) CHECK约束。检查约束。CONSTRAINT〈约束名〉CHECK (〈约束条件表达式〉)
单一属性设限
CONSTRAINT C2 CHECK(性别IN (‘男’,‘女’))
CONSTRAINT C3 CHECK(成绩BETWEEN 0 AND 100)
CHECK (Sage < 30)
多属性之间设限
CHECK (Ssex='女' OR Sname NOT LIKE 'Ms.%')
✓性别是女性的元组都能通过该项检查,因为Ssex=‘女’成立;
✓当性别是男性时,要通过检查则名字一定不能以Ms.打头
6)identity(初值,步长):定义字段为数值型数据,并指出它的初始值和逐步增加的步长值
7)reference 参照表(对应字段):定义该字段为外码,并指出被参照表及对应字段
涉及到关系中一个或多个列或表间的限制条件《记录/字段》《表级》
格式:CONTRAINT〈约束名〉<约束式>
Sname CHAR(20) CONSTRAINT C2 NOT NULL
1) UNIQUE约束。惟一性约束。
2) PRIMARY KEY[CLUSTERED|NON CLUSTERED]定义主码,保证惟一性和非空性。建立聚集(非)索引。
CONTRAINT〈约束名〉PRIMARY KEY [CLUSTERED] (〈列组〉)
3)check(条件表达式):定义记录应满足的条件
4) FOREIGN KEY约束。用于定义参照完整性。
CONTRAINT〈约束名〉FOREIGN KEY(〈外码〉) REFERENCES〈被参照表名〉(〈与外码
对应的主码名〉) 2、修改基本表(约束或属性)
ALTER TABLE〈表名〉
[alter column(〈列名〉〈新类型〉[完整性约束] [,…n])]修改字段定义或约束条件
[ADD(〈新列名〉〈数据类型〉[完整性约束] [,…n])]增加字段或者字段和表的约束
[DROP〈完整性约束名〉]删除字段或约束
{check|nocheck}constraint{all|约束名组}使约束有效或无效(check使之有效,nocheck使
之无效,all指全部约束)
[MODIFY(〈列名〉〈数据类型〉[,…n])]
增加约束
ALTER TABLE Student ADD CONSTRAINT C3 CHECK (Sage < 40)
增加属性
ALTER TABLE Student ADD S_entrance DATE
3、删除基本表drop table 表名
4、基本表的索引
1)创建索引CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]
INDEX〈索引名〉ON〈表名〉(〈列名〉[〈次序〉][,〈列名〉[〈次序〉]]…);
UNIQUE:建立唯一索引,不允许有两行具有相同索引值
CLUSTERED|NONCLUSTERED:建立聚集或者非聚集索引,每张表只能有一个
聚集索引,默认值为非聚集索引
2) 删除索引DROP INDEX 〈索引名〉
1.索引的作用
1) 使用索引可以明显地加快数据查询的速度。
2) 使用索引可保证数据的惟一性。
3) 使用索引可以加快连接速度。
2. 建立索引的原则
1) 索引的建立和维护由DBA和DBMS完成。
2) 大表应当建索引,小表则不必建索引。
3) 对于一个基本表,不要建立过多的索引。
4) 根据查询要求建索引。
3.例子
学生表按学号升序建立索引;
CREATE UNIQUE INDEX stusno ON 学生(学号);
课程表按课程号升序建惟一索引;
CREATE UNIQUE INDEX coursno ON 课程(课程号);
选课表按学号升序和课程号降序建惟一索引。
CREATE UNIQUE INDEX scno ON 选课(学号ASC,课程号DESC);
用SSMS
1、创建基本表(课本137)
2、建立表的约束条件和索引(课本138)
3、修改表结构(课本141)
数据(是对表中数据(属性和约束)的操作(增删改查),而非表结构)
T-SQL语句
1、数据插入
1)使用常量插入单个元组
INSERT INTO〈表名〉[(〈属性列1〉[,〈属性列2〉…)]
VALUES (〈常量1〉[,〈常量2〉]…)
如果没有列出任何列名,则必须将所有列名对应的值,包括空值“”,也要列出来;
如果列出了列名,则值要与列名出现的先后顺序对应,没有列出的属性会设为空,此时要注意该属性能否为空。
2)在表中插入子查询的结果集(一次插入多个元祖)