一、实验目的
SQL(Structured Query Language)语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
从本次实验开始,我们将详细的学习SQL的DDL(数据定义语言))。
本次实验了解DDL语言的CREATE、DROP、ALTER对表的操作,学会SQL Server 20xx的查询分析器中用DDL语言进行对表的创建、删除和改动。
二、实验内容
1. 启动数据库服务软件SQL Server 20xx的查询分析器,用如下语句对表进行操作,详细的语法格式参看课本相应章节:
Create Table 建表
Drop Table 删除表
Alter Table 更改表
三、实验任务
1.验证性实验:在学生-课程数据库中创建student等三张表。
2.设计性实验:在SPC数据库中创建S、P等表,参见第二章课后习题说明,必须设定关系的两个不变性,其余完整性约束条件及属性类型自拟。
一、实验目的
SQL(Structured Query Language)语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在Navicat for MySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。掌握使用SQL语
句定义和删除同义词。
二、实验要求
1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。
三、实验的重点与难点
1、重点:
(1)用SQL语句定义表结构(创建、修改和删除)。
(2)用SQL语句定义索引(创建、删除)。
(3)用SQL语句定义视图(创建、删除)。
(4)用SQL语句定义同义词(创建、删除)。
2、难点:
完整性约束的定义、增加及删除。
同义词的定义与删除。
四、仪器设备及用具
硬件:投影仪、每位同学分配已连接校园网PC机一台。
软件:本机已安装MySQL 5.5数据库平台。
五、教学过程
(一)实验预习
(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。
(2)掌握完整性约束定义、增加和删除的一般用法。
(3)掌握同义词定义、删除的一般用法。
(二)实验原理
在Navicat for MySQL中使用CREATE命令完成对表、索引、视图、同义词的创建,使用DROP命令完成对表、索引、视图、同义词的删除,使用ALTER命令对表结构进行修改及完整性约束的增加、删除。
(三)实验内容
1.运行Navicat for MySQL,连接到test数据库,用如下语句进行表操作,详细的语法格式如下:
CREATE TABLE 表名字
(列名1 数据类型 [DEFAULT expression],
列名2 数据类型 [DEFAULT expression],
)
|[CONSTRAINT
(index_col_name,...)
| KEY [index_name] [index_type] (index_col_name,...)
| INDEX [index_name] [index_type] (index_col_name,...)
| [CONSTRAINT [symbol]] UNIQUE [INDEX]
[index_name] [index_type] (index_col_name,...)
| [FULLTEXT|SPATIAL] [INDEX] [index_name] (index_col_name,...) | [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name,...) [reference_definition]
| CHECK (expr) [symbol]] PRIMARY KEY [index_type]
建立表主要指定义下列信息:
列定义、主键定义、键定义、索引定义 、完整性约束、外键定义、表达式检查
例如在新建查询中输入如下语句:
CREATE TABLE NEW_DEPT92150033
(DPTNO DECIMAL(10,2),
DNAME CHAR(6),
LOC CHAR(13),
PRIMARY KEY (DPTNO));
点击运行,创建表NEW_DEPT92150033,如下图所示:
选中表,单击右键,执行刷新进行表刷新,这时你可以看到新建的表。
更改表详细的语法格式如下:
增加一个列:
alter table 表名字 ADD [COLUMN] column_definition [FIRST | AFTER col_name ],.);
修改一个列:
alter table 表名字 MODIFY [COLUMN] column_definition [FIRST | AFTER col_name],.);
删除一个列:
alter table 表名字DROP [COLUMN] col_name;
在查询编辑器中执行create table语句首先建立一个test92150033表,然后分别使用alter table add、alter table modify、alter table drop column在表test92150033上来增加两个列、修改一个列和删除一个列。SQL语句如下所示:
create table test92150033 (id var20) not null);
alter table test92150033 ADD (name varchar (30) default '无名氏' not null);
alter table test92150033 ADD (age integer not null);
alter table test92150033 MODIFY name var16);
alter table test92150033 drop column age;
删除表语法:
Drop table 表名字;
例如在查询编辑器中执行如下语句删除表:
Drop table test92150033;
2. 用如下语句进行视图操作,详细的语法格式如下:
CREATE VIEW 视图名 AS SELECT FROM ;
视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视图本身不包含数据。视图所基于的表称为基表。
引入视图有下列作用:
提供附加的表安全级,限制存取基表的行或/和列集合。
隐藏数据复杂性。 为数据提供另一种观点。
例如在查询编辑器中执行如下语句建立视图:
先建立基表:
CREATE TABLE t (qty INT, price INT);
插入记录
INSERT INTO t VALUES(3, 50);
INSERT INTO t VALUES(5, 10);
在基表t的基础上,创建视图v。
CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t; 从视图v检索数据
SELECT * FROM v;
结果如图所示。
点击视图可以看到新建立的视图v,如图所示。
一、实验目的:
SQL Server 20xx的查询分析器是一种特别用于交互式执行SQL语句和脚本的极好的工具。
SQL(Structured Query Language)语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
在本次实验中熟悉表的创建、删除、修改及索引的创建与删除
二、实验内容
1. 启动数据库服务软件SQL Server 20xx的查询分析器,用如下语句对表进行操作,详细的语法格式参看课本相应章节: Create Table 建表 Drop Table 删除表 Alter Table 更改表
2.如下语句对索引进行操作,详细的语法格式参看课本相应章节: Create Index 建立索引 Drop Index 删除索引
三、实验任务
1.打开数据库SQL Server 20xx的查询分析器,用Create Table建表aa,表
2.用Create Table建表bb,表结构如下所示(其中Bb1与Bb2的组合是主键):
3.用Drop Table删除表aa。
4.用Alter Table修改表bb,添加一个字段Bb4,类型Varchar,长度20。
5.用Create Index对表Bb的Bb3字段建立一个升序索引,索引名Indexbb。
6.用Drop Index删除索引Indexbb。
Create Table aa
(Aa1 Varchar (20) primary key, Aa2 Int, Aa3 Decimal );
Create Table bb (Bb1 Varchar (30), Bb2 Int,
Bb3 Decimal (6,2), primary key (Bb1,Bb2) );
Drop Table aa;
Alter Table bb add Bb4 Varchar (20);
Create Index Indexbb on bb(Bb3 asc );
Drop Index bb.Indexbb;