2.5.2 使用 DROP DATABASE 语句删除数据库
3.3.2 PRIMARY KEY 约束 即 主键约束 【primary 第一的、原来的】
3.3.3 UNIQUE 约束 即 唯一约束 [unique 唯一的]
3.3.4 FOREIGN KEY 即 外键约束 [foreign 外国的、外交的]
3.3.5 CHECK 约束 即 检查约束 【check 检查、阻止、制止 】
3.4.2 使用 ALTER TABLE 语句修改表【P96】
[ORDER BY 排序表达式 [ASC |DESC ] ]
·<比较运算符> 用于比较两个表达式之间的值,并返回 true 、false 、unknown(当一个表达式取NULL 时返回 unknown)
4.4.4 使用BETWEEN 和 NOT BETWEEN 过滤记录 (缩小范围)
======================================================================
· IF EXISTS (SELECT * FROM sysdatabasesWHERE name=’表名’) //判断数据库是否存在 ·学号 int IDENTITY(2001001,1), // IDENTITY(2001001,1) 自动编号,种子和增量 |
|
DROP DATABASE 数据库名 [,…] |
DROP DATABASE DBtest1,Dbtest2 |
步骤:
1) 用系统存储过程 sp_addumpdevice 创建一个备份设备。 ·语法:sp_addumpdevice ‘设备类型’,’逻辑名称’,’物理名称’ ·本地硬盘上创建一个备份设备: EXECUTE sp_addumpdevice ‘disk’,mydiskbackup,’d:databasebackup/backup1.bak’ ·在网络盘上创建一个远程备份设备 EXECUTE sp_addumpdevice ‘disk’, ‘networkdevice’,’//servername/sharename/servername/sharename/path/filename.ext’
2) 用BACKUP 语句执行备份操作 ·对整个数据库进行备份 语句:BACKUP DATABASE 数据库名 TO 设备名称 ·只对事物日志备份操作 |
·还原整个数据库 RESTORE DATABASE 数据库名 FROM 设备名称 ·只还原事物日志 |
·sp_attach_db ‘数据库名’,’文件名’[,… 16] 解释: ‘数据库名’: ‘文件名’ :必须是唯一的。 |
例子: EXECUTE sp_attach_db ‘northwind’, |
第 3 章 表的创建与管理
3.1 SQL Server 2000 中的数据类型
3.2 表的创建
|
IF EXISTS (SELECT * FROM sysdatabasesWHERE name=’库名’) //判断数据库是否存在 DROP DATABASE库名 CREATE DATABASE 库名 GO
USE 库名 GO CREATE TABLE 表名 ( 学号 int IDENTITY(2001001, // IDENTITY(2001001,1) 自动编号,种子和增量 姓名 varchar(6), 专业 varchar(6) ) GO |
3.3 使用约束
2 使用 CREATE TABLE 语句创建NULL 约束
·[CONSTRAINT 约束名] NULL | NOT NULL |
CREATE TABLE 表名 ( 姓名 varchar(6) null, ) GO |
CREATE TABLE 表名 ( 姓名 varchar(6) null, constraint PK_stuNo primary key (stuNo) ) GO |
主键约束 later table stuInfo add constraint PK_stuNo primary key (stuNo) |
CREATE TABLE 表名 ( 姓名 varchar(6) null, constraint UQ_stuID unique (stuID) ) GO |
later table stuInfo add constraint UQ_stuID unique (stuID) |
CREATE TABLE 表名 ( 姓名 varchar(6) null, constraint UQ_stuID unique (stuID ) GO |
later table stuMarks add constraint FK_stuNo foreign key (stuNo) references stuInfo(stuNo) |
CREATE TABLE 表名 ( 姓名 varchar(6) null, constraint CK_stuAge check (stuAge between 15 and 40) GO |
later table stuInfo add constraint CK_stuAge check (stuAge between 15 and 40) |
CREATE TABLE 表名 ( 姓名 varchar(6) null, constraint DF_stuAddress default ("地址不详") for stuAddress) GO |
later table stuInfo add constraint DF_stuAddress default ("地址不详") for stuAddress |
1 使用ALTER COLUMN 子句修改字段定义
ALTER TABLE 表名 ALTER COLUMN 字段名 新数据类型[(精度[,小数位数])] [NULL | NOT NULL] |
例子: ALTER TABLE 通讯录 ALTER COLUMN 姓名 char(6) NOT NULL GO |
2 使用ADD子句添加字段
ALTER TABLE 表名 ADD {字段定义 | 字段名 AS 计算字段表达式} [,…] |
例子1: ALTER TABLE 通讯录 ADD 性别 char(2),班级 char(4),通讯地址 varchar(36),邮政编码 char(4) |
例子2: ALTER TABLE 成绩 ADD 平均分 AS(语文+数学)/2 GO |
3 使用DROP COLUMN 子句删除字段
ALTER TABLE表名 DROP COLUMN 字段名 [,…] |
例子: ALTER TABLE 通讯录 DROP COLUMN 性别,班级 |
4 使用 ADD CONSTRAINT 字句添加约束
ALTER TABLE 表名 ADD CONSTRAINT 约束定义[,…n] |
例子: ALTER TABLE 表名 ADD CONSTRAINT FK_SNo PRIMARY KEY CLUSTERED(学号), CONSTRAINT CK_Zip CHECK (邮政编码 LIKE ‘[0-9] [0-9] [0-9] [0-9] [0-9] [0-9]’) |
5 使用 DROP CONSTRAINT 字句删除约束
ALTER TABLE 表名 DROP CONSTRAINT 约束定义[,…n] |
例子: ALTER TABLE 表名 DROP CONSTRAINT FK_SNo,CK_Zip |
DROP TABLE 表名[,…n] |
4.1 SELECT 语句概述【P102】
SELECT 字段列表 [INFO 新表] FROM 数据源 [GROUP BY 分组表达式] [ORDER BY 排序表达式 [ASC |DESC ] ]
|
4.2 使用SELECT 子句选取字段和记录
1 选取全部字段
2选取部分字段
3选取特殊字段
4 设置字段别名
5使用计算字段
*
1 使用 ALL 返回全部记录
SELECT ALL 学号 FROM 成绩表 |
2 使用 disTINCT 过滤重复的记录 【distinct 清楚的、明显的、独特的】
SELECT disTINCT 学号 FROM 成绩表 |
3 使用TOP 仅显示前面若干行记录
SELECT TOP3 * FROM 成绩表 |
4.3 使用FROM子句指定数据源
·内连接: 。 ·内连接显示的字段:表1选中的记录 + 表2中选中的记录。 |
FORM 表1 [INNER] join 表2 ON <条件表达式> |
SELECT sc.学号,姓名 FORM 成绩表 AS sc INNER JOIN 学生表 AS st ON sc.学号 = st.学号 |
·左连接:左边的表为主表,右边的表为从表。 ·左连接显示的字段:所有主表记录 + 从表中选中的记录。 ·在查询结果中,主表中不符合条件的记录在相应的字段上填NULL. |
FORM 表1 LEFT [OUTER] join 表2 ON <条件表达式> |
SELECT a.学号,姓名 FORM 成绩表 AS a LEFT OUTER JOIN 学生表 AS b ON a.学号 = b.学号 |
·右连接:右边的表为主表,左边的表为从表。 ·右连接显示的字段:所有主表记录 + 从表中选中的记录。 ·在查询结果中,主表中不符合条件的记录在相应的字段上填NULL. |
FORM 表1 RIGHT [OUTER] join 表2 ON <条件表达式> |
SELECT a.学号,姓名 FORM 成绩表 AS a RIGHT OUTER JOIN 学生表 AS b ON a.学号 = b.学号 |
|
FORM 表1 FULL [OUTER] join 表2 ON <条件表达式> |
SELECT a.学号,姓名 FORM 成绩表 AS a FULL OUTER JOIN 学生表 AS b ON a.学号 = b.学号 |
·返回两个来源表交叉匹配的结果。 ·显示所有字段,记录数变化了,如果没有WHERE 子句,交叉连接将产生所涉及表的笛卡尔积个条记录。 ·假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,2),(b,2)}。 |
FROM 表1 CROSS JOIN 表2 |
select * from roysched cross join sales |
4.4 使用WHERE 子句过滤记录【P117】
·<比较运算符> 用于比较两个表达式之间的值,并返回 true 、false 、unkNown(当一个表达式取NULL 时返回 unkNown) |
1 使用 AND 缩小搜索范围
例子: select * from sales where stor_id>7000 and ord_num = 'P2121' |
2 使用 OR 扩大搜索范围
例子: select * from sales where stor_id>7000 or ord_num = 'P2121' |
测试表达式 [NOT] BETWEEN 起始值 AND 终止值 |
USE pubs SELECT * FROM jobs where job_id between 1 and 5 |
测试表达式 [NOT] IN (子查询 | 表达式列表) |
1) 聚合函数 2) 配置函数 3) 游标函数 4) 日期和时间函数 5) 元数据函数 6) 行集函数 7) 安全函数 8) 字符串函数 9) 系统函数 11) 文本和图像函数
|
·CONVERT :【P108】
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。 |
USE pubs GO SELECT 'The price is ' + CAST(price AS varchar(12)) FROM titles WHERE price > 10.00 GO |
USE CONVERT GO SELECT 'The price is ' + CONVERT (varchar(12),price ) FROM titles WHERE price > 10.00 GO |
·SUBSTRING :【P119】
语法 SUBSTRING ( expression,start,length ) |
参数 expression 是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start 是一个整数,指定子串的开始位置。
Length 是一个整数,指定子串的长度(要返回的字符数或字节数)。 |
返回类型: 如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。 |
例子: USE pubs SELECT au_lname,au_fname,SUBSTRING(au_fname,1) as 首字母 FROM authors ORDER BY au_lname |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。