数据库系统概论——数据操纵语言DML实验报告
安徽工业大学数据库实验报告

《数据库系统概论》实验报告书专业班级学号姓名指导教师安徽工业大学计算机科学与技术学院目录实验一:数据定义语言 (1)实验二:数据操纵语言 (10)实验三:数据查询语言 (17)实验四:视图、授权控制与事务处理 (43)实验五:Oracle存储过程与触发器 (54)数据库学习总结 (56)实验一:数据定义语言[ 实验日期 ] 年月日[ 实验目的 ]熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。
[ 实验内容 ]Oracle上机环境以及Oracle客户端的配置参见附录。
1. SQL数据定义语句:例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。
创建表Student:CREATE TABLE STUDENT(SNO CHAR(5),SNAME VARCHAR2(8),SDEPT CHAR(2) NOT NULL,SCLASS C HAR(2) NOT NULL,SAGE NUMBER(2),CONSTRAINT SNOS_PK PRIMARY KEY(SNO));创建表Course:CREATE TABLE Course(CNO CHAR(3),CNAME VARCHAR2(16),CTIME NUMBER(3),CONSTRAINT CNOC_PK PRIMARY KEY(CNO));创建表Teach:CREATE TABLE Teach(TNAME VARCHAR2(8),TSEX CHAR(2),CNO CHAR(3),TDATE DATE,TDEPT CHAR(2),CONSTRAINT TCT_PK PRIMARY KEY(TNAME,CNO,TDEPT), CONSTRAINT CNOT_FK FOREIGN KEY(CNO) REFERENCES Course(CNO) );创建表Score:CREATE TABLE SCORE(SNO CHAR(5),CNO CHAR(3),SCORE NUMBER(5,2),CONSTRAINT SCS_PK PRIMARY KEY(SNO,CNO),CONSTRAINT SNOS_FK FOREIGN KEY(SNO) REFERENCES Student(SNO), CONSTRAINT CNOS_FK FOREIGN KEY(CNO) REFERENCES Course(CNO) );插入数据:1、StudentINSERT INTO Student VALUES('96001','马小燕 ','CS','01',21)? INSERT INTO Student VALUES('96002','黎明 ','CS','01',18)? INSERT INTO Student VALUES('96003','刘东明 ','MA','01',18)? INSERT INTO Student VALUES('96004','赵志勇 ','IS','02',20)? INSERT INTO Student VALUES('97001','马蓉 ','MA','02',19)? INSERT INTO Student VALUES('97002','李成功 ','CS','01',20)? INSERT INTO Student VALUES('97003','黎明 ','IS','03',19)?INSERT INTO Student VALUES('97004','李丽 ','CS','02',19)?INSERT INTO Student VALUES('96005','司马志明','CS','02',18)INSERT INTO Student VALUES('20001','赵薇 ','IS','02',19)2、CourseINSERT INTO Course VALUES('001','数学分析',144)?INSERT INTO Course VALUES('002','普通物理',144)?INSERT INTO Course VALUES('003','微机原理',72)?INSERT INTO Course VALUES('004','数据结构',72)?INSERT INTO Course VALUES('005','操作系统',64)INSERT INTO Course VALUES('006','数据库原理',64)?INSERT INTO Course VALUES('007','DB_Design',48)?INSERT INTO Course VALUES('008','程序设计',56)3、TeachINSERT INTO Teach VALUES('王成钢','男','004',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'CS')? INSERT INTO Teach VALUES('李正科','男','003',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'CS')? INSERT INTO Teach VALUES('严敏 ','女','001',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'MA')? INSERT INTO Teach VALUES('赵高 ','男','004',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'IS')? INSERT INTO Teach VALUES('李正科','男','003',TO_DATE( '2000-02-23', 'YYYY-MM-DD'),'MA')? INSERT INTO Teach VALUES('刘玉兰','女','006',TO_DATE( '2000-02-23', 'YYYY-MM-DD'),'CS')? INSERT INTO Teach VALUES('王成钢','男','004',TO_DATE( '2000-02-23', 'YYYY-MM-DD'),'IS')? INSERT INTO Teach VALUES('马悦 ','女','008',TO_DATE( '2000-09-06', 'YYYY-MM-DD'),'CS')? INSERT INTO Teach VALUES('王成钢','男','007',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'CS')?4、ScoreINSERT INTO Score VALUES('96001','001',77.5)?INSERT INTO Score VALUES('96001','003',89 )?INSERT INTO Score VALUES('96001','004',86 )?INSERT INTO Score VALUES('96001','005',82 )?INSERT INTO Score VALUES('96002','001',88 )?INSERT INTO Score VALUES('96002','003',92.5)?INSERT INTO Score VALUES('96002','006',90 )?INSERT INTO Score VALUES('96005','004',92 )?INSERT INTO Score VALUES('96005','005',90 )?INSERT INTO Score VALUES('96005','006',89 )?INSERT INTO Score VALUES('96005','007',76 )?INSERT INTO Score VALUES('96003','001',69 )?INSERT INTO Score VALUES('97001','001',96 )?INSERT INTO Score VALUES('97001','008',95 )?INSERT INTO Score VALUES('96004','001',87 )?INSERT INTO Score VALUES('96003','003',91 )?INSERT INTO Score VALUES('97002','003',91 )INSERT INTO Score VALUES('97002','004',' ')?INSERT INTO Score VALUES('97002','006',92 )?INSERT INTO Score VALUES('97004','005',90 )?INSERT INTO Score VALUES('97004','006',85 )?INSERT INTO Score VALUES('97004','008',75 )?INSERT INTO Score VALUES('97003','001',59 )?INSERT INTO Score VALUES('97003','003',58 )例1-2: (修改数据库表) 在Student表中增加SEX(C,2) 字段。
实验五 SQL语言数据操纵语言DML

实验五 SQL语言数据操纵语言DML一、实验目的SQL语言的数据操纵功能通过DML(数据维护语言)实现。
DML包括数据查询和数据更新两种数据操纵语句。
其中,数据查询指对数据库中的数据查询、统计、分组、排序等操作;数据更新指数据的插入、更新和删除等数据维护操作。
本次实验了解DML语言的INSERT、UPDATE、DELETE等数据维护语言,掌握在Navicat for MySQL中用DML语言的INSERT、UPDATE、DELETE对表进行数据插入、更新和删除。
二、实验要求1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出对本次实验的总结,下次实验前交实验报告。
三、实验的重点与难点1、重点:(1)用INSERT语句向表中插入数据。
(2)用UPDATE语句更新(修改)表中已有数据。
(3)用DELETE语句删除表中数据。
2、难点:INSERT语句中,使用从子表插入数据的FROM子句。
UPDATE语句和DELETE语句的WHERE子句。
四、仪器设备及用具硬件:投影仪、每位同学分配已连接校园网PC机一台。
软件:本机已安装MySQL 5.5数据库平台。
五、教学过程(一)实验预习(1)熟悉SQL中的INSERT、UPDATE、DELETE语句的格式及所用的关键字含义及用法。
(2)掌握INSERT语句的两种不同插入数据方式。
(3)掌握UPDATE语句和DELETE的一般用法。
(二)实验原理在Navicat for MySQL中使用INSERT语句向表中插入数据。
使用UPDATE 语句更新(修改)表中已有数据。
使用DELETE语句删除表中数据。
实验3 数据操纵语言DML-2015

实验3 数据操纵语言DML实验目的1.熟悉SQL语言中DML的功能。
2.初步了解如何进行查询优化。
3.初步了解SQL语句的查询计划。
实验平台1.OS:Windows XP/72.DBMS:SQL Server 2008实验用时两次上机(4月21号之前提交实验报告)预备知识一、数据操纵语言数据库数据操纵语言DML (Data Manipulation Language),它使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。
DML具体包含查询,删除,更新,插入四种操作。
二、SQLSQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
三、SQL Server 临时表SQL Server包含一个自带的系统数据库——tempdb。
它用来存放用户创建的临时对象。
临时对象分为全局临时对象和区域临时对象。
全局临时对象所有用户可见,区域临时对象仅当前连接对象可见。
每当SQL Server重启后,tempdb数据库会被重新创建。
临时表的创建:临时表的创建与表的创建方法一样,只不过本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符 (##table_name)。
如:CREATE TABLE #Temp (cola INT PRIMARY KEY)将创建一个名为Temp的临时表。
临时表的其他数据操作和表的一致。
实验活动注:请各位同学用SQL语句完成今天实验的所有步骤(系统视图的查看除外),并在实验报告中记录每条语句。
每个操作完成之后,观察相关系统表的改变并分析原因。
一、熟悉SQL语句的DML功能步骤一:创建数据库,建立第二章习题5中的4个表,并插入数据。
《数据库概论》实验报告

《数据库系统概论》实验报告书数据库实验报告专业班级网131学号139074284姓名卓东洋指导教师周兵安徽工业大学计算机科学与技术学院实验一:数据定义语言[ 实验日期 ] 2015 年 11 月 10 日[ 实验目的 ]熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。
[ 实验要求 ]①熟悉Oracle上机环境,掌握Oracle客户端的配置;②建立数据库表,修改数据库表结构,建立、删除索引;[ 实验方法 ]①按照附录中的操作步骤进行客户端的配置;②将实验需求用SQL语句表示;③执行SQL语句;④查看执行结果,如果结果不正确,进行修改,直到正确为止。
[ 实验内容 ]Oracle上机环境以及Oracle客户端的配置参见附录。
1. SQL数据定义语句:例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。
表一:学生表主关键字:SNO表二课程名称表表三:教师授课表表四:学生成绩表例1-2: (修改数据库表) 在Student表中增加SEX(C,2) 字段。
例1-3: (修改列名) 将Student表中列名SEX修改为SSEX。
例1-4: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。
例1-5: (建立索引) 为Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE。
例1-6: (删除索引) 删除索引SC_GRADE。
例1-7: (建立数据库表) 建立数据库表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。
例1-8: (修改数据库表) 删除成绩表Score的参照完整性约束关系。
2 数据操作语言 DML 实验

二、实验内容与步骤: 1、进入 ORACLE 的环境,进入 scott 用户模式(在 sqldeveloper 中使用 scott 用户连 接 Oracle)。 2、用 Create、Insert 语句建立基本表 S、P、J 和 SPJ ,其中:
(6) 请将 S6 向工程项目 J8 供应 500 个 P7 零件的信息加入到供应关系; 意涉及到几个表的添加元组操作?表的添加顺序如何?)
insert into S(SNO) values('S6'); insert into J(JNO) values('J8'); insert into P(PNO) values('P7'); insert into SPJ values('S6','P7','J8','500');
(6) 找出所有供应商的姓名和所在城市; 代码: select SNAME,CITY from S;
(7) 找出所有零件的名称、颜色、重量; 代码: select PNAME,COLOR,WEIGHT from P;
(8) 找出使用供应商 S1 所供应零件的工程号; 代码: select distinct JNO from SPJ where SNO='S1';
代码: create table S( SNO char(3) primary key, SNAME char(10), STATUS char(10), CITY char(10) ); insert into S values ('S1','精益','20','天津'); insert into S values ('S2','盛锡','10','北京'); insert into S values ('S3','东方红','30','北京'); insert into S values ('S4','丰泰盛','20','天津'); insert into S values ('S5','为民','30','上海');
数据库系统概论——数据操纵语言DML实验报告

数据库系统概论——数据操纵语⾔DML实验报告数据库实验报告题⽬:数据库操纵语⾔DML 姓名:李军毅⽇期:2016-4-10实验⽬的1.熟悉SQL语⾔中DML的功能。
2.初步了解如何进⾏查询优化。
3.初步了解SQL语句的查询计划。
实验平台1.OS:Windows XP/72.DBMS:SQL Server 2008实验⽤时两次上机实验内容⼀、熟悉SQL语句的DML功能1.创建数据库,建⽴第⼆章习题5中的4个表,并插⼊数据。
2.完成SQL查询。
3.VIEW。
4.UPDATE和DELETE。
⼆、初步了解查询优化1、配置SQL Server,导⼊dbcourse数据库2、在原始papers表中查询title属性3、在papers表中的title属性列上建⽴unique索引4、在papers表中查询⽂章的作者在authors表中存在且⽂章发表的期刊在journals表中存在的⽂章的org5、提交两个对papers表的查询,⼀个查询输出所有的列,另⼀个查询只输出title列。
三、初步了解查询处理流程实验中出现的问题预备知识⼀、数据操纵语⾔数据库数据操纵语⾔DML (Data Manipulation Language),它使⽤户能够查询数据库以及操作已有数据库中的数据的计算机语⾔。
DML具体包含查询,删除,更新,插⼊四种操作。
⼆、SQLSQL(Structured Query Language)结构化查询语⾔,是⼀种数据库查询和程序设计语⾔,⽤于存取数据以及查询、更新和管理关系数据库系统。
SQL语⾔包括三种主要程序设计语⾔类别的语句:数据定义语⾔(DDL),数据操作语⾔(DML)及数据控制语⾔(DCL)。
三、SQL Server 临时表SQL Server包含⼀个⾃带的系统数据库——tempdb。
它⽤来存放⽤户创建的临时对象。
临时对象分为全局临时对象和区域临时对象。
全局临时对象所有⽤户可见,区域临时对象仅当前连接对象可见。
数据库系统概论实验报告五

山西大学计算机与信息技术学院实验报告图5-1 图5-2例1:当输入Insert into Student1 values (200724108,’王阳’,‘男’, 36, ‘计算机’);建立的触发器执行了其功能,执行结果为例2:create trigger sson studentfor insertasbegindeclare @xh smallint;select @xh=inserted.Sagefrom inserted;if exists(select Sno from student where Sage=@xh) update student set sage=@xh+1 where Sage=@xh; end;当执行以下语句时use TestDBinsert into studentvalues('200515124','zp','男',20,'ma'); 结果中Sage为20的元组都加上了1。
例3:创建触发器如下:触发器所产生的效果:例4:创建触发器:执行SQL语句:结果使student表中的所有元组的sage均变为20:思考题在数据库Company_Data的表"项目数据表"和"员工数据表"中分别创建触发器。
(1)打开查询编辑器。
(2)在查询窗口书写CREATE TRIGGER语句,基于表"员工数据表"创建AFTERINSERT 触发器Tigger_NewEmployeeSalary,将插入员工的工资额限制在5000以内。
use TestDBGOCREATE TRIGGER Trigger_NewEmployeeSalaryON员工数据表AFTER INSERTASIF(SELECT工资FROM inserted)> 5000BEGINPRINT'新员工工资不能超过'ROLLBACKENDGO点执行后触发器创建成功。
《数据库系统概论》实验报告

图 2 选择安装类型(3)查看设置信息。
如图 3 所示,这是拷贝文件之前的最后一个对话框,显示了用户 在安装过程中设定的安装选项:第一项是用户的注册信息;第二项是安装路径;第三项是安 装的组件,显示用户选择的组件。
若要修改这三项的内容,可以点击【上一步】,返回前面 的对话框中修改。
如果设置正确则选择【下一步】进行安装。
图 3 查看设置信息(4)初始化数据库。
一般而言,若用户选择安装了"服务器",在安装的最后,将进行初始化数据库。
用户可以修改初始化的默认选项,点击【确定】,直到初始化进行完毕。
(5)安装结果。
在安装完成后,KingbaseES 中用户选择的组件都装在安装路径下,同时完成注册文件的配置。
并在『开始』│『程序』菜单中生成『KingbaseES V4.1』程序组。
重启后,数据库的监听服务将自动启动,并且修改的环境变量生效。
以上五步就完成了 KingbaseES 的安装。
2.数据库服务的启动和停止。
在正确安装 KingbaseES V4.1 后,数据库服务会在系统启动时自动加载。
如果需要手动地启动和停止数据库服务,可以通过“控制服务器”来进行管理。
启动服务:(1)选择“开始”—〉“程序”—〉“KingbaseES V4.1”—〉“控制管理器”。
(2)在“可用服务器”下拉列表中选择要启动的 KingbaseES 服务器,输入正确的用户名、密码、端口值,点击【启动】按钮。
注意:KLS 初始的用户名和密码分别是“KLS”和“INTERNAL”。
(3)如果用户名、密码、端口正确,可以先点击一下【刷新】按钮,以查看远程服务器是否已经在指定端口上启动;启动与否的状态可以从“KingbaseES 启动状态图标”和【启动】、【停止】按钮的状态知晓。
(4)如果用户名、密码、端口均正确但启动不成功,请检查:远程服务器上是否有一个“kls”(Windows 系统进程名为“KLSW”)的进程存在,如果不存在,请在KingbaseES 的安装目录中找到此文件,启动它。
数据库实验五DML的数据更新

《数据库系统概论》实验报告实验五:DML的数据更新姓名日期实验内容与完成情况:一、实验内容:1.启动数据库服务软件SQL Server 2008的查询分析器,用INSERT语句对表进行插入操作,语法格式如下:Insert Into <表名> [(<属性列1>[,<属性列2>]…)]Values (<常量1>[,<常量2>]…)|子查询;2.用UPDATE语句对表中已有的记录进行修改,语法格式如下:Update <表名> Set <列名>=<表达式>[,<列名>=<表达式>][,…n] [Where <条件>];3.用DELETE语句对表中已有的记录进行删除,语法格式如下:Delete From <表名> [Where <条件>];4、复制数据库表用T-SQL复制一个数据库表以及复制数据库表的一部分。
select…. into…from…二、实验任务1.打开数据库SQL Server 2008的查询分析器,用INSERT语句对表插入记录查询分析器窗体下完成以下题目,分别运行,观察结果(1)将一个新学生记录(学号:201615118;姓名:陈冬;性别:男;所在系:IS;年龄:18)插入到Student表中。
insertinto Student(Sno,Sname,Ssex,Sdept,Sage)values('201615118','陈冬','男','IS',18);(2)插入一条选课记录(‘201615118’,‘1’)insertinto Sc(Sno,Cno)values('201615118','1');(3)对每个系求学生的平均年龄,并把结果存入表Deptage create table Deptage(Sdept char(15),Avgage SMALLINT);insertinto Deptage(Sdept,Avgage)select Sdept,AVG(Sage)from Studentgroup by Sdept;(1)将学生201615118的年龄改为22岁。
试验四:数据操纵(DML)

18)删除信管系不及格学生的修课记录。
实验结果(结论及
分析)
掌握了Select语句的语法结构
教师
评语
在sql查询分析器窗口中选择要操作的数据库如sc数据查询sc表中的学生的学号消除取值相同的行查询年龄不在2023之间的学生姓名所在系和年龄查询名字中第2个字为小或大字的学生的姓名和学号查询全体学生的信息查询结果按所在系的系名升序排列同一系的学生按年龄降序排列10计算某号学生的考试总成绩之和
实验项目(四) —预习报告
5)查询计算机系全体学生的姓名。
6)查询年龄不在20~23之间的学生姓名、所在系和年龄
7)查询姓‘张’的学生的详细信息
8)查询名字中第2个字为‘小’或‘大’字的学生的姓名和学号
9)查询全体学生的信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列
10)计算某号学生的考试总成绩之和。
11)统计每门课程的选课人数,列出课程号和人数。
分组
情况
何威、李苗苗、杨德龙、孟炜东、杨琦
成绩
实验步骤(算法、代码、方法)
1)启动SQL Server查询分析器,打开“SQL查询分析器”窗口。
在“SQL查询分析器”窗口中选择要操作的数据库,如“S_C”数据库。
2)查询全体学生的学号与姓名
3)查询全体学生的记录
4)查询SC表中的学生的学号(消除取值相同的行)
项目
名称
实验
目的
及
要求
掌握SELECT语句的基本用法
实验
内容
及
原理
1)使用查询分析器完成对实验3建立的基本表的简单查询。
2)在查询分析器中输入查询语句,并进行调试,给出运行结果。
数据库创建与数据操纵实验报告

Cpno
char
Ccredit
smallint
not null
『主码为Cno;外码为Cpno,被参照表是Course』
SC表
属性
类型Байду номын сангаас
约束条件
Sno
char
not null
Cno
char
not null
Grade
smallint
not null
『主码由Sno和Cno共同构成
外码是Sno,被参照表是student
实验报告
学院(系)名称:计算机与通信工程学院
姓名
**
学号
2010****
专业
计算机科学与技术(中加)
班级
中加*班
实验项目
数据库创建与数据操纵
课程名称
数据库系统概论
课程代码
*********
实验时间
2012.11.2
实验地点
主校区7-215
批改意见
成绩
教师签字:
实验环境(软、硬件环境)
软件环境:Windows 2000
---执行结果:
2、连接查询
1)等值连接查询
Eg:查询每个学生及其选修课程的情况
2)自身连接
Eg:查询每一门课的间接先修课
---执行结果:
3)外连接
4)复合条件连接
Eg:查询选修了1号课程且成绩在90分以上的所有学生
三、嵌套查询
---执行结果:
************数据更新操作************
相关信息:建立一个学生-选课(Student)数据库,其中包含3个关系模式:学生(student)、课程(Course)、选课(SC),学生表由学号(Sno),姓名(Sname),性别(Ssex),年龄(Sage),所在系别(Sdept)组成;课程表由课程号(Cno),课程名(Cname),先行课(Cpno),学分(Ccredit)组成;选课表由学生号(Sno),课程号(Cno),成绩(Grade)组成。
实验四 SQL语言的DML

实验四SQL语言的DML一、实验目的SQL的数据操纵功能通过DML(数据库操作语言)实现。
DML包括数据查询和数据更新两种数据操作语句。
其中,数据查询指对数据库中的数据查询、统计、分组、排序等操作;数据更新指数据的插入、删除和修改等数据维护操作。
本次实验了解DML语言的INSERT、UPDATE、DELETE对数据的操作,学会SQL Server 2000的查询分析器中用DML语言对表中的数据进行插入、删除和修改。
本实验需2学时二、实验内容1.启动数据库服务软件SQL Server 2000的查询分析器,用INSERT语句对表进行插入操作,语法格式如下:Insert Into <表名> [(<属性列1>[,<属性列2>]…)]Values (<常量1>[,<常量2>]…);2.用UPDATE语句对表中已有的记录进行修改,语法格式如下:Update <表名> Set <列名>=<表达式>[,<列名>=<表达式>][,…n] [Where <条件>];3.用DELETE语句对表中已有的记录进行删除,语法格式如下:Delete From <表名> [Where <条件>];三、实验任务1.打开数据库SQL Server 2000的查询分析器,用INSERT语句对表插入记录查询分析器窗体下完成以下题目,分别运行,观察结果(1)将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18)插入到Student表中。
(2)插入一条选课记录(‘95020’,‘1’)(3)对每个系求学生的平均年龄,并把结果存入表Deptage2、利用查询分析器用UPDA TE语句更改表中数据。
完成以下题目,分别运行,观察结果。
(1)将学生95001的年龄改为22岁。
数据库-实验3-实验报告

实验三数据管理操作一、实验目的1.熟悉大型数据库实验环境,以MS SQL SERVER为例。
2.掌握DDL语句,使用DDL语句完成数据表的创建。
3.掌握DML语句,使用DML语句完成数据的插入、修改和删除4.掌握MS SQL SERVER的备份和还原5.掌握MS SQL SERVER的权限分配二、实验内容(1)用DDL(数据定义语句中的Create database)创建一个新数据库FlightDB,数据库文件的设置都可以使用默认值。
(2)用DDL(数据定义语句中的Create Table)创建三张表1.航班表(hbb)包括如下字段:航班号(hbh):字符型,6位定长,主码,以CZ、CA、FM开头始发地(sfd):字符型,可变长统一编码字符型20位长,非空目的地(mdd):字符型,可变长统一编码字符型20位长,非空原价(YJ):整型,非空,必须>=0创建表语句如下所示:创建结果有:2.乘客表(Ckb)包括如下字段:身份证号(sfzh):字符型,20位变长字符串,主码姓名(xm):可变长统一编码字符型,10位长创建语句如下:创建结果如下:3.售票表(spb)包括如下字段:航班号(hbh):主码身份证号(sfzh):主码起飞日期(qfrq):日期时间型,非空售票日期(sprq):日期时间型,非空,默认值为当前时间实价(sj):整型,非空其中:航班号为引用航班表的外码,身份证号为引用乘客表的外码。
创建语句如下所示:外码语句如下:创建结果如下:(3)用DML(数据操纵语句中的Insert)在hbb表中插入如下数据CZ1301,北京,上海,1200CZ1209,南京,昆明,1300CZ1502,上海,北京,1200CA1130,成都,北京,1800CA1230,拉萨,广州,1500CA1401,广州,南京,1600插入语句如下所示:插入结果如下:(4)对数据库进行一次完整备份,备份名为BackupFull(5)用DML(数据操纵语句中的Insert)在乘客表和售票表中插入如下数据代码乘客91201 王曼91202 张飞91203 刘羽蕴91204 王若雨91205 张蕊插入语句如下所示:插入结果:航班号乘客起飞售票实价CZ1301 91201 2001-12-20 2001-11-20 900 CZ1209 91202 2001-12-20 2001-11-20 800 CZ1502 91201 2002-5-8 2002-5-2 1000 CA1230 91201 2001-12-5 2001-12-4 1100 CA1401 91202 2002-4-5 2002-4-4 1200 CZ1301 91203 2001-12-20 2001-11-20 900 CZ1209 91204 2001-12-20 2001-11-20 800 CZ1502 91205 2002-5-8 2002-5-2 1000 插入语句如下:插入结果:(6)对数据库进行一次差异备份,备份名为BackupAdd1(7)用DML(数据操纵语句中的Update)将所有目的地是北京的航班的原价提高10%语句如下所示:结果如下:(8)用DML(数据操纵语句中的Delete)将“张飞”乘客删除,注意同时删除售票记录和乘客基本信息。
实验二DML语言一数据插入、修改和删除

实验二 DML 语言一(数据插入、修改和删除)一、实验目的及要求:熟练掌握基本表的插入、删除与修改,为后继学习作准备。
二、实验任务:1.了解并掌握SQL 查询分析器及企业管理器的使用;2.掌握基本表的插入、删除与修改。
三、操作要点:1.启动SQL 查询分析器2.掌握插入、删除与修改,命令关键词分别是INSERT 、DELETE 和UPDATE四、注意事项:1.注意每次对表的修改,命令执行完后要查看表的变动刷新表。
2.特别注意在执行插入、删除与修改等更新操作时,要保证数据的完整性。
3.SQL Server 2000 增加了删除属性的命令。
五、实验学时:2学时六、实验重点及难点1.T-SQL 语句对基本表的定义进行删除与修改,并插入基本表数据。
2.T-SQL 语句对数据库操作的灵活控制功能。
七、实验步骤:1.启动SQL 查询分析器;2.选择SQL SERVER 后,按确认;3.选择University 数据库;4.验证如下例题:4.1 修改基本表①向基本表Students 中增加“入学时间”属性列,其属性名为Sentrancedate ,数据类型为DATETIME 型。
②将Sage(年龄)的数据类型改为SMALLINT 型。
③删除Sname(姓名)必须取唯一值的约束。
④将属性列Sentrancedate 从Students 表中删除。
说明:⑴ 请同学们举一反三,通过增加、删除、修改其它字段,以及修改约束条件来了解修改基本表语句的用法。
表5.3 关系Students表5.4 关系Courses4.2 删除Students表。
注意:此处可以对比truncate table命令的使用,以及与后面delete命令的差别。
说明:此表删除后,请立即将其建立起来,并恢复原有数据,以便后面的例子使用。
如删除时出现问题,应分析问题原因,并找出解决办法。
4.3 向表中添加元组①将一个学生元组(S01,李大平,男,20,机械)添加到基本表Students中,观察执行结果。
DML(数据操纵语言)

DML(数据操纵语⾔)1.概念(C)数据操纵语⾔ DML (Data Manipulation Langua)是SQL语⾔的⼀个分类,⽤于对表的内容或者说数据进⾏增、删、改、查等操作。
通过以下⼏个关键字实现:SELECT(查询) 、INSERT(插⼊)、 UPDATE(更新修改)、 DELETE(删除)2.insert(插⼊):(A)2.1 作⽤:往表中插⼊数据。
2.2 ⽅式:1.元祖值式插⼊(⼀次插⼊⼀⾏)语法:insert into 表(列1,列2...列n) values(值1,值2...值n);例:--⼀次插⼊⼀条记录insert into emp (empno,ename,sal,deptno) values(9527,'华安',500,40);--需要往表中所有列都插⼊数据时,表后⾯的列可以不写insert into emp values(9528,'秋⾹',null,9527,sysdate,100,null,40);2.查询结果式(将⼦查询的结果插⼊到表中)语法:insert into 表名(⼦查询)例:--⾸先创建⼀个emp的临时复制表⽤于实验操作create table emp_temp as select*from emp where1=2;--将⼦查询的结果插⼊到表中insert into emp_temp (select*from emp);3.delete(删除):(A)3.1 作⽤:删除表中的数据。
3.2 语法:delete from 表名 where 过滤条件(删除满⾜条件的)例:--from 可以省略不写delete emp_temp where empno=9528;--没有 where 过滤条件就会删除所有数据delete emp_temp;4.update(更新):(A)4.1 作⽤:修改表中的数据。
4.2 语法:update 表名 set 列1=值1,列2=值2,...,列N=值N where 过滤条件(判断修改哪⼀条记录)例:--给编号为9527的涨⼯资20%,这⾥没有过滤条件的话就变成给所有⼈涨20%updata emp_temp set sal=sal*1.2where empno=9527;5.事务(B)5.1 概念:事务(Transaction)是⼀个操作序列。
数据库系统概论实训报告

一、实训目的通过本次数据库系统概论实训,使学生对数据库系统基本概念、原理、技术和应用有深入的理解,掌握数据库系统设计和实现的基本方法,提高数据库系统应用能力。
二、实训内容1. 数据库系统基本概念(1)数据库:存储在计算机系统中长期存取的数据集合,具有数据结构化、共享性高、冗余度低、易于扩充等特点。
(2)数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
(3)数据模型:用于抽象、表示和处理现实世界中具体的人、物、活动、概念的工具,分为概念模型、逻辑模型和物理模型。
2. 数据库系统设计(1)需求分析:了解用户需求,确定系统功能、性能、安全等要求。
(2)概念结构设计:使用E-R图描述实体、属性和实体间的关系。
(3)逻辑结构设计:将概念模型转换为逻辑模型,如关系模型。
(4)物理结构设计:将逻辑模型转换为物理模型,如数据库表结构设计。
3. 数据库系统实现(1)数据库表设计:根据逻辑结构设计,创建数据库表,包括字段类型、长度、约束等。
(2)视图设计:根据实际需求,创建视图,实现数据查询、统计等功能。
(3)存储过程和触发器设计:提高数据库性能,实现业务逻辑。
(4)数据备份与恢复:确保数据安全,防止数据丢失。
4. 数据库系统应用(1)数据查询:使用SQL语句进行数据查询,如SELECT、WHERE、GROUP BY等。
(2)数据插入、更新、删除:使用SQL语句进行数据操作,如INSERT、UPDATE、DELETE等。
(3)数据库安全与权限管理:设置用户权限,保证数据安全。
三、实训过程1. 安装数据库管理系统:使用Heidisql图形化工具,安装MySQL数据库管理系统。
2. 创建数据库:创建名为“EDUC”的数据库,用于存放学生、课程、成绩等信息。
3. 设计数据库表结构:根据需求分析,设计学生表、课程表、成绩表等表结构。
4. 创建视图:根据需求,创建视图,如学生课程视图、成绩排名视图等。
数据库实验报告(实验五)

实验五 SQL语言数据操纵语言DML一、实验内容学会运用SQL语句:(一)用INSERT语句向表中插入数据。
(二)用UPDATE语句更新(修改)表中已有数据。
(三)用DELETE语句删除表中数据。
具体步骤如下:1.启动Navicat for MySQL,在MySQL –新建连接中完成连接参数配置。
2.登录到本地数据库服务器后,连接到test数据库上。
3.首先用Create Table语句建立test表,test表定义如下所示:4.用INSERT语句对表test,插入如下6条记录:该插入语句如下:建立的表格如下:5.再用Create Table语句建立test_temp表,test_temp表定义如下所示:6.用INSERT语句对表test_temp,插入如下3条记录:建立的test_temp表格如下:7.用INSERT INTO ... SELECT ... FROM语句,将test_temp表中的数据,插入到test 表中。
将test_temp插入到test表格后:8.用UPDATE语句将test表中年龄小于等于20的数据,将成绩更新为原来的成绩加5分。
运用update更新语句如下:更新后的test表格:9.用UPDATE语句将test表中居住在南福苑所有学生的年龄减少1岁。
更新后的表格如下:10.用DELETE语句将test表中年龄大于等于21并且成绩大于等于500的学生数据删除掉。
运用delete删除语句如下:删除后的表格:11.用DELETE语句将test表中成绩小于550并且居住在重邮宿舍的学生数据删除掉。
最后得到的表格:二、遇到的问题及解决在该实验中,我们做到第九条时遇到了困难,不知道怎么对所有居住于南福苑同学进行操作。
最后在老师的帮助下,我们运用了通配符,对该项进行了操作。
但我的,在运行时还是出了错,最后发现都是空格惹的祸,我将地址前面不小心加了空格,但在运用select语句时没有考虑空格,导致出了错,最后改了,成功将实验做出。
实验三数据库dml语句操作实验(1)

实验三数据库dml语句操作实验(1)实验三数据库DML语句操作实验实验学时:2一、实验目的:数据库更新操作是SQL语句的重要组成部分,通过试验,加深学生对数据更新操作基本概念的理解与掌握,学会使用SQL数据操纵语言插入、修改和删除表中记录,体会数据完整性约束的作用,加深对数据完整性约束的理解,从而达到灵活应用的目的。
二、实验内容及要求:试验所使用的数据库表结构如下:(一 )插入记录(Insert into)1、单记录插入操作:为每个表设计一组记录(包括满足完整性约束和不满足完整性约束的),用insert命令插入表中,观察命令执行结果。
例如:向dept表插入下面5单条记录jsj 计算机系 3370001 励志楼dx 电信系 3370002 励志楼jsjxy 计算机系 Null Null (不满足系名称唯一约束)null 机电系 3370005 Null(不满足主码非空约束)jsjxy Null ‘a2334’ Null(不满足电话为数字约束)向class表插入下面3单条记录班级编号班级名称所在系编号12计本1班 jsj13计本1班 jsj2013软本 13软本1班 jsj向Student表插入下面5单条记录01 张三男 1702 李四男 1801 王武男 1802 郑艳女 1603 刘莉女 1804张国男 2010JS1 1705李强男 2010JS1 182013JS2108003李刚男 2010JS2 18(学号超长)03王丽女 2010JS2 18(学号重复)向Course插入4门课程信息C001 数据库原理 NULLC002 自动控制原理 3C003 专业英语 2C004 数字电路 32、多条记录的插入操作(1)将Student表的数据批量插入##Student中(2)向Student表插入一条记录学号:06 姓名:李新性别:男班级:与在同一班年龄:与05的年龄相同(3)学号为05的学生,选修了所有的课程,每门功课都还没有成绩,请将该同学的选课记录插入到选课表中。
数据操纵语句实验报告

一、实验目的通过本次实验,使学员熟练掌握SQL语言中的数据操纵语句,包括INSERT、UPDATE和DELETE,从而能够对数据库中的数据进行插入、更新和删除操作。
同时,了解数据操纵语句在实际应用中的注意事项,提高数据库操作技能。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 实验工具:MySQL Workbench三、实验内容1. 数据插入(1)创建一个名为“student”的表,包含以下字段:字段名 | 类型 | 说明--- | --- | ---id | int | 学生编号name | varchar(50) | 学生姓名age | int | 学生年龄gender | varchar(10) | 学生性别(2)使用INSERT语句向“student”表中插入以下数据:id | name | age | gender--- | --- | --- | ---1 | 张三 | 20 | 男2 | 李四 | 21 | 女3 | 王五 | 22 | 男2. 数据更新(1)修改id为2的学生的性别为“女”。
(2)将所有学生的年龄增加1岁。
3. 数据删除(1)删除id为3的学生记录。
(2)删除性别为“男”的所有学生记录。
四、实验步骤1. 创建数据库和表```sqlCREATE DATABASE IF NOT EXISTS testdb;USE testdb;CREATE TABLE IF NOT EXISTS student (id INT PRIMARY KEY,name VARCHAR(50),age INT,gender VARCHAR(10));```2. 插入数据```sqlINSERT INTO student (id, name, age, gender) VALUES (1, '张三', 20, '男'); INSERT INTO student (id, name, age, gender) VALUES (2, '李四', 21, '女'); INSERT INTO student (id, name, age, gender) VALUES (3, '王五', 22, '男'); ```3. 更新数据```sqlUPDATE student SET gender = '女' WHERE id = 2;UPDATE student SET age = age + 1;```4. 删除数据```sqlDELETE FROM student WHERE id = 3;DELETE FROM student WHERE gender = '男';```五、实验结果与分析1. 在插入数据时,应确保插入的数据符合表中字段的类型和长度要求。
实验二:DML语言的使用

实验二 DML语言的使用学时 2 课程名称网络数据库技术09级信管班级学号姓名目的1.掌握复杂条件的查询语句的使用2.掌握使用Insert、Update、Delete语句对表的操作一、实验环境Windows2000操作系统和SQL Server2005数据库服务器。
二、实验内容1.查询课程编号、课程名称、授课教师以及上课时间,并把结果标题改为中文。
2.查询2学分的’Linux操作系统’课程的上课时间。
3.检索课程号为’004’、‘007’、‘013’的课程号和课程名称。
4.查询course表的所有信息,并要求显示报名人数占限选人数的百分比。
5.在课程表中查询课程名字中含有S、L、J、A字母的课程信息。
6.查询课程表中未输入任课教师的课程信息。
7.使用compute by显示每名同学的选课情况(学生姓名和课程名),并显示每个同学报几门选修课程。
8. 某学校的教务处要了解学生第1自愿和第2自愿的选课情况,内容包括学号、姓名、课程名称、教师和学分。
要求查询结果按照学号的由小到大排序;教务处还想了解每个系开设的选修课程门数以及全校开设选修课程总门数。
请帮助实现查询。
(1)(2)(3)9.向class表中输入一行数据:“20040001”,“01”,“04数据库”10.把course表中报名人数超过平均报名人数的‘人文’类课程的课程号、课程名称、课程类别、报名人数生成一个新表itcourse。
11.学号为“00000001”的学生将课程编号为“002”的课程改为第2自愿。
12.建筑工程系和旅游系将他们部门开设的选修课程的限制选课人数增加了10人。
13.朱川同学取消了“Linux操作系统”的选修课,请把他的选课信息删掉。
14. 将“00电子商务”班的姓名为“林斌”的学生选修的“Java技术的开发应用”课程修改为“Linux 操作系统”。
15.写出在实训过程中涉及到的知识点及难点,遇到的问题和解决的办法,有哪些收获。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库实验报告题目:数据库操纵语言DML 姓名:李军毅日期:2016-4-10实验目的1.熟悉SQL语言中DML的功能。
2.初步了解如何进行查询优化。
3.初步了解SQL语句的查询计划。
实验平台1.OS:Windows XP/72.DBMS:SQL Server 2008实验用时两次上机实验内容一、熟悉SQL语句的DML功能1.创建数据库,建立第二章习题5中的4个表,并插入数据。
2.完成SQL查询。
3.VIEW。
4.UPDATE和DELETE。
二、初步了解查询优化1、配置SQL Server,导入dbcourse数据库2、在原始papers表中查询title属性3、在papers表中的title属性列上建立unique索引4、在papers表中查询文章的作者在authors表中存在且文章发表的期刊在journals表中存在的文章的org5、提交两个对papers表的查询,一个查询输出所有的列,另一个查询只输出title列。
三、初步了解查询处理流程实验中出现的问题预备知识一、数据操纵语言数据库数据操纵语言DML (Data Manipulation Language),它使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。
DML具体包含查询,删除,更新,插入四种操作。
二、SQLSQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
三、SQL Server 临时表SQL Server包含一个自带的系统数据库——tempdb。
它用来存放用户创建的临时对象。
临时对象分为全局临时对象和区域临时对象。
全局临时对象所有用户可见,区域临时对象仅当前连接对象可见。
每当SQL Server重启后,tempdb数据库会被重新创建。
临时表的创建:临时表的创建与表的创建方法一样,只不过本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符 (##table_name)。
如:CREATE TABLE #Temp (cola INT PRIMARY KEY)将创建一个名为Temp的临时表。
临时表的其他数据操作和表的一致。
实验内容一、熟悉SQL语句的DML功能1.创建数据库,建立第二章习题5中的4个表,并插入数据。
如下图所示:create table S(Sno varchar(5)primary key,Sname varchar(10)null,Status int null,City varchar(10)null);create table P(Pno varchar(5)primary key,Pname varchar(10)null,Color varchar(10)null,Weight int null);create table J(Jno varchar(5)primary key,Jname varchar(10)null,City varchar(10)null);create table SPJ(Sno varchar(5)not null,Pno varchar(5)not null,Jno varchar(5)not null,Qty int null,primary key(Sno,Pno,Jno),foreign key (Sno)references S(Sno), foreign key (Pno)references P(Pno), foreign key (Jno)references J(Jno), );插入数据:insert into Svalues('S1','精益','20','天津'),('S2','盛锡','10','北京'), ('S3','东方红','30','北京'),('S4','丰泰盛','20','天津'),('S5','为民','30','上海');insert into Pvalues('P1','螺母','红','12'),('P2',',螺栓','绿','17'),('P3','螺丝刀','蓝','14'),('P4','螺丝刀','红','14'),('P5','凸轮','蓝','40'),('P6','齿轮','红','30');insert into Jvalues('J1','三建','北京'),('J2','一汽','长春'),('J3','弹簧厂','天津'),('J4','造船厂','天津'),('J5','机车厂','唐山'),('J6','无线电厂','常州'),('J7','半导体厂','南京');insert into SPJvalues('S1','P1','J1','200'),('S1','P1','J3','100'),('S1','P1','J4','700'),('S1','P2','J2','100'),('S2','P3','J1','400'),('S2','P3','J2','200'),('S2','P3','J4','500'),('S2','P3','J5','500'),('S2','P5','J1','400'),('S2','P5','J2','100'),('S3','P1','J1','200'),('S3','P3','J1','200'),('S4','P5','J1','100'),('S4','P6','J3','300'),('S4','P6','J4','200'),('S5','P2','J4','100'),('S5','P3','J1','200'),('S5','P6','J2','200'),('S5','P6','J4','500');2.完成SQL查询。
1)求供应工程J1零件P1的供应商号码SNO。
select Snofrom SPJwhere Jno='J1'and Pno='P1';2)求供应工程J1零件为红色的供应商号码SNO,并按其供应数量之和降序排列显示。
select Snofrom SPJ,Pwhere Jno='J1'and SPJ.Pno=P.Pno and P.Color='红'order by Qty DESC;3)求没有使用天津供应商生产的红色零件的工程号。
select distinct Jnofrom SPJwhere Jno not in(select Jnofrom SPJ,S,Pwhere SPJ.Sno=S.Sno and S.City='天津'and SPJ.Pno=P.Pno and P.Color='红');4)求至少用了供应商S1所供应的全部零件的工程号。
select distinct Jnofrom SPJwhere Pno in(select Pnofrom SPJwhere Sno='S1');5)求对所有工程都提供了同一零件的供应商号码。
select distinct Snofrom SPJ S1where not exists(select*from Jwhere not exists(select*from SPJ S2where S1.Sno=S2.Sno and S1.Pno=S2.Pno and J.Jno=S2.Jno)6)求满足下面要求的供应商号码,该供应商供应给某个工程零件P1的数量大于等于这个工程被供应的零件P1的平均数量。
select x_snofrom (select Sno,AVG(Qty)from SPJwhere Pno='P1'group by Sno)as X(x_sno,x_avg),(select SUM(Qty)from SPJwhere Pno='P1')as Y(y_sum)where Y.y_sum>=X.x_avg;7)求至少有一个供应商或工程所在的城市。