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 过滤记录 (缩小范围)
======================================================================
·查看数据库的结构 :execute sp_helpdb DBName |
· IF EXISTS (SELECT * FROM sysdatabasesWHERE name=’表名’) //判断数据库是否存在 ·学号 int IDENTITY(2001001,1), // IDENTITY(2001001,1) 自动编号,种子和增量 |
·SPACE(1) :内置函数SPACE()用于生成空格。 |
第 2 章 数据库的设计与管理
2.4 修改数据结构
2.4.3 实用Alter DATABASE语句修改数据库
|
2.5 删除数据库
2.5.2 使用 DROP DATABASE 语句删除数据库
DROP DATABASE 数据库名 [,…] |
DROP DATABASE DBtest1,Dbtest2 |
2.6 备份和还原数据库
1 在查询分析器中备份数据库
步骤:
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 设备名称 ·只对事物日志备份操作 语句:BACKUP LOG 数据库名 TO 设备名称 |
2在查询分析器中还原数据库 【restore 恢复】
·还原整个数据库 RESTORE DATABASE 数据库名 FROM 设备名称 ·只还原事物日志 RESTORE LOG 数据库名FROM 设备名称 |
·sp_attach_db ‘数据库名’,’文件名’[, … 16] 解释: ‘数据库名’: ‘文件名’ :必须是唯一的。 文件可以是主文件(.mdf)、非主文件(.ndf)、事物日志文件(.ldf),最多可以指定 16 个文件名。 |
例子: EXECUTE sp_attach_db ‘Northwind’, ‘d:/mssql/backup/Northwind.mdf’, ‘d:/mssql/backup/Northwind..ldf’ |
2.8 系统数据库介绍
第 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,1), // IDENTITY(2001001,1) 自动编号,种子和增量 姓名 varchar(6), 专业 varchar(6) ) GO |
3.3 使用约束
3.3.1 NULL 约束
2 使用 CREATE TABLE 语句创建NULL 约束
·[CONSTRAINT 约束名] NULL | NOT NULL |
CREATE TABLE 表名 ( 姓名 varchar(6) null, ) GO |
3.3.2 P RIMARY KEY 约束 即 主键约束 【primary 第一的、原来的】
CREATE TABLE 表名 ( 姓名 varchar(6) null, constraint PK_stuNo primary key (stuNo) ) GO |
主键约束 later table stuInfo add constraint PK_stuNo primary key (stuNo) |
3.3.3 UNIQUE 约束 即 唯一约束 [unique 唯一的]
CREATE TABLE 表名 ( 姓名 varchar(6) null, constraint UQ_stuID unique (stuID) ) GO |
later table stuInfo add constraint UQ_stuID unique (stuID) |
3.3.4 FOREIGN KEY 即 外键约束 [foreign 外国的、外交的]
CREATE TABLE 表名 ( 姓名 varchar(6) null, constraint UQ_stuID unique (stuID ) GO |
later table stuMarks add constraint FK_stuNo foreign key (stuNo) references stuInfo(stuNo) |
3.3.5 CHECK 约束 即 检查约束 【check 检查、阻止、制止 】
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 |
3.4 表的修改【P93】
3.4.2 使用 ALTER TABLE 语句修改表【P96】
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 |
3.5 表的删除 【P98】
DROP TABLE 表名[,…n] |
*第 4 章 使用选择查询检索数据【P102】
4.1 SELECT 语句概述【P102】
SELECT 字段列表 [INFO 新表] FROM 数据源 [WHERE 搜索条件] [GROUP BY 分组表达式] [HAVING 搜索表达式] [ORDER BY 排序表达式 [ASC |DESC ] ]
|
4.2 使用SELECT 子句选取字段和记录
1 选取全部字段
2选取部分字段
3选取特殊字段
4 设置字段别名
5使用计算字段
* 4.2.2 使用选择谓词限制记录行数【P109】
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,1),(a,2),(b,0),(b,1),(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' |
4.4.4 使用BETWEEN 和 NOT BETWEEN 过滤记录 (缩小范围)
测试表达式 [NOT] BETWEEN 起始值 AND 终止值 |
USE pubs SELECT * FROM jobs where job_id between 1 and 5 |
·IN 是一个逻辑运算符,用于测试给定的值是否在一个子查询或项目列表中 |
测试表达式 [NOT] IN (子查询 | 表达式列表) |
1) 聚合函数 2) 配置函数 3) 游标函数 4) 日期和时间函数 5) 元数据函数 6) 行集函数 7) 安全函数 8) 字符串函数 9) 系统函数 10) 系统统计函数 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, 1) as 首字母 FROM authors ORDER BY au_lname |