### 数据库基本操作知识点 #### 创建数据库 在SQL Server中创建数据库时,主要涉及主数据文件和事务日志文件的定义。例如,在给定的代码片段中,通过`CREATE DATABASE`命令创建了两个数据库——`Student`和`YGKQ`。 1. **创建`Student`数据库**: ```sql CREATE DATABASE Student ON (NAME='Student_DATA', FILENAME='C:\DocumentsandSettings\Administrator\桌面\高级数据库.mdf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5%) LOG ON (NAME='Student_LOG', FILENAME='C:\DocumentsandSettings\Administrator\桌面\高级数据库.LDF', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB) go ``` - **主数据文件**:`Student_DATA`,初始大小为10MB,最大可达50MB,增长率为5%。 - **事务日志文件**:`Student_LOG`,初始大小为2MB,最大可达5MB,每次增长1MB。 2. **创建`YGKQ`数据库**: ```sql CREATE DATABASE YGKQ ON (NAME='YGKQ_DATA', FILENAME='C:\DocumentsandSettings\Administrator\桌面\高级数据库\YGKQ.mdf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5%) LOG ON (NAME='YGKQ_LOG', FILENAME='C:\DocumentsandSettings\Administrator\桌面\高级数据库\YGKQ.LDF', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB) go ``` - **主数据文件**:`YGKQ_DATA`,初始大小为10MB,最大可达50MB,增长率为5%。 - **事务日志文件**:`YGKQ_LOG`,初始大小为2MB,最大可达5MB,每次增长1MB。 #### 创建表 - **创建`stu1`表**: ```sql CREATE TABLE stu1 ( 学号 char(12) CONSTRAINT pk_xuehao PRIMARY KEY, 姓名 char(8) CONSTRAINT uk_xymy UNIQUE, 性别 char(2) CONSTRAINT df_xybx DEFAULT '男', 出生年月 datetime CONSTRAINT ck_csrq CHECK (出生年月 > '01/01/1986'), 家庭住址 char(30), 备注 Text ) go ``` - **表结构**: - `学号`:作为主键,长度为12字符。 - `姓名`:唯一约束,长度为8字符。 - `性别`:默认值为“男”,长度为2字符。 - `出生年月`:检查约束,确保日期晚于1986年1月1日。 - `家庭住址`:长度为30字符。 - `备注`:文本类型。 - **修改`stu1`表**: ```sql alter table stu1 drop constraint uk_xymy alter table stu1 drop constraint pk_xuehao alter table stu1 drop constraint df_xybx alter table stu1 drop constraint ck_csrq go ``` - **删除约束**:删除了之前设置的所有约束。 #### 创建外键、规则与绑定规则 - **创建外键**: ```sql alter table JBQK with nocheck add constraint fk_qqlx foreign key(缺勤类型) references QQLX(缺勤类型) go ``` - **添加外键约束**:在`JBQK`表中添加了一个名为`fk_qqlx`的外键约束,引用了`QQLX`表中的`缺勤类型`字段。 - **创建规则**: ```sql create rule qqlx_rule as @缺勤类型 in ('1','2','3','4') exec sp_bindrule qqlx_rule, 'JBQK.缺勤类型' exec sp_unbindrule 'JBQK.缺勤类型' go ``` - **创建规则**:创建了一个规则`qqlx_rule`,指定`缺勤类型`必须是'1','2','3','4'之一。 - **绑定规则**:将该规则绑定到`JBQK`表的`缺勤类型`字段上。 - **解除绑定**:解除规则与字段的绑定关系。 #### 创建索引 - **创建索引**: ```sql create unique index kczccj_index on 成绩 (课程编号) go ``` - **创建唯一索引**:在`成绩`表上创建了一个名为`kczccj_index`的唯一索引,基于`课程编号`字段。 - **查看索引信息**: ```sql exec sp_helpindex 成绩 go ``` - **查看索引**:查看`成绩`表上的索引信息。 - **删除索引**: ```sql drop index 成绩.kczccj_index go ``` - **删除索引**:删除`成绩`表上的`kczccj_index`索引。 - **重命名索引**: ```sql exec sp_rename '成绩.kczccj_index', 'kcvc_cj_index', 'INDEX' go ``` - **重命名索引**:将`成绩`表上的`kczccj_index`索引重命名为`kcvc_cj_index`。 #### 索引统计信息与优化 - **显示索引统计信息**: ```sql set statistics IO ON go select * from 成绩 go ``` - **开启统计信息**:开启SQL Server的IO统计信息。 - **查询表**:查询`成绩`表的信息,此时会显示读取页数等统计信息。 - **显示索引碎片信息**: ```sql DECLARE @id int, @indid int SET @id = OBJECT_ID('成绩') SELECT @indid = indid FROM sysindexes WHERE id = @id AND name = 'kcvc_cj_index' DBCC SHOWCONTIG(@id, @indid) go ``` - **获取索引ID**:获取`成绩`表的ID及`kcvc_cj_index`索引的ID。 - **显示碎片信息**:显示`kcvc_cj_index`索引的碎片情况。 - **优化索引**: ```sql DBCC INDEXDEFRAG(student, 成绩, kcvc_cj_index) Go ``` - **优化索引**:对`成绩`表上的`kcvc_cj_index`索引进行优化。 #### 使用数据库 - **切换数据库**: ```sql use Student ``` - **选择数据库**:选择`Student`数据库进行后续操作。 #### 创建视图 - **创建视图**: ```sql create view Sno_Student As select Sno, Sname, Sage from Stu2 where Ssex = 'M' go ``` - **创建视图`Sno_Student`**:基于`Stu2`表创建视图,仅包含性别为‘M’的数据。 - **查询视图**: ```sql select Sno, Sname from Sno_Student where Sage < 21 go select Sno, avg(Sage) from Sno_Student group by Sno go ``` - **查询视图**:从视图`Sno_Student`中查询年龄小于21岁的学生姓名和学号,以及按学号分组的平均年龄。 - **更新视图**: ```sql update Sno_Student set Sno = '01' where Sname = 'S' go ``` - **更新视图**:将视图中名字为'S'的学生的学号更新为'01'。 - **重命名视图**: ```sql sp_rename Sno_Student, Sno_S go ``` - **重命名视图**:将视图`Sno_Student`重命名为`Sno_S`。 - **删除视图**: ```sql drop view Sno_S cascade ``` - **删除视图**:删除视图`Sno_S`及其所有依赖项。 以上是关于SQL Server高级数据库的基本操作知识,包括数据库创建、表的创建与修改、外键规则的创建与绑定、索引的创建与优化、视图的创建与管理等方面的知识点。这些操作是进行数据库管理和应用开发的基础。
- 「已注销」2013-10-18值得一下,感觉还是蛮实用的,不过网上有很多视频教程更合算~
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助