MS SQLServer 基础

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">

基本操作... 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

 

 

 

 

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

 

基本操作

·查看数据库的结构 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,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)

 

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,1),(a,2),(b,0),(b,1),(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, 1) as 首字母

FROM authors

ORDER BY au_lname

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值