加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MS SQLServer 基础

发布时间:2020-12-12 15:48:48 所属栏目:MsSql教程 来源:网络整理
导读:基本操作 ... 2 第 2 章 数据库的设计与管理 ... 2 2.4 修改数据结构 ... 2 2.5 删除数据库 ... 2 2.5.2 ? 使用 DROP DATABASE 语句删除数据库 ... 2 2.6 备份和还原数据库 ... 2 2.6.2 使用查询分析器进行备份和还原数据库 ... 2 2.6.3 直接复制文件的备份

·查看数据库的结构 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 备份和还原数据库

?

2.6.2 使用查询分析器进行备份和还原数据库

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 设备名称

?

2.6.3 直接复制文件的备份和还原

·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 系统数据库介绍

?

2.8.1 主控数据库 master

?

2.8.2 模板数据库 model

?

2.8.3 临时数据库 tempdb

?

3 ? 表的创建与管理

3.1 SQL Server 2000 中的数据类型

?

3.2 表的创建

?

3.2.2 CREATE TABLE 语句创建表

?

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 使用约束

?

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)

?

3.3.6 ? DEFAULT 约束 默认约束

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

3.5.2 使用 DROP TABLE 语句删除表

DROP TABLE 表名[,…n]

?

* 4 使用选择查询检索数据【P102

4.1 SELECT 语句概述【P102

4.1.1 SELECT 基本语句的语法格式

SELECT 字段列表

[INFO 新表]

FROM 数据源

[WHERE 搜索条件]

[GROUP BY 分组表达式]

[HAVING 搜索表达式]

[ORDER BY 排序表达式 [ASC |DESC ] ]

?

?

4.2 使用SELECT 子句选取字段和记录

?

4.2.1 使用字段列表指定输出字段

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子句指定数据源

?

4.3.1 使用内部连接组合两个表中的记录

·内连接:

·内连接显示的字段:表1选中的记录 +? 2中选中的记录。

FORM 1 [INNER] join 2 ON <条件表达式>

SELECT? sc.学号,姓名

FORM

成绩表 AS sc? INNER JOIN 学生表 AS st

ON? sc.学号 = st.学号

?

4.3.2 使用左边外部连接组合两个表中的记录

·左连接:左边的表为主表,右边的表为从表。

·左连接显示的字段:所有主表记录 + 从表中选中的记录。

·在查询结果中,主表中不符合条件的记录在相应的字段上填NULL.

FORM 1 LEFT [OUTER] join 2 ON <条件表达式>

SELECT? a.学号,姓名

FORM

成绩表 AS a? LEFT OUTER JOIN 学生表 AS b

ON? a.学号 = b.学号

?

4.3.3 使用右边外部连接组合两个表中的记录

·右连接:右边的表为主表,左边的表为从表。

·右连接显示的字段:所有主表记录 + 从表中选中的记录。

·在查询结果中,主表中不符合条件的记录在相应的字段上填NULL.

FORM 1 RIGHT [OUTER] join 2 ON <条件表达式>

SELECT? a.学号,姓名

FORM

成绩表 AS a? RIGHT OUTER JOIN 学生表 AS b

ON? a.学号 = b.学号

?

4.3.4 使用完全外部连接组合两个表中的记录

?

FORM 1 FULL [OUTER] join 2 ON <条件表达式>

SELECT? a.学号,姓名

FORM

成绩表 AS a? FULL OUTER JOIN 学生表 AS b

ON? a.学号 = b.学号

?

4.3.5 使用交叉连接组合两个表中的记录

·返回两个来源表交叉匹配的结果。

·显示所有字段,记录数变化了,如果没有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

?

4.4.2 使用单一查询条件过滤记录

·<比较运算符> 用于比较两个表达式之间的值,并返回 true false unknown(当一个表达式取NULL 时返回 unknown

?

4.4.3 使用AND OR 组合查询条件

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

?

4.4.5 使用IN NOT IN 过滤记录

·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

是字符串、二进制字符串、textimage或包含列的表达式。不要使用包含聚合函数的表达式。

?

start

是一个整数,指定子串的开始位置。

?

Length

是一个整数,指定子串的长度(要返回的字符数或字节数)。

返回类型:

如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。

例子:

USE pubs

SELECT au_lname,au_fname,SUBSTRING(au_fname,1) as 首字母

FROM authors

ORDER BY au_lname

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

基本操作... 2

2 数据库的设计与管理... 2

2.4 修改数据结构... 2

2.5 删除数据库... 2

2.5.2? 使用 DROP DATABASE 语句删除数据库... 2

2.6 备份和还原数据库... 2

2.6.2 使用查询分析器进行备份和还原数据库... 2

2.6.3 直接复制文件的备份和还原... 3

2.8 系统数据库介绍... 3

2.8.1 主控数据库 master 3

2.8.2 模板数据库 model 3

2.8.3 临时数据库 tempdb. 3

3 ? 表的创建与管理... 3

3.1 SQL Server 2000 中的数据类型... 3

3.2 表的创建... 3

3.2.2 CREATE TABLE 语句创建表... 4

3.3 使用约束... 4

2 使用 CREATE TABLE 语句创建NULL 约束... 4

3.3.2? PRIMARY KEY 约束 主键约束 primary 第一的、原来的】... 4

3.3.3? UNIQUE 约束 唯一约束? [unique? 唯一的] 4

3.3.4? FOREIGN KEY 外键约束 [foreign 外国的、外交的] 5

3.3.5? CHECK 约束 检查约束 check? 检查、阻止、制止 ... 5

3.3.6? DEFAULT 约束 默认约束... 5

3.4 表的修改【P93... 5

3.4.2 使用 ALTER TABLE 语句修改表【P96... 5

3.5 表的删除 P98... 6

3.5.2 使用 DROP TABLE 语句删除表... 7

DROP TABLE 表名[,…n] 7

* 4 使用选择查询检索数据【P102... 7

4.1 SELECT 语句概述【P102... 7

4.1.1 SELECT 基本语句的语法格式... 7

SELECT 字段列表... 7

[INFO 新表] 7

FROM 数据源... 7

[WHERE 搜索条件] 7

[GROUP BY 分组表达式] 7

[HAVING 搜索表达式] 7

[ORDER BY 排序表达式 [ASC |DESC ] ] 7

4.2 使用SELECT 子句选取字段和记录... 7

4.2.1 使用字段列表指定输出字段... 7

* 4.2.2 使用选择谓词限制记录行数【P109... 7

4.3 使用FROM子句指定数据源... 7

4.3.1 使用内部连接组合两个表中的记录... 7

4.3.2使用左边外部连接组合两个表中的记录... 8

4.3.3使用右边外部连接组合两个表中的记录... 8

4.3.4使用完全外部连接组合两个表中的记录... 8

4.3.5使用交叉连接组合两个表中的记录... 8

4.4 使用WHERE 子句过滤记录【P117... 8

4.4.2 使用单一查询条件过滤记录... 8

·<比较运算符> 用于比较两个表达式之间的值,并返回 true false unknown(当一个表达式取NULL 时返回 unknown... 8

4.4.3 使用AND OR 组合查询条件... 9

4.4.4 使用BETWEEN NOT BETWEEN 过滤记录 (缩小范围) 9

4.4.5 使用IN NOT IN 过滤记录... 9

函数... 9

函数类型:... 9

常用函数:... 10

·CONVERT :【P108... 10

·SUBSTRING :【P119... 10

?

?

?

?

======================================================================

?

基本操作

    推荐文章
      热点阅读