文档库 最新最全的文档下载
当前位置:文档库 › 数据库实验 (2)

数据库实验 (2)

数据库实验 (2)
数据库实验 (2)

实验1 基本表的创建、数据插入 CREATE DATABASE ZHANG

(1) 建立教学管理中的三个基本表:

Students (SNO ,SNAME ,AGE ,SEX ) 学生(学号,姓名,年龄,性别) Courses (CNO ,CNAME ,SCORE ,PC #) 课程(课程号,课程名,学分,先行课号) SC (SNO ,CNO ,GRADE ) 选修(学号,课程号,成绩)

(1) 用INSERT 命令输入数据。

表6 基本表Students 的数据: 表7基本表Courses 的数据

表8 基本表SC 的数据(空格为未选修,NULL 为选修但还未有成绩):

Use zhang; Go

create table Students(SNO char(2) primary key, SNAME char(10), AGE SMALLINT, SEX CHAR(1));

create table Courses (CNO char(2) primary key, CNAME char(10), SCORE REAL,

PC# char(2) ,

S1 LU 20 M S2 YIN 19 M S3 XU 18 F S4 QU 18 F S6 PAN 14 M

C1 数学 4 M C2 英语 8 M C3 数据结构 4 F C4 数据库 3.5 F C5 网络 4 M

SNO

CNO S1 S2 S3 S4 S6 S8 C1 85 90 89 84 88 87 C2 73 NULL 86 82 75 85 C3 88 80 90 NULL C4

89

85

NULL

92

88

foreign key (PC#) references Courses(CNO)); CREATE TABLE SC(SNO CHAR(2),

CNO CHAR(2),

GRADE SMALLINT,

PRIMARY KEY(SNO,CNO),

foreign key (SNO) references Students(SNO),

foreign key (CNO) references Courses(CNO)

);

use zhang;

go

insert into Students values('S1','LU',20,'M');

insert into Students values('S2','YIN' , 19 , 'M');

insert into Students values('S3','XU' , 18 , 'F');

insert into Students values('S4','QU' , 18 , 'F');

insert into Students values('S6','PAN' , 14 , 'M');

insert into Students values('S8','DONG' , 24 , 'M');

insert into Courses values('C1' ,'数学' , 4 , 'M');

insert into Courses values('C2' ,'英语' , 8 , 'M');

insert into Courses values('C3' ,'数据结构' , 4 , 'F');

insert into Courses values('C4' ,'数据库' , 3.5 , 'F');

insert into Courses values('C5' ,'网络' , 4 , 'M');

insert into SC values('S1' ,'C1' , 85);

insert into SC values('S2' ,'C1' , 90);

insert into SC values('S3' ,'C1' , 89);

insert into SC values('S4' ,'C1' , 84);

insert into SC values('S6' ,'C1' , 88);

insert into SC values('S8' ,'C1' , 87);

insert into SC values('S1' ,'C2' , 73);

insert into SC values('S2' ,'C2' , NULL);

insert into SC values('S3' ,'C2' , 86);

insert into SC values('S4' ,'C2' , 82);

insert into SC values('S6' ,'C2' , 75);

insert into SC values('S8' ,'C2' , 85);

insert into SC values('S1' ,'C3' , 88);

insert into SC values('S2' ,'C3' , 80);

insert into SC values('S6' ,'C3' , 90);

insert into SC values('S8' ,'C3' , NULL);

insert into SC values('S1' ,'C4' , 89);

insert into SC values('S2' ,'C4' , 85);

insert into SC values('S4' ,'C4' , NULL);

insert into SC values('S6' ,'C4' , 92);

insert into SC values('S8' ,'C4' , 88);

insert into SC values('S1' ,'C5' , 73);

insert into SC values('S2' ,'C5' , NULL);

insert into SC values('S8' ,'C5' , 87);

实验2:数据查询

(1) 列出选修课程号为C2的学生学号与姓名。

(2)检索选修课程名为“数学”的学生学号与姓名。

(3)检索没有选修C2课程的学生姓名与年龄。

(4)检索选修全部课程的学生姓名。

2.1

SELECT SC.SNO,SNAME

FROM SC,STUDENTS

WHERE https://www.wendangku.net/doc/6c2738807.html,O='C2' AND SC.SNO=STUDENTS.SNO

2.2

SELECT SC.SNO,SNAME

FROM SC,STUDENTS,COURSES

WHERE https://www.wendangku.net/doc/6c2738807.html,AME='数学' AND SC.SNO=STUDENTS.SNO AND https://www.wendangku.net/doc/6c2738807.html,O=https://www.wendangku.net/doc/6c2738807.html,O

2.3

SELECT SNAME,AGE

FROM STUDENTS

WHERE STUDENTS.SNAME NOT IN (SELECT SNAME

FROM SC,STUDENTS

WHERE https://www.wendangku.net/doc/6c2738807.html,O='C2' AND SC.SNO=STUDENTS.SNO )

2.4

USE ZHANG;

GO

SELECT SNAME

FROM STUDENTS

WHERE NOT EXISTS

(SELECT *

FROM COURSES

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE SNO=STUDENTS.SNO AND CNO=https://www.wendangku.net/doc/6c2738807.html,O) );

实验3:数据修改、删除

(1)把C2课程的非空成绩提高10%。

UpDAte SC

SET GRADE=GRADE*1.1

WHERE CNO='C2'

(2)在SC表中删除课程名为“物理”的成绩所对应的元组。delete from SC

where CNO IN (SELECT CNO

FROM COURSES

WHERE CNAME='物理') ;

(3)在S和SC表中删除学号为S8的所有数据。

DELETE FROM SC

WHERE SC.SNO='S8'

DELETE FROM STUDENTS

WHERE STUDENTS.SNO='S8'

实验4:视图的操作

(1)建立男生学生的视图,属性包括学号,姓名,选修课程名和成绩。

USE ZHANG;

GO

create view STUDENT_MALE(SNO,SNAME,CNAME,GRADE)

as

select STUDENTS.SNO,SNAME,CNAME,GRADE

from SC,STUDENTS,COURSES

WHERE https://www.wendangku.net/doc/6c2738807.html,O=https://www.wendangku.net/doc/6c2738807.html,O AND SC.SNO=STUDENTS.SNO AND SEX='M'(2)在男生视图中查询平均成绩大于80分的学生学号和姓名。

CREATE VIEW GOOD(SNO,SNAME)

AS

SELECT SNO,SNAME

FROM STUDENT_MALE S1

WHERE SNO IN(SELECT SNO

FROM STUDENT_MALE S2

GROUP BY SNO

HA VING A VG(GRADE)>80);?

CREATE VIEW GOOD(SNO,SNAME)

AS

SELECT SNO,SNAME

FROM STUDENT_MALE S1

WHERE 80<(SELECT A VG(GRADE)

FROM STUDENT_MALE S2

WHERE S2.SNO=S1.SNO);

CREATE VIEW GOOD1(SNO,SNAME)

AS

SELECT DISTINCT SNO,SNAME

FROM STUDENT_MALE S1

WHERE 80<(SELECT A VG(GRADE)

FROM STUDENT_MALE S2

WHERE S2.SNO=S1.SNO);

实验5:库函数,授权控制

(1)计算每个学生选修课程的门数、平均成绩。

SELECT Students.SNO学号,SNAME姓名,COUNT(CNO)选修门数,AVG(GRADE)平均成绩

FROM Students,SC

WHERE Students.SNO=SC.SNO

GROUP BY Students.SNO,SNAME;

(2)建立一个合法的用户,将SC表的查询权限授予该用户。

use zhang

go

EXEC sp_addlogin zhang,zhang

EXEC sp_helpuser;--显示所有用户

EXEC sp_helplogins;--显示所有登录用户

use ZHANG

go

EXEC sp_grantdbaccess'zhang','zhang'

GRANT SELECT

ON SC

TO zhang;

(3)使用GRANT语句,把对基本表students、Courses、SC的使用权限授予其他用户。

实验6:数据库的备份、恢复

(1)使用完全备份将你的实验数据库备份到软盘。

Use ZHANG

EXEC sp_addumpdevice'disk','zhangd','e:\backupdev\zhangd.bak' BACKUP DATABASE zhang TO zhangd

(2)删除你所建立的数据库。

(3)恢复你的数据库。

restore database zhang from zhangd

(4)在恢复后的数据库上撤销你建立的基本表和视图。

use zhang

go

drop table sc

drop table students

drop table courses

drop view student_male

数据库实验2实验报告 2

数据库第二次试验报告 PB10011020 刘思轶实验内容 本实验有两个可选题目,旅游出行和药品免疫库。本程序即为旅游出行的一个实现。 实验原题摘要如下 数据关系模式: 航班FLIGHTS( String flightNum, int price, int numSeats, int numAvail, String FromCity, StringArivCity); 宾馆房间HOTELS( String location, int price, int numRooms, int numAvail);出租车CARS( String location, int price, int numCars, int numAvail);客户CUSTOMERS( String custName); 预订情况RESERVATIONS( String resvKey, String custName, int resvType) 系统基本功能: 1.航班,出租车,宾馆房间和客户基础数据的入库,更新(表中的属性也可以根据你的需要添加)。 2.预定航班,出租车,宾馆房间。 3.查询航班,出租车,宾馆房间,客户和预订信息。 4.查询某个客户的旅行线路。 5.检查预定线路的完整性。 6.其他任意你愿意加上的功能。 程序功能 本系统由旅行服务提供商运营,发布在支持PHP + MySQL 的服务器上。 系统默认有三个角色,游客、用户和管理员。它们的权限如下 1、游客 查询当前航班、旅馆和出租车的预订情况; 2、注册用户 游客的所用权限; 查询当前预订; 预订航班、旅馆和出租车; 退订航班、旅馆和出租车。 打印旅行路线 检查预定路线的完整性。 检查航班的完备性 3、管理员 注册用户的所用权限

西北工业大学数据库实验报告

1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分) ●数据库和表的要求(第五版教材第二章习题 6 要求的数据库) 数据库名:SPJ,其中包含四张表:S表, P表, J表, SPJ表 ●完成以下具体操作: (1)创建SPJ数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方 式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名和物理文件名均采用默认值。 (2)在SPJ数据库中创建如图2.1-图2.4的四张表(只输入一部分数据示意即可)。 S表: P表: J表: SPJ表:

(3)备份数据库SPJ(第一种方法):备份成一个扩展名为bak的文件。(提示: 最好先删除系统默认的备份文件名,然后添加自己指定的备份文件名) (4)备份数据库SPJ(第二种方法):将SPJ数据库定义时使用的文件(扩展名为 mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。 原位置: 新的位置: (5)删除已经创建的工程项目表(J表)。 (6)删除SPJ数据库。(可以在系统默认的数据存储文件夹下查看此时SPJ数据 库对应的mdf,ldf文件是否存在) 删除过后文件不存在 (7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。(还原数据库)

(8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。(附加) (9)将SPJ数据库的文件大小修改为100MB。 (10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类 型。 2.利用SQL语言创建和删除数据库和数据表(50分,每小题5分) ●数据库和表的要求 数据库名:Student,其中包含三个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。 ●完成以下具体操作: (1)用SQL语句创建如图2.5-图2.7要求的数据库Student,初始大小为20MB, 最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初

数据库实验二

西南石油大学实验报告 注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。 一、实验课时:4 二、实验目的 (1) 理解查询的概念和方法。 (2) 掌握SELECT语句在单表查询中的应用。 (3) 掌握SELECT语句在多表连接查询中的应用。 (4) 掌握SELECT语句在嵌套查询中的应用。 (5) 掌握SELECT语句在集合查询中的应用。 (6) 主要掌握使用“查询分析器”进行查询。 三、实验环境 (1) PC机。 (2) SQL Server 2008。 四、实验内容及步骤 以下查询均使用实验项目1中创建的COMPANY数据库。 1.单表查询 (1)基本查询。 Q0. 使用查询分析器从Employee表中检索出所有员工的姓名。 SQL文本:SELECT FNAME,LNAME FROM EMPLOYEE;

(以下所有题目都必须按照上图的要求截图) Q1.从Employee表中检索出员工的FNAME、LNAME、SSN、BDATE、SALARY等字段,并分别加上“名”、“姓”、“社会保险号”、“生日”、“工资”的标题。员工的排序规则为:首先按工资的降序排列,然后按FNAME 的字母升序排列。 SQL文本: SELECT Fname名,Lname姓,Ssn社会保险号, Bdate生日,Salary工资 FROM EMPLOYEE ORDER BY Salary DESC,Fname;

Q2.查询不重复的员工工资值。 SQL文本: SELECT DISTINCT Salary FROM EMPLOYEE; Q3.查询没有直接上司的员工姓名。SQL文本: SELECT Fname,Lname FROM EMPLOYEE WHERE Super_ssn IS NULL;

2-实验二MySQL数据库操作实验

实验二MySQL数据库操作实验 实验目的: 1、掌握MySQL数据库的安装方法 2、掌握MySQL数据库的使用 3、熟悉数据库管理工具的使用 实验要求: 1、利用MySQL命令创建数据库和相应的数据库表,并能向数据库表中插入数据记录和相应的数据库操作。 2、利用Navicat for MySQL建数据库和相应的数据库表,并能向数据库表中插入数据记录和相应的数据库操作。 3、保存和导入数据库 4、编程查询显示数据库表中的所有记录,可以选择以下添加的任意一个数据库表的记录。 实验内容: 1、安装MySQL数据库 安装MySQL可以参照文档“MySQL 5 安装.doc”,安装MySQL并进行配置,安装成功后,即可操作管理数据库。 方法一: 从开始菜单?MySQL?MySQL Server5.0?MySQL Command Line Client,打开控制台界面,提示输入密码,密码输入成功后,登录MySQL数据库,如下图2.1所示。

图2.1 登录MySQL 服务器 方法二:将MySQL的安装路径下的bin目录添加到环境变量path中,打开控制台命令,输入mysql –uroot –p,在提示符下输入密码,登录MySQL 服务器,如下图2.2所示。 图2.2 登录MySQL服务器 2、安装Navicat for MySQL Navicat for MySQL 是一款强大的MySQL数据库管理和开发工具,Navicat 使用很好的GUI,可以使用户采用一种安全和更容易的方式创建、组织、存取和共享信息。 安装Navicat_for_MySQL_10.1.7,安装向导启动界面如下图2.3所示。

数据库实验报告2

理工大学信息工程与自动化学院学生实验报告 (2011 —2012 学年第 1 学期) 课程名称:数据库系统教程开课实验室:信自楼445 2011 年11月 27日 一、上机目的及容 1.上机容: SQL的数据查询,查询、插入、删除、修改 2.上机目的: 掌握数据查询语句,并能熟练应用 二、实验原理及基本技术路线图(方框原理图或程序流程图) 在SQL server 2008软件中的查询中,输入SQL代码 三、所用仪器、材料(设备名称、型号、规格等或使用软件) 1台PC及SQL server 2008软件 四、实验方法、步骤(或:程序代码或操作过程) 1)select查询 单表查询:查询全体学生的学号及: SELECT SNO,SNAME FROM S;

查询全体学生的全部信息: SELECT*FROM S; 2)查询经过计算值 (SELECT子句的<目标列表达式>为表达式,表达式可以是:算术表达式、字符串常量、函数、列别名等) 查全体学生的学号、及其出生年份: SELECT SNO,SNAME,2012-AGE FROM S;

查询全体学生的、出生年份和所属系: SELECT SNO,SNAME,2012-AGE,SDEPT FROM S; 查询选修了课程的学生学号: SELECT SNO FROM SC,C WHERE https://www.wendangku.net/doc/6c2738807.html,O=https://www.wendangku.net/doc/6c2738807.html,O; 为了避免这种不合题意的情况,我们用distinct用了去除重复的元组。所以上例中的执行语句为: SELECT DISTINCT SNO FROM SC;

SELECT DISTINCT SNO FROM SC,C WHERE https://www.wendangku.net/doc/6c2738807.html,O=https://www.wendangku.net/doc/6c2738807.html,O; 查询选修课程的各种成绩: SELECT CNO,GRADE FROM SC; SELECT DISTINCT CNO,DISTINCT GRADE FROM SC; SELECT CNO,DISTINCT GRADE FROM SC; SELECT DISTINCT CNO,GRADE FROM SC;

福建工程学院《实验指导书(数据库系统原理及应用)》

数据库系统原理 实验指导书 (本科)

目录 实验一数据定义语言 (1) 实验二SQL Sever中的单表查询 (3) 实验三SQL Serve中的连接查询 (4) 实验四SQL Serve的数据更新、视图 (5) 实验五数据控制(完整性与安全性) (7) 实验六语法元素与流程控制 (9) 实验七存储过程与用户自定义函数 (11) 实验八触发器 (12)

实验一数据定义语言 一、实验目的 1.熟悉SQL Server2000/2005查询分析器。 2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表 的定义、删除与修改,掌握索引的建立与删除方法。 3.掌握SQL Server2000/2005实现完整性的六种约束。 二、实验内容 1.启动SQL Server2000/2005查询分析器,并连接服务器。 2.创建数据库: (请先在D盘下创建DB文件夹) 1)在SQL Server2000中建立一个StuDB数据库: 有一个数据文件:逻辑名为StuData,文件名为“d:\db\S tuDat.mdf”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB; 有一个日志文件,逻辑名为StuLog,文件名为“d:\db\StuLog.ldf”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10% 2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。 3.设置StuDB为当前数据库。 4.在StuDB数据库中作如下操作: 设有如下关系表S:S(CLASS,SNO, NAME, SEX, AGE), 其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。 写出实现下列功能的SQL语句。 (1)创建表S; (2)刷新管理器查看表是否创建成功; (3)右击表S插入3个记录:95031班25号李明,男性,21岁; 95101班10号王丽,女性,20岁; 95031班座号为30,名为郑和的学生记录; (4)将年龄的数据类型改为smallint; (5)向S表添加“入学时间(comedate)”列,其数据类型为日期型(datetime); (6)对表S,按年龄降序建索引(索引名为inxage); (7)删除S表的inxage索引; (8)删除S表; 5.在StuDB数据库中, (1)按照《数据库系统概论》(第四版)P82页的学生-课程数据库创建STUDENT、COURSE 和SC三张表,每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。 并输入相关数据。 (2)将StuDB数据库分离,在D盘下创建DB文件夹下找到StuDB数据库的两个文件,进行备份,后面的实验要用到这个数据库。 6.(课外)按照《数据库系统概论》(第四版)P74页习题5的SPJ数据库。创建SPJ数据 库,并在其中创建S、P、J和SPJ四张表。每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。要作好备份以便后面的实验使用该数据库数据。 三、实验要求:

数据库实验 2

实验 2 :数据库的建立和维护实验 本实验需要 2 学时。 一、实验目的 要求学生熟练掌握使用SQL 、Transact-SQL 和SQL Server 企业管理器建立数据库、表、修改数据库、表和删除数据库和表的操作。 二、实验内容和步骤 1.创建数据库 1)在企业管理器中创建数据库student_学号:要求: ●数据库STUDENT_学号初始大小为10MB,最大大小为50MB,数据库自动增长,增长 方式是按5%比例增长; ●日志文件初始大小为2MB,最大可增长到5MB,按1MB增长; ●数据库的逻辑文件名和物理文件名均采用默认值; ●(分别为STUDENT_学号_data和e: \sql\data\MSSQL\STUDENT_学号.MDF) ●事务日志的逻辑文件名和物理文件名也采用默认值。 ●(分别为STUDENT_学号_LOG和e: \sql\data\MSSQL\STUDENT_学号_LOG.ldf) 2)②使用T-SQL语句创建数据库STUDENT_学号,要求同1; Create database STUDENT_01 On (name=STUDENT_01_data, filename='e:\STUDENT_01.MDF', size=10, maxsize=unlimited, filegrowth=10%) log on (name=student1_log, filename='e:\STUDENT_01.LDF', size=2, maxsize=5,

filegrowth=1) 2. 创建表 以上面创建的数据库为例,创建表。创建表实际上就是创建表结构,再向表中输入数据。既可以使用企业管理器创建表,也可以用Transact-SQL 命令创建表。 (1). 使用企业管理器创建表 利用企业管理器提供的图形界面来创建表,步骤如下: (1)在树形目录中展开【服务器组】→【服务器】→【数据库】→【STUDENT_学号】。 (2)选择【表】,单击鼠标右键,在弹出的快捷菜单中选择【新建表...】命令, 打开设计表对话框。 (3)如图5-10所示,设计表对话框的上半部分有一个表格,在这个表格中输入列的列名、数据类型、长度(有的数据类型不需要指定长度,如datetime 类型的长度为固定值8)、是否可以为空,在允许空域中单击鼠标左键,可以切换是否允许为空值的状态,打勾说明允许为空值,空白说明不允许为空值,默认状态是允许为空值的。 (4) 图5-10所示的设计表对话框的下半部分是特定列的详细属性,包括是否是标识列、是否使用默认值等。 (5)用图5-10所示的方法逐个定义好表中的列。 (6)设置主键约束:选中要作为主键的列,单击工具条上的【设置主键】按钮,主键列的前上方将显示钥匙标记,如图5-11所示。 (7)鼠标右键单击表中的任意一行(即任意一个列的定义),在弹出的快捷菜单中选择【属性】命令,可以打开如图5-12所示的表属性对话框,在该对话框中选择表选项卡,可以指定表的属性,比如表名、所有者、表的标识列等。图5-12中将表的名称设置为Readers , 所有者设置为dbo 。 (8)在属性对话框中选择【关系】选项卡,可以设置列上的外键约束。选择【索引/键】选项卡,可以设置列上的索引,以及主键约束和惟一性约束。选择【check 约束】选项卡,

数据库原理实验报告二.pdf

LIAOCHENG UNIVERSITY 计算机学院实验报告 【2015 ~2016 学年第 2 学期】 【一、基本信息】 【实验课程】数据库原理与应用 【设课形式】独立□非独立【课程学分】 【实验项目】实验二、SQL数据操作及查询 【项目类型】基础综合□设计□研究创新□其它[ ]【项目学时】4【学生姓名】傅雪晨【学号】59 【系别专业】电子商务 【实验班组】 【同组学生】 【实验室名】综合实验楼 【实验日期】【报告日期】 【二、实验教师对报告的最终评价及处理意见】 实验成绩:(涂改无效) 指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管理中心备案

【三、实验预习】 实验条件(实验设备、软件、材料等): 实验2 SQL数据操作及查询 实验目的: 1. 向实验1建立的表中添加数据(元组), 掌握INSERT语句的用法; 2. 修改基本表中的数据, 掌握UPDATE语句的用法; 3. 删除基本表中的数据,掌握DELETE语句的用法; 4. 体会数据完整性约束的作用, 加深对数据完整性及其约束的理解。 5. 熟练掌握SELECT语句,能够运用该语句完成各种查询。 实验内容: 1.使用INSERT语句将教材P82表中的数据添加到数据库STUDENTDB中. 2. Insert into student59 select'1','李勇','男','20','CS','',''union select'2','刘晨','女','19','CS','',''union select'3','王敏','女','18','MA','',''union select'5','张立','男','19','IS','','' select*from student59 select*from course59 select*from sc59 alter table course59NOCHECK Constraint fk_cpno Insert into course59 select'1','数据库','5','4'union select'2','数学','','2'union select'3','信息系统','1','4'union select'4','操作系统','6','3'union select'5','数据结构','7','4'union select'6','数据处理','','2'union select'7','PASCAL语言','6','4' alter table course59CHECK Constraint FK_course59_course59 Insert into sc59 select'1','1',92 union select'1','2',85 union select'1','3',88 union select'2','2',90 union select'2','3',80 alter table sc59CHECK Constraint fk_S_c alter table sc59NOCHECKConstraint fk_S_c

数据库实验二

实验二数据库设计 【实验目的】 本实验通过学生一个应用实例设计数据库,达到: 1、理解规范化数据库设计包括步骤及其任务、方法、结果等。 2、掌握数据库设计过程中关键文档的撰写包括E-R模型、E-R模型向关系模型的转换。 3、了解数据库辅助设计工具。 【实验性质】 验证性实验(学时数:2H) 【实验导读】 1、概述 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统(简称数据库应用系统),使之能够有效地存储数据,满足各种用户的应用需求(包括信息要求和处理要求)。 数据库设计的一个最基本的问题(输出)是如何建立一个好的数据库模式(逻辑结构与物理结构),如果可能的话包括基于数据库应用系统的设计原则。即给出一定的硬件与软件环境下(主要包括OS与DBMS),对于一定的信息需求和处理要求(输入),如何构造一个适合于它们的数据模式,使数据库系统无论是在数据存储方面,还是在数据操纵方面都有较好的性能。 按照规范化设计的方法,数据库设计分为以下六个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。有些教材还包括规划阶段。为了叙述方便我们将后两个阶段合并。 2、需求分析 需求分析指各种需求的收集和分析、表达,结果得到数据字典(DD)描述的数据需求和数据流图(DFD)描述的处理需求。在结构化设计方法中,需求分析采用自顶向下、逐层分解的方法。 3、概念结构设计 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,用E-R图表示。E-R模型方法讨论了实体与实体之间的数据联系,目标是要设计一个“好”的数据库模型。 设计E-R图步骤: 1)确定局部应用,一般选择合适的中间层次。在DFD中选择适当层次的DFD,作为设计局部E-R图的出发点。中层允许有一定的重叠。 2)设计局部E-R图。主要包括确定实体、确定联系包括联系名及其类型、标明属性、确定主关键字、标明其它。 3)局部E-R图 4)合并及优化全局E-R图。 4、逻辑结构设计 将概念结构转换为某个DBMS所支持的数据模型一般为关系模型,并对其进行优化。转换时必须遵从转换规则,每个规则强调转换时必须确定每个关系的关系名、构成的属性、码的确定。转换规则可以分为三类即实体型的转换、联系转换(联系可分为二元联系与多元联系两类,二元联系划分成1:1、1:n、n:m三种,一元联系同二元联系一样处理)、关系合并规则。 5、物理结构设计 为逻辑数据模型选取一个最适合应用环境的物理结构(存储结构和存取方法)。 6、实施与运行、维护 数据库实施指运用DBMS提供的数据语言SQL及其宿主语言(例如C),根据逻辑设计和物理

数据库(实验2)

南京信息工程大学数据库基础教程实验(实习)报告 实验(实习)名称数据库、表的创建实验(实习)日期2016.4 得分指导老师马瑞 系计算机与软件学院专业网络工程班级 2 姓名杨泽瑞学号20141346046 一、实验目的 1.了解在SSMS创建数据库的要求。 2.了解Server数据库的逻辑结构和物理结构。 3.掌握表的结构特点。 4.掌握SQL的基本数据类型。 5.掌握空值概念。 6.掌握SSMS界面和使用T-SQL语句创建数据库的方法。 二、实验内容 1.在SSMS中创建数据库的要求如下: (1)能创建数据库的用户必须是系统管理员,或被授权使用CREATE DATABASE 语句的用户。 (2)创建数据库必须确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初大小、增长方式)和存储数据库的文件。 (3)确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQLServer 的常用数据类型,以创建数据库的表。 2.定义数据库结构。创建学生成绩数据库,数据库名为XSCJ,包含下列3个表。(1)学生表:表名为Student,描述学生信息。 (2)课程表:表名为Course,描述课程信息。 (3)学生选课表:表名为StuCourse,描述学生选课及成绩信息。

3.在SSMS控制台上创建XSCJ数据库。 要求:数据库XSCJ初始大小为5 MB,日志文件初始大小为1 MB,增长方式均采用默认值。数据库的逻辑文件名和物理文件名均采用默认值,分别为XSCJ_data 和f:\prograni FilesVMicrosoft SQL Server\MSSQL.l\MSSQL\data\XSCJ.mdf ,其中 f:\Program Files\Microsoft SQL Server\MSSQL.l\MSSQL\data^ SQL Server 2012的系统安装目录;事务日志的的逻辑文件名和物理文件名也均采用默认值,分别为XSCJ_LOG和 ProgramFiles\MicrosoftSpLServer\MSSQL.l\MSSQL\data\XSCJ_Log.ldf。 注意:不同的安装系统安装目录有可能不相同。 启动SSMS,以系统管理员或被授权使用CREATE DATABASE语句的用户登录SQL Server 2014服务器。在对象资源管理器中“数据库,,图标上单击鼠标右键,在快捷菜单上选择“新建数 ,据库”,将出现如图A2.1所不的“新建数据库”窗口。在“数据库名称”文本框中输入数据库名 1SCJ”,并将逻辑文件的初始大小改为5 MB,单击“确定”按钮,即可创建XSCJ数据库。在对象资源管理器中展开“数据库”图标,将看到新增了“XSCJ”图标。 4.将新创建的XSCJ数据库删除。在资源管理器中选择数据库XSCJ在XSCJ上单击鼠标右键删除。 5.使用T-SQL语句创建XSCJ数据库。启动査询分析器,在查询分析器中输入以下语句:

数据库实验报告2

数据库原理实验报告 姓名:学号:班级: 实验日期:03/30/2017 实验名称:数据库创建与管理 实验二数据库创建与管理 一、实验目的 1.熟练掌握界面方式创建和管理数据库。 2.熟练掌握查询编辑器T-SQL语句创建和管理数据库。 3.熟练掌握备份和还原数据库。 二、实验器材 1、接入Internet的计算机主机; 三、实验内容 1、界面方式创建和管理数据库 (1)创建数据库 (2)修改数据库

(3)删除数据库(使用右键) 2、利用企业管理器备份和还原数据库(1)备份数据库 (2)还原数据库(操作->右键)

(1)创建SPJ数据库:“新建查询”,输入以下语句并运行 CREATE DATABASE SPJ ON (NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' , SIZE = 3, MAXSIZE = 10, FILEGROWTH = 10%) LOG ON (NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,

SIZE = 1, FILEGROWTH = 10%) (2)修改SPJ数据库:在查询分析器中输入以下语句并运行 ALTER DATABASE SPJ MODIFY FILE (NAME='SPJ_Data', SIZE=4, MAXSIZE=UNLIMITED) ALTER DATABASE SPJ ADD FILE (NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1, MAXSIZE=10, FILEGROWTH=10%) (3)删除SPJ数据库:DROP DA TABASE SPJ

数据库实验二

实验四数据库约束实验 实验目的 (1) 理解数据库完整性约束的概念。 (2) 掌握SQL SERVER 的完整性约束技术。 (3) 了解SQL SERVER 的违反完整性约束处理措施。 实验内容 (1) 理解实体完整性、域完整性、引用完整性和用户定义完整性的意义。 (2) 定义和管理主键(PRIMARY KEY)约束、外键(FOREIGN KEY)约束、唯一性(UNIQUE)约束。 (3) 定义和管理检查(CHECK)约束、DEFAULT 约束、允许空值约束。习题 1.在数据库EDUC中,创建下列完整性约束。 (1) 为数据库表Course_info创建一CHECK约束:当插入或修改一个记录时,确保此记录的授课学时在10~80之间。 (2) 为教师信息表Teacher_info创建CHECK约束:男教师出生日期在1960年1月1日以后,女教师出生日期在1965年1月1日以后。 (3) 为教师上课信息表TC_info创建CHECK约束:学生成绩在0~100之间。 (4) 为教师上课信息表TC_info创建外键约束:“tcid”、“tno”、“classno”和“cno”。 实验步骤: (1)打开数据库表Course_info,找到lecture并右击,在出现的菜单里单击CHECK约束,出现图1所示的窗体界面。

图 1 单击窗口中常规下的表达式后的按钮,出现如图2所示的窗体界面,为确保此记录的授课学时在10~80之间,在此窗体中输入语句:lecture>=10 and lecture<=80,单击确定按钮即可完成此约束。 图2 (2)打开数据库表Teacher_info,找到birthday并右击,在出现的菜单里单击CHECK约束,出现图1 所示的窗体界面。同样单击常规下的表达式后的按钮,在CHECK约束表达式窗体中输入下列语句: birthday>’1960-1-1’ WHERE sex=’男’, birthday<’1965-1-1’WHERE sex=’女’ (3)打开教师上课信息表TC_info,找到score并右击,在出现的菜单里单击CHECK约束,出现图1 所示的窗体界面。单击窗口中常规下的表达式后的按钮,

数据库系统原理与设计(第二版)实验一至实验三

实验一 1-1.查询员工的姓名、职务和薪水 select employeeName,headShip,salary from employee 图1-1 2.查询名字中含有“有限”的客户姓名和所在地 select CustomerName,address from Customer where CustomerName like '%有限%'

3. 查询出姓“张”并且姓名的最后一个字为“梅”的员工。 select * from employee where employeeName like '张%梅' 图1-3 4. 查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示 SELECT employeeName,department,address, isnull (convert(char(10),birthday,120),'不详')出生日期, case sex when 'M'then '男' when 'F'then'女' end as 性别 from employee where (address like '%上海%'or address like '%南昌%')and sex='F'

5. 查询出职务为“职员”或职务为“科长”的女员工的信息 select * from employee where (headship='职员' or headship='科长') and sex='F' 图1-5 6. 选取编号不在“C20050001”和“C20050004”的客户编号、客户名称、客户地址。 Select * from Customer where CustomerNo not in ( 'C20050001' ,'C20050004')

实验2 创建数据库和表

实验2 创建数据库和表 一、实验目的 1.了解MySQL数据库中的存储引擎分类 2.了解表的结构特点 3.了解MySQL的基本数据类型 4.了解空值的概念 5.学会在MySQL界面工具中创建数据库和表 6.学会使用SQL语句创建数据库和表 二、实验准备 1.首先要明确,能够创建数据库的用户必须是数据管理员,或是被授权使用 CREATE DATABASE语句的用户。 2.其次,确定数据库包含哪些表,以及所包含的个表的数据结构,还要了解 MySQL的常用数据类型,以及创建数据库的表。 3.此外还要了解两种常用的创建数据、表的方法,即在界面管理工具中创建 和使用CREATE DA TABASE 语句创建。 三、实验内容及要求 (一)数据表描述 创建用于企业用于管理的员工管理数据库,数据库名为YGGL,包含员工的信息,部门信息,及员工的薪水信息。数据库YGGL包含下列三个表: Employees:员工信息表 Departments:部门信息表 Salary:员工薪水情况表 Departments表结构

Salary表结构 (二)实验内容 1.使用命令行方式创建数据库YGGL。 1)打开MySQL command line client,输入管理员密码登录,使用CREATE 语句创建YGGL数据库。 2)在YGGL数据库存在的情况下,使用CREATE DATEBASE语句新建数据 库YGGL,查看错误信息,再尝试加上IF NOT EXISTS关键词创建YGGL,看看有 什么变化。 3)使用命令方法创建数据库YGGL1,要求数据库字符集为utf8,校对规 则为utf8_general_ci。 2.使用SQL语句在YGGL数据库中创建表employees 1)执行创建表Employees的Sql语句。 3.使用SQL语句删除表和数据库 1)删除表Employees。 2)删除数据库YGGL。 3)复制表Employees,命名为Employees1。使用命令行将表Emloyees1 中的Emailaddress列删除,并将Sex列的默认值修改为男。

数据库实验报告二

《数据库原理》实验报告 实验三: 数据库完整性与安全性控 制 实验四: 视图与索引 学号姓名 班级日期 2013302534 杨添文10011303 2015.10.1 7 实验三:数据完整性与安全性控制 一、实验内容 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1)非空约束:为出生日期添加非空约束。 (2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。 (3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。 (4)缺省约束:为性别(ssex)添加默认值,其值为“男”。 (5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查 条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表为分别是S 表和C表,外键名称分别为fk_sno,fk_cno。 2.在图形用户界面中删除上小题中已经创建的各种约束,用SQL语言分别重新创建第1小题中的(2)-(6)小题。(15分,每小题3分,提示:alter table add constraint)(2)alter table s add constraint pk_sno primary key(sno) (3)alter table s add constraint uk_sname unique(sname) (4)alter table s add constraint a default('男')for ssex (5) alter table sc add constraint ck_grade check(grade between 0 and 100) (6) alter table sc add constraint fk_sno foreign key(sno)references s(sno) alter table sc add constraint fk_cno foreign key(cno)references c(cno)

数据库实验二41245

仲恺农业工程学院实验报告纸 信息科学与技术学院网络工程专业 131 班组数据库原理及应用课学号 4123 姓名苏德实验日期教师评定 实验二数据查询与修改 一、实验目的 1、掌握使用简单查询、连接查询以及嵌套查询完成数据查询的方法 2、掌握应用SQL进行数据更新的方法; 3、掌握视图的创建与更新方法。 二、实验内容 第一部分:使用附加方式恢复数据库LibraryLib,完成如下各题: 1、《数据库原理及应用实验指导》P45 1.数据查询练习(1)-(6) (1)查询各个超期罚款用户及其罚款总数,结果按罚款总数降序排列。 (2)查询已经超期一个月以上的还未归还图书的用户借书证编号。 (3)查询已经超期一个月以上的还未归还图书的用户名称、联系方式以及超期图书名。 (4)查询在同一天借阅了不同图书的用户借书证号。 (5)查询借书从来没有被超期罚款的用户信息。 (6)检索有图书所购册数大于或等于图书价格超过“50”的图书任一所购册数的图书的价格。 分析:先找出图书价格超过“50”的图书的所购册书假设a 要查的是所购册数>= any a 的图书的价格 第一部分:实验数据修改 1.使用SQL语句向“用户信息表Users”中插入元组(用户标识:LiS;用户权限:1;密码:2;用户名称:李生;性别:男(0);部门:计算系;已借

图书:0)。 问:本题可以省略into子句中的属性名吗如果要省略,需要注意什么 2.向Publish(出版社信息) 表插入一条新的记录,在该记录中,出版社名为:国防工业出版社,地址为:北京市海淀大街籍海楼,出版社email为。 3.对每个出版社,求出所购图书总数和图书总价格,并把结果存入新建表“图书统计Temp_CNTBK”表中。 4.读者“ZouY”于今天通过管理员“LuoHH”借阅了一本“Visual FoxPro 及其应用系统开发”图书,使用T-SQL语句向Borrow表中插入该记录,并更改Book表中库存册书信息。 说明:本题有一定难度,请先思考如果插入这么一条记录,需要哪些信息,又如何获取到,关键是获取后将其存入一些变量中即可 5.使用SQL语句将所有读者借书应归还日期向后延长一天。 6.将“清华大学出版社”的图书所购册书和库存册书增加10本。 7.删除所有实际归还日期为“2009-04-17”以前且所借图书的名称中含有“数据库”字样的超期罚款记录。 8.删除“出版社信息表Publish”中出版社名称为“机械工业出版社”的元组,讨论该删除操作所受到的约束。 第二部分:实验视图 1.使用企业管理器创建一个行列子集视图View_Book,给出清华大学出版社的图书的的图书名称、书号、价格、书的页数和购买册书。 2.创建分组视图,将出版社标识及每个出版社的图书的最高价格和最低价格定义为一个视图。 3.创建一个基于题目1所建立视图的视图,定义一个视图,包括清华大学出版社的图书名称,以及购买该图书的总价格。 4.创建一个基于多个基表的视图,该视图由用户帐户、姓名、他在借书的名称组成。

大数据库系统应用与开发--实验二

实验二JDBC基础(1) 一、相关知识点 1、JDBC基本概念 2、java连接数据库的方式 3、JDBC简单查询 二、实验目的: 理解Java连接数据库的基本概念。理解JDBC的四种驱动程序,掌握纯java驱动和jdbc-odbc驱动。理解Statement对象和ResultSet对象。 三、实验内容: 1、将booklib应用的JDBC驱动程序改成JDBC-ODBC驱动方式。 第一步:设置ODBC数据源;

第二步:修改DBUtil类中的相关代码;

第三步:运行程序 【实验结果与分析】 A、说明需要修改DBUtil类的哪些地方,及修改原因? private static final String jdbcUrl="jdbc:odbc:cjeSQL"; 因为booklib应用的驱动方式是jdbc-odbc驱动 2、利用Statement对象和Result对象实现按出版社名称精确查询出版社功能(精确查 询是指查询的目标和查询条件中值完全相同的数据)。 第一步:在https://www.wendangku.net/doc/6c2738807.html,.zucc.booklib.control. PublisherManager类中添加按出版社名称精确查询方法public BeanPublisher loadPubByName(String name)throws BaseException 第二步:编写上述方法,要求当相应名字的出版社不存在时,返回null值;相关代码请参考提取所有出版社函数。 第三步:启动booklib主程序,在出版社管理中录入几个出版社 第四步:清空https://www.wendangku.net/doc/6c2738807.html,.zucc.booklib.control. PublisherManager类中的main函数现有内

数据库实验2

Oracle的文件操作 实验教学目的与要求: 熟悉sqlplus中的常用命令;掌握Oracle的启动和关闭;掌握Oracle文件及管理。 实验具体内容: 请同学们将每道题的结果截图,粘贴到文档相应题目下 (一)数据文件 1、为USERS表空间,增加一个数据文件users02.dbf,大小为10M 2、将users02.dbf数据文件移动到D:\oracle\product\10.2.0\oradata目录下并重命名为 users002.dbf 3、删除users002.dbf文件 提示:使用alter tablespace … drop datafile语句 (二)控制文件 4、实现多路镜像控制文件(参考书63页d) 编辑初始化参数 关闭数据库 拷贝一个原有的控制文件到新的位置,并重新命名。 重新启动数据库

5、查看当前数据库中所有控制文件信息 提示:查看视图v$controlfile select name from v$controlfile; 6、将控制文件备份为二进制文件 提示:使用语句alter database backup controlfile to 目标路径和文件 (三)重做日志文件 7、查看重做日志成员文件所在的重做日志文件组状态 提示:查看v$log视图

8、查看重做日志组及其成员的信息 提示:查看v$logfile视图 9、为数据库添加重做日志文件组组号为4,文件组下有包含redo04a.log与redo04b.log两个文件,大小为4M。 提示:使用alter database add logfile group 日志文件组组号… 两个文件路径和文件名。参考书67页 10、添加重做日志文件组号为4的组成员redo04c.log 提示:使用语句alter database add logfile member….to group 4 11、改变重做日志文件组成员的名称或位置 将redo04a.log更名为redo004a.log,同时将redo04c.log移到d:\oracle\product\10.2.0\oradata 目录下 注意:只能更改处于inactive或unused状态的重做日志文件组的成员文件名称或位置 12、删除重做日志文件组成员 注意:只能更改处于inactive或unused状态的重做日志文件组的成员文件 使用语句alter database drop logfile member…. 然后在删除操作系统中对应的重做日志文件。

相关文档