创建数据库表与索引实验
实验(建表及索引
实验三创建数据库和表
一、目的和要求
1.了解表的结构特点。
2.了解SQL Server的基本数据类型。
3.学会在企业管理器中创建表。
4.学会使用T-SQL语句创建数据表。
5. 学会使用T-SQL语句创建索引.
二、实验准备
1.确定数据库包含哪些表以及包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。
2.了解常用的创建表的方法。
3. 了解常用索引的类型及的创建索引的方法。
三、实验步骤
1.数据库分析
(1)在pubs数据库中,添加以下数据表。
(2)数据库YGKQ包含员工的信息和缺勤类型信息,其YGKQ包含下列2个表:
JBQK:员工基本情况表;QQLX:缺勤信息表。
各表的结构见表2.1和表2.2所示:
表2.1 JBQK表结构员工
表2.2 QQLX
各表的数据内容见表2.3和2.4所示:
表2.3 JBQK
表2.4 QQLX
2.在企业管理器中数据表
(1)在企业管理器中分别创建表JBQK和QQLX。
(2)在企业管理器删除创建的JBQK和QQLX表。
(3)在企业管理器中在JBQK表的员工字段建一个唯一性索引. (4)在企业管理器中JBQK表中以员工姓名建一聚簇索引. 3.在查询分析器中创建数据库和数据表
(1)使用T-SQL语句创建JBQK和QQLX表。
(3)使用T-SQL语句在JBQK表的员工字段建一个唯一性索引. (4)使用T-SQL语句在JBQK表中以员工姓名建一聚簇索引.。
数据库索引实验总结
数据库索引实验总结一、实验目的本次实验旨在通过实际操作,深入理解数据库索引的工作原理及优化方法。
通过创建、修改和删除索引,观察查询性能的变化,从而更好地在实际应用中选择和设计合适的索引。
二、实验内容1. 创建索引:在数据库表上创建不同类型的索引,如单列索引、复合索引等。
2. 索引查询性能测试:对带有索引的表进行查询,观察查询性能的提升。
3. 索引维护:更新、删除索引,观察其对查询性能的影响。
4. 索引优化:根据查询需求,优化索引设计,提高查询效率。
三、实验过程1. 创建索引:选择合适的表和列,创建单列索引和复合索引。
使用相应的SQL语句,例如`CREATE INDEX index_name ON table_name (column_name);`。
2. 查询性能测试:使用SELECT语句对带有索引的表进行查询,并记录查询时间。
与未带索引的表查询时间进行对比,观察查询性能的提升。
3. 索引维护:更新、删除索引,观察查询性能的变化。
例如,使用`ALTER TABLE table_name DROP INDEX index_name;`删除索引。
4. 索引优化:根据查询需求和数据量,调整索引设计。
例如,添加或删除列、调整索引类型等。
观察优化后的查询性能。
四、实验结果通过实验,我们发现创建索引可以有效提高查询性能。
单列索引适用于在某列上频繁进行查询的情况,而复合索引适用于多列同时进行查询的情况。
同时,我们也发现不合理的索引设计可能会降低性能,因此需要根据实际需求进行优化。
五、实验总结通过本次实验,我们深入了解了数据库索引的工作原理及优化方法。
在实际应用中,应根据查询需求和数据量合理选择和设计索引,以提高数据库的查询效率。
同时,需要注意避免过度索引和不合理的设计,以免降低数据库性能。
数据库实验2 创建数据库表与索引
使用企业管理器和Transact-SQL语句创建“课程信息表”、“教学任务表”、“教师档案表”、“学生档案表”、“学生选课表”、“学生成绩表”6张表,各表的逻辑结构如P36表3.1、表3.2、表3.3、表3.4、表3.5、表3.6。且各表之间的逻辑依赖关系如图3.1。并对关系表进行管理。具体内容如下。
ALTER TABLE student ADD matriculationday smalldatetime NULL
Constraint adddateflt default getdate()
3)、利用Transact_SQL语句删除表
可以用Transact_SQL语句DROP删除表的定义及表中所有的数据、索引、触发器、约束和权限规范。如果要删除表,语法为:
DROP TABLE table_name
例4删除当前连接的数据库中的一个名为tal的表格和删除pubs数据库中的example的表格。
DROP TABLE tal
DROP TABLE pubs.dbo.example
注意:删除表格的权利只属于表格的拥有者,并且不能转移,不能使用DROP TABLE语句删除系统表
sdept char(20) NULL
)
首先创建数据库test
CREATE DATABASE test
ON PRIMARY
(NAME=student1_dat,
FILENAME='e:\jsj1\test\student1_dat.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=20%)
3.1在“教学管理”数据库中使用Transact-SQL命令创建表
使用Transact-SQL命令创建“学生档案表”、“课程信息表”、“教学任务表”。
创建索引实验报告
一、实验目的1. 理解索引的概念和作用。
2. 掌握在数据库中创建索引的方法。
3. 了解不同类型索引的特点和适用场景。
4. 分析索引对数据库性能的影响。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 数据库:MySQL自带的test数据库三、实验内容1. 创建索引2. 查看索引信息3. 删除索引4. 比较索引对查询性能的影响四、实验步骤1. 创建索引(1)登录MySQL数据库,进入test数据库。
```mysql -u root -p```(2)选择test数据库。
```USE test;```(3)创建一个表,并插入一些数据。
```CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),age INT,gender CHAR(1));INSERT INTO students (name, age, gender) VALUES ('张三', 20, '男'); INSERT INTO students (name, age, gender) VALUES ('李四', 21, '男'); INSERT INTO students (name, age, gender) VALUES ('王五', 22, '男'); INSERT INTO students (name, age, gender) VALUES ('赵六', 23, '男'); ```(4)在students表的name字段上创建索引。
```CREATE INDEX idx_name ON students (name);```2. 查看索引信息(1)查看test数据库中的索引信息。
实验9创建和使用索引
实验9:创建和使用索引一、目的与要求1、熟悉SQL Server 2000索引管理器。
2、掌握索引的创建和使用。
3、掌握对索引的优化操作。
二、实验内容1、启动SQL Server 2000 企业管理器环境。
2、使用索引管理器为XS_KC表创建索引IX_XS_KC。
3、使用强制索引查询数据。
4、使用索引优化向导优化索引。
三、实验步骤1、使用索引管理器为XS_KC表创建索引IX_XS_KC。
①进入“企业管理器”环境,选择数据库(XSCJ)中的表“XS_KC”;②在“所有任务”选择“管理索引”③选择“新建”,进入下图,并进行如下的选择:④保存。
2、强制使用刚才创建的索引查询数据1)进入“查询分析器”环境。
2)强制使用IX_XS_KC索引查询所有课程的及格成绩记录。
3)在查询窗口中输入下列代码:Select 学号,课程号,成绩From xs_kcWith(index(IX_XS_KC))Where 成绩>=603、使用索引优化向导优化索引1)进入“事件探测器”环境。
2)选择“文件”中的“跟踪”3)设置跟踪名为“INDEX_TRSCE”,并选择“另存为文件”项,把跟踪保存为负荷文件INDEX_TRSCE.trc,然后单击“运行”开始跟踪。
4)切换到“查询分析器”环境,输入如下语句:Select a.学号,a.姓名,c.课程名,d.成绩,a.联系电话From xsqk a inner join xsqk b on a.联系电话=b.联系电话And a.学号!=b.学号,KC c,xs_kc dWhere a.学号=d.学号and d.课程号=c.课程号--该语句用于查询在XSQK表中显示住在同一寝室(即联系电话相同)的学生的所有成绩记录。
5)回到“事件探查器”窗口,单击“暂停”按钮,如下图:其中主要列的含义如下:①CPU列:表示查询所占用的CPU时间,单位为毫秒。
②Duration列:表示查询执行的时间,单位为毫秒。
实验2创建数据库、表、索引
允许空值 不选 选中 选中 选中
备注 主键
外键 只能取1,2,3,4
❖创建方式同student
❖ 单击“添加”按钮,然后单击“表和列规范”及其后面的 按钮,输入如下图详细信息。
设置外键
❖ 单击 “表设计器”菜单,选择“关系”,打开下图。
设置自定义的约束
❖单击 “表设计器”菜单,选择“check约束”,打 开下图,单击添加,在打开的窗口里输入表达式。
❖ 要求:
使用SQL Server Management Studio创建数据库 使用T-SQL删除数据库
创建架构
❖ 一个用户可以有多个架构,但是只能有一个默认 架构。如果没有指定用户的默认架构,则用户的 默认架构为dbo。
❖ 试验要求: 创建架构students ,架构的所有者为默认的dbo
(按课程号升序建唯一索引)
属性 索引名称 索引类型 唯一性
值 coucno 非聚集 选中
设置索引
sc表scno索引的设置
(按学号升序和课程号降序建唯一索引)
ห้องสมุดไป่ตู้
属性 索引名称 索引类型 唯一性
值 scno 非聚集 选中
❖ 同样在新的空白查询窗口中,键入以下 TransactSQL 代码,创建sc表。
USE educ CREATE TABLE students.sc (
sno char(9), cno char(4), grade smallint, PRIMARY KEY(sno,cno), FOREIGN KEY(cno) REFERENCES students.course(cno), FOREIGN KEY(sno) REFERENCES students.student(sno) )
实验二 表及索引的创建(新)
二、实验内容及要求 实验数据库名为jxgl,实验所用的表结构如下: ,实验所用的表结构如下: 实验数据库名为 (1) dept(系表 系表)( 系表 Deptno (系编号 CHAR(8) PRIMARY KEY 系编号 Deptname(系名称 varCHAR(20) unique 系名称) 系名称 Dpho (电话号码 CHAR(12) 只能取数字 电话号码) 电话号码 Deptadd 系办公地点 CHAR(40)) )
2、在企业管理器中完成以下内容: 、在企业管理器中完成以下内容: (1)在课程表的课程名上建立一个普通索引。 )在课程表的课程名上建立一个普通索引。 (2)在两个表中录入数据,分析数据完整性的作用。 )在两个表中录入数据,分析数据完整性的作用。 (需设计满足和不满足完整性约束的两个以上记录) 需设计满足和不满足完整性约束的两个以上记录) 三、本次实验的重点及难点: 本次实验的重点及难点: 重点: 语句定义表结构( 重点:用SQL语句定义表结构(创建、修改和删除) 语句定义表结构 创建、修改和删除) 难点:完整性约束的定义、 难点:完整性约束的定义、增加及删除
实验二: 实验二:建立数据库和建表 一、实验目的
1、学会使用SQL语句创建数据库和表 、学会使用 语句创建数据库和表 2、学会使用SQL 语句增加、修改和删除字段, 、学会使用 语句增加、修改和删除字段, 增加和删除完整性约束, 增加和删除完整性约束,加深对完整性概念 的理解,达到灵活应用的目的。 的理解,达到灵活应用的目的。 3、学会使用SQL 语句创建、删除索引 、学会使用 语句创建、
1、在查询分析器下完成以下内容: 、在查询分析器下完成以下内容: (1)创建数据库 )创建数据库jxgl (2)创建上述五个表,同时需定义出各个表所给定的 )创建上述五个表, 完整性约束规则。 完整性约束规则。 命令修改表结构: (3)用alter命令修改表结构: ) 命令修改表结构 A、在学生表中增加一个“联系电话”字段。 、在学生表中增加一个“联系电话”字段。 B、增加约束:“学分” 只能取 ,2,3,4}。 、增加约束: 学分” 只能取{1, , , 。 C、增加约束:学分的缺省值为 。 、增加约束:学分的缺省值为3 D、增加约束:学生表和成绩表的“学号”前两 、增加约束:学生表和成绩表的“学号” 位 为 “20”,第三位与第四位必须为数字。 ,第三位与第四位必须为数字。
实验二 创建数据库和表 实验报告
实验2 创建数据库和表实验报告一.实验名称:创建数据库和表二.目的和要求:(1)了解SQL Server数据库的逻辑结构和物理结构。
(2)了解表的结构特点。
(3)了解SQL Server 的基本数据类型。
(4)了解空值概念。
(5)学会使用T-SQL语句创建数据库和表.。
三.实验准备首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
其次创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数据库的文件。
然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。
此外还要了解使用T-SQL语句创建数据库、表的方法。
四.实验时间:2011年4月7日五.实验设备和实验环境:(1) PC机。
(2) SQL Server 2000。
六.实验内容:1、实验题目创建用于学校管理的学生-课程数据库,数据库名为“DB_自己的学号”,包含学生的信息、课程的信息以及学生选修的信息,即数据库中包含下列3个表:(l)Student:学生信息表。
(2)Course:课程信息表。
(3)Sc:选修情况表。
2.实验步骤(1)使用T-SQL语句创建数据库按照上述要求创建学生-课程数据库。
启动查询分析器→在“查询”窗口中输人创建数据库的T-SQL语句。
单击快捷工具栏的执行图标执行上述语句,并查看执行结果(也可在企业管理器中查看)。
打开查询分析器,在工作区域输入 create database DB_0921121010创建一个以自己学号为名的库,结果如图(1)所示:图(1)(2)使用T-SQL语句在所创建的数据库中创建Student、Course和Sc表。
单击快捷工具栏的执行图标执行上述语句,并查看执行结果(也可在企业管理器中查看)。
在创建好的名为DB_0921121010数据库中创建student、course和sc表操作如下:在工作区域输入create table Student(Sno char(10) not null unique,Sname char(8) not null,Ssex char(2) not null,Sage int,Sdept char(8) not null);Select *from student创建student表,结果如图(2)所示:图(2)在工作区域输入create table Course(Cno char(2) not null,Cname char(20) not null unique,Cpno char(2) null,Ccredit int);Select *from course创建course表,结果如图(3)所示:图(3)在工作区域输入create table SC(Sno char(10) not null unique,Cno char(2) not null,Grade int);Select *from sc创建sc表,结果如图(4)所示:图(4)七.实验总结:1.通过此次的实验操作学会了使用SQL语句创建简单的数据库和表,并且熟悉了查询分析器的工作界面。
数据库实验2 创建数据库表与索引
实验2:创建数据库表与索引----表的创建与管理1.实验目的与要求:1.1 在已建立的数据库中创建表:掌握表的建立方法,运用企业管理器和Transact-SQL语句两种方法建立“课程信息表”、“教学任务表”、“教师档案表”、“学生档案表”、“学生选课表”、“学生成绩表”。
1.2了解表与表之间的逻辑依赖关系:学会在企业管理器中,创建表之间的关联关系。
通过外键的拖曳建立表的基本依赖关系,从而直白地表达整个数据库的表间联系,但是,注意:建立过程中,主键和外键对应的源数据表,并实践数据库管理系统提供的数据完整性功能,加深对数据完成的理解,进行数据完整性描述。
1.3 修改表结构掌握表结构的修改方法,修改数据类型,为表增加新字段,增加约束条件。
1.4 建立索引掌握索引的建立方法,学会使用Transact-SQL命令创建索引和使用SQL 企业管理器创建索引。
2.实验环境与实验器材:计算机,网络环境,投影设备。
实验相关软件:Window xp、SQL Server 2000。
2*.实验预备知识2.1.1 关系模型的完整性约束2.1.2 索引2.1.3 表的创建与修改3.实验内容与步骤使用企业管理器和Transact-SQL语句创建“课程信息表”、“教学任务表”、“教师档案表”、“学生档案表”、“学生选课表”、“学生成绩表”6张表,各表的逻辑结构如P36表3.1、表3.2、表3.3、表3.4、表3.5、表3.6。
且各表之间的逻辑依赖关系如图3.1。
并对关系表进行管理。
具体内容如下。
3.1 在“教学管理”数据库中使用Transact-SQL命令创建表使用Transact-SQL命令创建“学生档案表”、“课程信息表”、“教学任务表”。
1)学生档案表编程代码:create table 学生档案表(学号char(8) primary keycheck(学号like('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),姓名varchar(8) not null,性别char(8),出生日期datetime check (出生日期>='1970'),籍贯char(8),专业char(8),班级char(8))实验结果:2)课程信息表:编程代码:create table 课程信息表(课程ID char(6) primary keycheck (课程ID like('[JZXR][BX][0-9][0-9][0-9][0-9]')),课程名称varchar(40),课程类别char(8)check(课程类别IN('基础必修','专业必修','限选','任选')), 学分real check (0.5<=学分and 学分<=5.0),学时int check(学时%8=0))实验结果:2实验情况调试分析:在编写信息课程表代码的过程中,我把“R”错写成“B”,如截图所示,然后在企业管理器中修改回来。
数据库索引实验
实验7:数据库索引试验一、实验目的1 熟悉索引的创建、修改、删除操作。
二、实验内容1在SQL Server Management Studio操作索引,包括创建、修改、删除操作。
三、实验步骤索引1在“对象资源管理器”中展开需要建立索引的表,选中“索引”服务选项并展开。
选中“索引”对象,单击鼠标右键,在快捷菜单中选择“新建索引”选项。
如图1所示:图1进入“新建索引”对话框,设置索引。
选择设置索引的列,索引类型等。
如图2所示:图22 设置完毕,再查询输出,观察输出结果。
3用两种方法完成下列任务:①根据loan表的branch_name列创建一个index_branchname的索引。
use bankingcreate unique nonclustered index index_branchname on loan (branch_name)②根据branch表的assets列创建一个名为index_assets的索引。
其中assets按降序。
查看branch表的assets 列显示的结果。
use bankingcreate unique nonclustered index index_assets on branch(assets desc)③ 创建索引视图。
a 创建一个包括贷款用户名、街道信息及贷款号的视图 create view [dbo].[view_account]with schemabindingasSELECT account_number , balancefrom dbo .accountb 根据用户名创建索引视图create unique clustered index index_branch_customer on view_account(account_number)④删除index_assets。
drop index account.view_account。
实验二表及索引的创建
2、可以用like 语句或in 子句限定字符的取值范围。
例如:sno like [A,0-9 ]表示sno的取值可以是a 或0到9的数字。 3、删除约束时,可以用系统存储过程sp_help查看表 中完整性约束名
4、创建索引时需指明索引所属的表。
三、实验步骤
(一)在企业管理器下操作
(1)创建表:每一个表的创建步骤如下。
(需设计满足和不满足完整性约束的两个以上记录)
2、在查询分析器下完成以下内容:
(1)用create命令创建student、course和sc表。
(2)用alter命令修改表结构:
A、在学生表中增加一个“联系电话”字段。
B、增加约束:“学分” 只能取{1,2,3,4}。
C、增加约束:学分的缺省值为3 。 D、增加约束:学生表和课程表中“学号”的前两 位为 “20”,第三位与第四位必须为数字。 E、删除学生表中“学号” 的check约束。
(二)修改表、删除表和创建 索引的SQL命令。
②在查询分析器下输入所设计的每条SQL命令后, 用鼠单击任务栏上的绿色右箭头运行命令,观察运 行结果。
思考与练习
1、观察下面的数据录入时会出现什么现象?
A、“系编号”插入重复值,出现什么现象,为什么?
B 、“系名称”插入重复值,出现什么现象,为什么?
F、删除学生表中的“年龄”字段。
G、增加外码: Sno是学生表的外码,cno是课程 表的外码。 (3) 在课程表的课程名称上建立唯一性索引。 (4)用drop命令删除成绩表。
三、本次实验的重点及难点
重点:用SQL语句定义表结构(创建、修改和删除) 难点:完整性约束的定义、增加及删除
数据库实验五实验报告
数据库实验五实验报告一、实验目的本实验旨在通过学习数据库的索引和优化,掌握数据库索引的使用和优化方法,进一步提升数据库的查询性能。
二、实验要求1.理解数据库索引的概念及作用。
2.熟悉索引的创建、删除和修改操作。
3.了解索引的类型及适用场景,并能选取合适的索引类型。
4.能通过观察执行计划和使用适当的策略对查询进行优化。
三、实验步骤1.索引的创建和删除首先,在已创建的数据库中选择适合创建索引的表。
通过如下语句创建一个测试表:CREATE TABLE test_table(id INT PRIMARY KEY,name VARCHAR(50),age INT);然后,可以在表的字段上创建索引,通过如下语句创建一个索引:CREATE INDEX idx_name ON test_table(name);索引创建完成后,可以通过如下语句删除索引:DROP INDEX idx_name ON test_table;2.索引的修改可以使用ALTER TABLE语句对已创建的索引进行修改。
例如,修改索引的名称:ALTER INDEX idx_name RENAME TO new_idx_name;或者修改索引的定义:ALTER INDEX idx_name RENAME COLUMN new_column_name;3.选择合适的索引类型在创建索引时,需要选择合适的索引类型。
常见的索引类型包括B树索引、哈希索引和全文索引。
- B树索引:适用于等值查询、范围查询和排序场景。
- 哈希索引:适用于等值查询,不支持范围查询和排序。
- 全文索引:适用于全文搜索场景。
4.查询优化在进行数据库查询时,可以通过观察执行计划来判断查询是否有优化空间。
执行计划是数据库在执行查询时生成的查询执行步骤和顺序图,可以根据执行计划优化查询。
另外,还可以通过以下策略对查询进行优化:- 使用合适的索引类型- 避免使用LIKE操作符- 避免使用SELECT *查询所有字段- 避免多表连接查询- 使用JOIN代替子查询- 避免使用不必要的DISTINCT操作符- 分页查询时,使用LIMIT关键字限制结果数量四、实验结果与分析通过实验,我们成功创建了一个测试表,并在该表的字段上创建了索引。
数据库及数据库表的建立实验报告
实验1 数据库及数据库表的建立实验一.实验目的使学生熟悉SQL Server的企业管理器的用法,初步了解SQL Server查询分析器的使用方法,熟悉SQL SERVER的常用数据类型,加深对SQL和SQL语言的查询语句的理解.熟练掌握简单表的创建与修改.二.实验时数3学时三.实验内容(一)基本表的建立:1.建立一个"学生"表Student,它由学号xh,姓名xm,性别xb,年龄nl,所在系xi五个属性组成,其中学号属性不能为空,并且其值是唯一的.2.建立一个"学生"表Student,它由学号xh,姓名xm,性别xb,年龄nl,所在系xi五个属性组成,其中学号属性不能为空,并创建检查约束(nl>0).3.建立一个"学生"表Student,它由学号xh,姓名xm,性别xb,年龄nl,所在系xi五个属性组成,要求学号为主键,xb有默认的值为'男'4.建立"课程kc"包括课程号kch,课程名称kcmc,先修课程xxkc,学分xf,要求建立主键5.建立"成绩登记表cjdj"包括学号xh,程号kch,成绩,要求建立主键及与student及kc表联接的外键(二)基本表的修改:1.在cjdj表中增加一列"任课教师rkjs"2.删除cj表中rkjs一列3.将student表的xm一列允许空值的属性更改成不允许为空,将列xm的长度由char(8)改为char(10)4.增加cjdj表的列cj增加一个约束要求cj>0 and cj<=1005.建立一个临时表,再将其删除6.索引的建立与删除(理解以下语句的含义并上机实践):create unique index stu_xh on student(xh)create index xh_kch on cj(xh asc,kch desc)drop index student.xh_kch四.实验方法在SQL查询分析器"完成以上的任务.并检查所做的操作表现.五.实验步骤:(一)基本表的建立1.建立一个"学生"表Student,它由学号xh,姓名xm,性别xb,年龄nl,所在系xi五个属性组成,其中学号属性不能为空,并且其值是唯一的.程序:CREATE TABLE student1(xh INT PRIMARY KEY,xm CHAR(20),xb CHAR (2),nl INT,xi CHAR(20) );SELECT * FROM student12.建立一个"学生"表Student,它由学号xh,姓名xm,性别xb,年龄nl,所在系xi五个属性组成,其中学号属性不能为空,并创建检查约束(nl>0).程序:CREATE TABLE student2(xh INT PRIMARY KEY,xm CHAR(20),xb CHAR (2),nl INT,xi CHAR(20),CHECK(nl>0));SELECT *FROM student23.建立一个"学生"表Student,它由学号xh,姓名xm,性别xb,年龄nl,所在系xi五个属性组成,要求学号为主键,xb有默认的值为'男'程序:CREATE TABLE student3 (xh INT PRIMARY KEY, xm CHAR(20),xb CHAR (2) DEFAULT'男', nl INT,xi CHAR(20));SELECT *FROM student34.建立"课程kc"包括课程号kch,课程名称kcmc,先修课程xxkc,学分xf,要求建立主键CREATE TABLE kc(kch INT PRIMARY KEY,kcmc CHAR(20),xxkc CHAR (2),xf INT );select *from kc5.建立"成绩登记表cjdj"包括学号xh,程号kch,成绩,要求建立主键及与student及kc表联接的外键程序:CREATE TABLE ciji(xh INT ,kch INT,cj CHAR (20),PRIMARY KEY(xh,kch),FOREIGN KEY(xh) REFERENCES student(xh), FOREIGN KEY(kch) REFERENCES kc(kch), );SELECT *FROM student2(二)基本表的修改:1.在cjdj表中增加一列"任课教师rkjs"程序:alter table cjadd rkjs char(20);select *from cj;2.删除cj表中rkjs一列程序:alter table cijidrop column rkjs ;select *from ciji;3.将student表的xm一列允许空值的属性更改成不允许为空。
索引的使用实验报告
一、实验目的1. 理解索引的概念和作用。
2. 掌握创建、删除和管理索引的方法。
3. 通过实际操作,验证索引对数据库查询性能的影响。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 实验数据:模拟学生信息表(包含学生ID、姓名、年龄、性别、班级ID等字段)三、实验内容1. 创建索引2. 查询性能测试3. 删除索引4. 索引重建与优化四、实验步骤1. 创建索引(1)创建学生信息表```sqlCREATE TABLE student (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(20),age INT,gender ENUM('男', '女'),class_id INT);```(2)创建索引```sql-- 创建学生ID索引CREATE INDEX idx_student_id ON student(id);-- 创建学生姓名索引CREATE INDEX idx_student_name ON student(name);-- 创建学生年龄索引CREATE INDEX idx_student_age ON student(age);-- 创建学生性别索引CREATE INDEX idx_student_gender ON student(gender);-- 创建学生班级ID索引CREATE INDEX idx_student_class_id ON student(class_id); ```2. 查询性能测试(1)测试创建索引前的查询性能```sql-- 查询学生信息表中所有学生信息SELECT FROM student;-- 查询年龄大于18岁的学生信息SELECT FROM student WHERE age > 18;-- 查询班级ID为1的学生信息SELECT FROM student WHERE class_id = 1;```(2)测试创建索引后的查询性能```sql-- 查询学生信息表中所有学生信息SELECT FROM student;-- 查询年龄大于18岁的学生信息SELECT FROM student WHERE age > 18;-- 查询班级ID为1的学生信息SELECT FROM student WHERE class_id = 1;```3. 删除索引```sql-- 删除学生ID索引DROP INDEX idx_student_id ON student;-- 删除学生姓名索引DROP INDEX idx_student_name ON student;-- 删除学生年龄索引DROP INDEX idx_student_age ON student;-- 删除学生性别索引DROP INDEX idx_student_gender ON student; -- 删除学生班级ID索引DROP INDEX idx_student_class_id ON student;```4. 索引重建与优化(1)重建索引```sql-- 重建学生ID索引ALTER TABLE student DROP INDEX idx_student_id;ALTER TABLE student ADD INDEX idx_student_id(id);-- 重建学生姓名索引ALTER TABLE student DROP INDEX idx_student_name;ALTER TABLE student ADD INDEX idx_student_name(name);-- 重建学生年龄索引ALTER TABLE student DROP INDEX idx_student_age;ALTER TABLE student ADD INDEX idx_student_age(age);-- 重建学生性别索引ALTER TABLE student DROP INDEX idx_student_gender;ALTER TABLE student ADD INDEX idx_student_gender(gender);-- 重建学生班级ID索引ALTER TABLE student DROP INDEX idx_student_class_id;ALTER TABLE student ADD INDEX idx_student_class_id(class_id); ```(2)优化索引```sql-- 优化学生ID索引OPTIMIZE TABLE student;```五、实验结果与分析1. 实验结果(1)创建索引前后的查询性能对比通过实验可以发现,创建索引后,查询性能得到了显著提升。
数据库实验 索引的创建与使用
实验三:索引的创建与使用一、实验目的:1、理解索引的概念和索引的作用。
2、掌握创建索引的方法。
3、学会使用索引。
4、了解聚簇索引和非聚簇索引。
二、实验要求:(必做)硬件:Intel Pentium 120或以上级别的CPU,大于16MB的内存。
软件:Windows 95/98/2000操作系统,关系数据库管理系统SQL SERVER 2000。
学时:2学时三、实验内容:1、用create index在学生表student的学号sno上建立聚簇索引。
2、在学生表student中,为姓名sname建立非聚簇索引。
3、在课程表的课程号Cno上建立唯一索引。
4、在选课表的学号sno、成绩Grade上建立复合索引,要求学号为升序,学号相同时成绩为降序。
5、用drop删除学生表student的索引。
数据库设计与管理实验报告实验名称评分实验日期年月日指导教师姓名专业班级学号一、实验目的二、实验步骤及结果1、用create index在学生表student的学号sno上建立聚簇索引。
create clustered index stusno on student(sno);2、在学生表student中,为姓名sname建立非聚簇索引。
create index stusname on student(sname);3、在课程表的课程号Cno上建立唯一索引。
create unique index coucno on course(cno);4、在选课表的学号sno、成绩Grade上建立复合索引,要求学号为升序,学号相同时成绩为降序。
create unique index scng on sc(sno asc,grade desc);5、用drop删除学生表student的索引。
drop index student.stusno,student.stusname;三、程序调试及问题分析1、用create index在学生表student的学号sno上建立聚簇索引。
数据库的创建实训报告
一、实训背景随着信息技术的飞速发展,数据库技术已成为当今社会信息化建设的重要支柱。
为了使同学们更好地理解和掌握数据库的基本概念、原理和方法,提高实际操作能力,我们开展了数据库的创建实训。
本次实训旨在使同学们熟悉数据库的创建过程,掌握创建数据库、表、索引等基本操作,为今后从事数据库相关的工作打下坚实基础。
二、实训目的1. 理解数据库的基本概念和原理;2. 掌握创建数据库、表、索引等基本操作;3. 提高数据库设计能力和实际操作能力;4. 培养团队合作精神和问题解决能力。
三、实训内容1. 数据库基本概念与原理(1)数据库:存储、组织、管理数据的集合,以一定的数据模型表示,为多种应用服务。
(2)数据库管理系统(DBMS):一种软件系统,用于建立、使用和维护数据库。
(3)数据模型:描述数据结构、数据操作和数据约束的模型。
2. 数据库创建(1)创建数据库在DBMS中,创建数据库的基本步骤如下:①进入DBMS命令行界面或图形界面;②使用CREATE DATABASE语句创建数据库;③指定数据库名称和数据文件存放路径。
(2)选择数据库使用USE语句选择要操作的数据库。
3. 表的创建(1)表的基本结构表由行和列组成,行代表记录,列代表字段。
(2)创建表使用CREATE TABLE语句创建表,包括指定表名、字段名、数据类型、约束等。
4. 索引的创建(1)索引的概念索引是数据库表中的一种数据结构,用于加速对数据的检索。
(2)创建索引使用CREATE INDEX语句创建索引,包括指定索引名、字段名、索引类型等。
四、实训过程1. 实训准备(1)安装DBMS软件,如MySQL、Oracle等;(2)了解DBMS的基本操作,如创建数据库、表、索引等;(3)准备好实验环境,如实验机、实验数据等。
2. 实训步骤(1)创建数据库使用CREATE DATABASE语句创建一个名为“student”的数据库,数据文件存放路径为“C:\dbms\student”。
数据库原理与应用实验 创建索引
实验八创建索引、视图
一、实验目的
1. 掌握索引、视图的概念
2. 熟练掌握创建、管理、索引、视图的方法
二、实验要求
通过练习,掌握索引、视图的命令。
三、实验内容
1.用户按照CusName(客户姓名)查询客户信息,希望提高查询速度。
2.用户按照ProName(产品名称)查询产品信息,希望提高查询速度。
3.用户按照SaleDate(销售日期)查询销售信息,希望提高查询速度。
4.创建视图V_Sale1,显示销售日期、客户编号、客户姓名、产品编号、产品名称、单价、销售数量和销售金额。
5.创建视图V_Sale2,统计每种产品的销售数量和销售金额。
统计结果包括:产品编号、产品名称、单价、销售数量和销售金额。
6.创建视图V_Sale3,统计销售金额在10万以下的产品信息。
四、实验作业
严格按照各题要求做实验,在实训报告中,需要对知识点进行描述,撰写实验过程及过程中遇到的难点,并给出解决办法或新的心得体会。
数据库索引实验
数据库索引实验6 综合型实验项目索引和数据完整性(一)建立索引1、对YGGL数据库的Employees表中的DepartmentID列建立索引。
create index ind_dep on Employees(DepartmentID);2、在Employees表的Name列和Address列上建立复合索引。
create index ind_Name_Add on Employees(Name,Address);3、对Departments表上的DepartmentName列建立唯一非聚集索引。
create unique index ind_depName onDepartments(DepartmentName);(二)重建索引1、重建表Employees中的所有索引。
alter index all on Employees rebuild;(三)删除索引。
1、使用DROP INDEX语句删除表Employees上的索引Depart_ind。
drop index ind_dep on Employees;2、使用DROP INDEX一次删除Employees表上的多个索引。
drop index Employees.ind_Name_Add,Employees.ind_depName;(四)数据完整性操作1、创建一个表Employees5,只含EmployeesID,Name,Sex和Education列。
将Name,设为主键,作为列Name的约束。
对EmployeesID列进行UNIQUE约束,并作为表的约束。
create table Employees5(EmployeesID char(6)not null,Name char(6)not null primary key,Sex char(2)not null,Education char(60)not null,constraint UK_id unique(EmployeesID))2、删除上题中创建的UNIQUE约束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2:创建数据库表与索引----表的创建与管理1.实验目的:掌握表和索引的建立方法及表结构的修改方法,了解表关系建立的条件和作用,并实践数据库管理系统提供的数据完整性功能,加深对数据完整性的理解。
要求建立表、修改表结构、建立索引、进行数据完整性描述。
2.实验要求:⑴在已经建立的数据库中创建表运用Microsoft SQL Server2000企业管理器和Transact-SQL语句两种方法建立“课程信息表”、“教学任务表”、“教师档案表”、“学生档案表”、“学生选课表”、“学生成绩表”。
⑵了解表与表之间的逻辑依赖关系学会在Microsoft SQL Server2000企业管理器中,创建表之间的关联关系,通过外键的拖曳建立表的基本依赖关系,从而直白的表达整个数据库的表间联系,但是,注意:过程中,主键与外键对应的源数据表。
⑶修改表结构将学生档案表“”字段的数据类型修改为varchar(8)。
为学生成绩表增减一个新的字段——“总成绩”,类型为real,默认是空值。
学生成绩表“平时成绩”字段的取值为小于100的正数。
⑷建立索引运用Transact—SQL语句建立以下索引:◆在学生档案表的“”字段上建立普通升序索引;◆在学生档案表的“学号”字段上建立唯一索引;◆在学生档案表的“学号”字段上建立聚集索引;◆在学生档案表的“学号”(升序)、“”(升序)和“籍贯”(升序)三个字段上建立一个普通索引;◆运用SQL企业管理器在学生档案表中的“籍贯”字段上创建普通升序索引。
3.实验环境与实验器材:计算机,网络环境,投影设备。
实验相关软件:Window xp、SQL Server 2000。
4.实验容与步骤使用企业管理器和Transact-SQL语句创建“课程信息表”、“教学任务表”、“教师档案表”、“学生档案表”、“学生选课表”、“学生成绩表”6表,6表的具体设计容:“课程信息表”包括课程名称、课程类别、学分和学时等;“教师档案表”和“学生档案表”记录了教师和学生的基本情况;“教学任务表”包括课程ID、任课教师ID、学期和年度;“学生选课表”给出了学生与课程之间的关系;“学生成绩表”则给出了学生成绩的计算方法。
4.1 在“教学管理”数据库中使用Transact-SQL命令创建表使用Transact-SQL命令创建“学生档案表”,包含字段“学号”、“”、“性别”、“出生日期”、“籍贯”、“专业”、“班级”。
第1步:从“开始”菜单中打开“查询分析器”,连接进入“查询”窗口。
第2步:在“查询”窗口中,创建指定数据文件和事务日志文件的“教学管理”数据库,要注意这两个文件路径所需的文件夹应先创建好,不然会有错误提示。
⑴在“教学管理”数据库中使用Transact-SQL命令创建表①创建“学生档案表”第1步:在“查询分析器”窗口的上部,选择“教学管理”数据库。
并在查询框中输入建立“学生档案表”的命令:create table 学生档案(学号 char(8)primary keyCheck(学号like('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),varchar(8) not null,性别 char(8),出生日期 datetime check(出生日期>='1970'),籍贯 char(8),专业 char(8),班级 char(8))第2步:执行该命令,出现如下窗口:第3步:刷新“SQL查询分析器”界面左边的“对象浏览器”中的“教学管理”数据库,这时在“教学管理”数据库的“用户表”中可以看到新建的“学生档案表”②创建“教师档案表”第1步:输入建立“教师档案表”的命令,如下:create table 教师档案表(任课教师ID char(8)primary keycheck(任课教师ID like('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')), varchar(8) not null,性别 char(8),check(性别='M'or 性别='F'),职称 varchar(8),单位 varchar(20))第2步:执行,结果如下:第3步:刷新,查看表:③创建“教学任务表”第1步:输入建立“教学任务表”的命令,执行第2步:刷新,查看表④创建“课程信息表”第1步:输入建立“课程信息表”的命令,执行:第2步:刷新,查看表⑤创建“学生选课表”第1步:输入建立“学生选课表”的命令,执行第2步:刷新,查看表⑥创建“学生成绩表”第1步:输入建立“学生成绩表”的命令,执行第2步:刷新,查看表3.2 在“教学管理”数据库中使用企业管理器创建表使用SQL企业管理器创建“教师档案表”,如图示:3.3 修改表的结构3.3.1 修改数据类型1)将“学生档案表”中的“”字段的数据类型改为varchar(8),则命令如下:alter table 学生档案alter column varchar(8)2)将“课程信息表”中的“课程名称”字段的数据类型改为varchar(50),则命令如下:alter table 课程信息alter column 课程名称 varchar(50)第1步:打开“SQL查询分析器”并连接,输入对表结构修改的命令,如图:第2步:执行,查看结果:3.3.2增加一个新字段1)为“学生成绩表”增加一个新字段“总成绩”,类型为real,默认是空值,命令如下:alter table 学生成绩add 总成绩 real default null2)为“教学任务表”增加一个新字段“教师”,类型为varchar(8),默认是空值命令如下:alter table 教学任务add 教师 varchar(8)default null第1步:打开“SQL查询分析器”并连接,输入对表结构修改的命令,如图:第2步:执行,查看结果:3.3.3增加约束条件1)为“学生成绩表”增加一个约束,“平时成绩”字段的取值为大于等于0小于等于100的正数命令如下:alter table 学生成绩add constraint shuliang1 check(平时成绩>=0 and 平时成绩<=100) 2)为“教学任务表”中的“年度”添加约束条件,使得年度大于2000年,命令如下:alter table 教学任务add constraint shuliang2 check(年度>2000)第1步:打开“SQL查询分析器”并连接,输入对表结构修改的命令,如图:第2步:执行,查看结果:3.4 使用Transact-SQL命令创建索引3.4.1 在“学生档案表”的“”字段上建立普通升序索引;3.4.2 在“学生档案表”的“学号”字段上建立唯一索引;3.4.3 在“学生档案表”的“学号”(升序)、“”(升序)、和“籍贯”(降序)三个字段上建立普通索引;3.4.4 在“学生成绩表”的“学号”字段上建立聚集索引;3.4.5 在“教学任务表”的“任课教师ID”字段上创建名为“任课教师ID索引”的唯一索引;在“教师档案表”中的“教师ID”(降序)、“”(升序)、“职称”(升序)三个字段上建立一个普通索引。
第1步:打开“SQL查询分析器”并连接,输入创建索引的命令,代码如下:create index 索引 on 学生档案()create unique index 学号索引 on 学生档案(学号)create index 多列索引 on 学生档案(学号,,籍贯desc)create clustered index 学号索引 on学生成绩(学号)create unique index 任课教师ID索引 on 教学任务(任课教师ID) create index 多列索引 on 教师档案(学号教师IDdesc,,职称)第2步:执行,查看结果:第3步:索引创建成功,在对象浏览器中的“教学管理”数据库下,可以看到刚创建的“索引”“学号索引”“多列索引”,如图:3.5 使用SQL企业管理器创建索引3.5.1 使用SQL企业管理器在“学生档案表”中的“籍贯”字段上创建普通升序索引。
第1步:打开“企业管理器”,在“控制台根目录”中,,点开“教学管理”数据库中的表,如图:第2步:在“学生档案”上单击右键,选择“所有任务”→“管理索引”,弹出如下窗口:第3步:单击“新建”,出现“新建索引”对话框,输入索引名“籍贯索引”,选择索引列“籍贯”,如图:第4步:单击“确定”,返回“管理索引”,如图:3.5.2使用SQL企业管理器在“课程信息表”上创建“课程ID”唯一索引。
步骤如下:打开“企业管理器”,在“控制台根目录”中,,点开“教学管理”数据库中的表,使用SQL企业管理器在“课程信息表”上创建“课程ID”唯一索引。
步骤如下:打开“企业管理器”,在“控制台根目录”中,,点开“教学管理”数据库中的表,在“课程信息”上单击右键,选择“所有任务”→“管理索引”,弹出如下窗口:单击“新建”,出现“新建索引”对话框,输入索引名“课程ID索引”,选择索引列“课程ID”,如图:单击“确定”,返回“管理索引”,如图:即可。
3.6 创建数据库表之间的关系图第1步:在企业管理器的“控制台根目录”中,单击左端“+”号层层展开,直到在屏幕上看到数据库下的各个数据库,点开“教学管理”数据库,看到该数据库下的子项。
如图:第2步:在“关系图”子项上,单击右键,选择“新建数据库关系图”,如图:第3步:单击“下一步”,之后添加6表到右边的文本框中:第4步:单击“下一步”,单击“完成”5.思考与总结这次实验主要使用Transact-SQL语句在查询分析器中实现表和索引的创建,还有表的修改,通过实验对相应的SQL语句有了更深的了解和学习。
在命令语句的输入中,对每一个语句都应该仔细输入,做到没有遗漏;在遇到错误提示时,应学会通过尝试修改语句来寻找错误之处,思考错误的原因,结合课本所学知识进行对比,这样才能对SQL语句有更深的认识。