实验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个表,并插入数据。

插入单条元组的sql语法结构:INSERT INTO <表名>V ALUES (<属性值1> [, <属性值2>…] )eg: INSERT INTO UnitMeasureV ALUES (N'FT', N'Feet', '20080414');插入多条元组的sql语法结构:INSERT INTO <表名>V ALUES (<属性值1> [, <属性值2>…] )[,(<元组2>)…]eg: INSERT INTO UnitMeasureV ALUES (N'FT2', N'Square Feet ', '20080923'), (N'Y', N'Yards', '20080923');SPJ表(供应情况表)注:指定(SNO,PNO,JNO)为PRIMARIRY KEY。

并为表SPJ的属性列SNO、PNO、JNO分别添加外键约束,参照关系如下表所示:步骤二:完成以下SQL查询(注:结果注意去重)Select语句的sql语法结构:SELECT [ ALL | DISTINCT ] <目标列表达式> [, <目标列表达式>]…FROM <表名或视图名> [, <表名或视图名>]…[WHERE <条件表达式>][GROUP BY <列名1> [HA VING <条件表达式>]][ORDER BY <列名2> [ASC | DESC]];1.求供应工程J1零件P1的供应商号码SNO。

2.求供应工程J1零件为红色的供应商号码SNO,并按其供应数量之和降序排列显示。

3.求没有使用天津供应商生产的红色零件的工程号。

4.求至少用了供应商S1所供应的全部零件的工程号。

5.求对所有工程都提供了同一零件的供应商号码。

6.求满足下面要求的供应商号码,该供应商供应给某个工程零件P1的数量大于等于这个工程被供应的零件P1的平均数量。

7.求至少有一个供应商或工程所在的城市。

步骤三:VIEW。

创建视图语句的sql语法结构:CREATE VIEW <视图名> [(<列名> [,<列名>]…)]AS <子查询>[WITH CHECK OPTION];1.为‘三建’工程项目建立一个供应情况视图,包括供应商代码SNO、零件代码PNO、供应数量QTY。

2.针对上述视图,找出三建工程项目使用的各种零件代码及其数量;3.找出供应商S1的供应情况。

步骤四:UPDATE和DELETE。

Update语句的sql语法结构:UPDATE <表名>SET <列名>=<表达式> [, <列名>=<表达式>]…[WHERE <条件表达式>];Delete语句的sql语法结构:DELETEFROM <表名>[WHERE <条件表达式>];1. 将所有工程中红色零件的使用数量加100。

2. 删除工程J1和J2都使用的零件及相关记录。

(提示:通过建立临时表的方式删除,临时表的创建方式参见“预备知识”部分)二、初步了解查询优化使用提供的dbcourse数据库,进行大数据量上的数据查询操作,并通过修改查询语句和在表上建立索引等机制,优化查询的效率。

在实验报告中记录修改的查询语句以及修改原因、增加的索引机制以及增加原因、并加每一步优化后的查询结果截图说明。

步骤一:配置SQL Server,导入dbcourse数据库(注:若dbcourse数据库已存在,这一步可跳过)在SSMS界面对象资源管理器中,右键选择数据库,在属性中配置数据库的最大服务器内存为2G。

附件中的dbcourse.bak是数据的备份文件,请根据之前练习过的还原数据库的方法从这个备份文件中还原数据库,之后在这个数据库上进行操作。

在还原数据库时,选择有足够大空间的磁盘用来还原数据库、存放数据库文件。

数据库表的说明如下:步骤二:在原始papers表中查询title属性语句1:在papers表中查询所有列的title,并按title排序输出SQL语句:select title from papers order by title;语句2:在papers表中查询title大于kkk字符串的titleSQL语句:select title from papers where title > 'kkk';观察并记录这两个SQL语句的执行时间。

步骤三:在papers表中的title属性列上建立unique索引建立索引:create unique index index_name on papers(title);再次执行步骤二中的查询语句,并记录和查看这次系统执行的时间变化。

步骤四:在papers表中查询文章的作者在authors表中存在且文章发表的期刊在journals表中存在的文章的org:SQL语句1:select distinct from papers where papers.author in(select from authors) and papers.journal in(select from journals)SQL语句2:select distinct from papers, journals, authorswhere papers.author = and papers.journal =在SSMS中查看这两个查询语句的执行计划,分析两个查询计划的不同,说明semi join和inner join的区别。

步骤五:提交两个对papers表的查询,一个查询输出所有的列,另一个查询只输出title 列。

提交查询:select title from papers;记录查询所需时间,再次提交查询:select * from papers;记录查询时间。

猜测响应时间不同的原因。

三、初步了解查询处理流程使用提供的dbcourse数据库,进行数据查询操作,并通过查看语句的执行计划,分析各查询子句的处理顺序。

用伪码的形式叙述出这一处理过程。

eg:select title from papers;处理流程为:扫描papers表(即执行from子句)--->>挑选出需要的字段title(即执行select子句)注:上例简单地用文字描述了语句的处理过程,在实验报告中请尽可能详细地用伪码形式叙述下列语句的处理过程。

请结合查询语句的执行计划进行分析。

SQL语句1:在papers表中查询title大于kkk字符串的titleselect title from papers where title > 'kkk';SQL语句2:在papers表中查询文章的作者在authors表中存在且文章发表的期刊在journals表中存在的文章的orgselect distinct from papers, journals, authors where papers.author = and papers.journal = 实验要求1.完成上述实验过程,在上机过程中演示;2.了解和使用SQL数据操纵语言进行数据库的查询、添加、删除和修改操作;3.了解和使用SQLServer 的临时表;4.尝试在dbcourse上进行大数据量上的sql查询操作,并进行可能的查询优化。

5.通过查看SQL的物理执行计划,初步了解逻辑查询计划。

6.记录实验过程,并对各活动(包括错误活动)作分析说明。

合集下载

DML语言

DML语言

数据库(MySQL)操作语言(DML)默写标准(1.0)1DML的定义(2)DML是结构化查询语言;SQL (结构化查询语言)是用于执行查询的语法。

2DML的构成(4)SQL 语言也包含用于更新、插入和删除记录的语法。

查询和更新指令构成了SQL 的DML 部分:1.SELECT - 从数据库表中获取数据2.UPDATE - 更新数据库表中的数据3.DELETE - 从数据库表中删除数据4.INSERT INTO - 向数据库表中插入数据3DML的基础语句3.1SELECT语句(2)1. SELECT *FROM table_name;2. SELECT column_name FROM table_name.3.2INSERT语句(1)INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)3.3UPDATE语句(1)UPDATE table_name SET column_name = 新值WHERE 列名称=某值3.4DELETE语句(1)DELETE FROM table_name WHERE column_name = 值3.5DISTINCT条件语句(1)关键词DISTINCT用于返回唯一不同的值;SELECT DISTINCT user_name FROM usertable;当有多个列时,必须满足选择的全部列中的数据都相同时,才能进行去重,若只是满足单一列数据相同,则不能进行去重。

3.6WHERE条件语句(1)SELECT column_name FROM table_name WHERE 列运算符值;3.7And或or条件语句(1)And 满足所有条件,Or 满足任意条件。

SELECT * FROM table_name WHERE (列1=值1 OR 列1 =值2) AND 列2=值3;3.8Order by排序条件语句(2)排序条件包括ASC(升序)和DESC(降序)1.SELECT column_name1,column_name2 FROM table_name ORDER BY column_name1 (默认ASC);2.SELECT column_name1, column_name2 FROM table_name ORDER BY column_name2 DESC;4DML的高级语法4.1TOP条件语句(1)SELECT TOP number|percent(百分比) column_name(s) FROM table_name;(TOP在MySql中不能用)4.2LIMIT条件语句(3)1.SELECT user_id,user_name FROM usertable LIMIT 4;(在MYSQL中使用)(如果有一个参数的话,相当于偏量值为0,参数为需要的条数)2.SELECT user_id,user_name FROM usertable LIMIT 5,5;(如果有两个参数的话,第一个参数为偏量值,从0开始,第二个参数为需要的条数)3.SELECT user_id,user_name FROM usertable LIMIT 5,-1;(如果第二个参数为-1的话,指的是从偏量值到最后条数)4.3LIKE操作符(1)SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;(pattern是和下面的通配符一起使用)4.4通配符(3)通配符有三种:%、_和[charlist]1.'q%';(以q开头)'%w';(以w结尾)'%wyw%';(%可以配比“”)'%wyw%';(中间有wyw的字符串都匹配)2.'_wyw';(_匹配单一字符)3.'[qw]%';(以q或w开头)(在MySql中不能使用)4.5IN操作符(1)IN 操作符允许我们在WHERE 子句中规定多个值。

DML(Data Manipulation Language)数据操纵语言

DML(Data Manipulation Language)数据操纵语言
DML
DML(Data Manipulation Language)数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据。
如insert,delete,update,select(插入、删除、修改、检索)等都是DML.
INSERT 陈述式
用来在资料表或检视表中插入一列资料。例如,如果要在Customer_Data 资料表中新增一个客户,可使用类似以下的 INSERT 陈述式:
INSERT INTO Customer_Data
VALUES (777, "Frankie", "Stein", "4895873900")
注意:如果使用这种形式的 INSERT 陈述式,但被插入的数值次序上与建立资料表时不同,数值将被放入错误的资料行。如果资料的型别与定义不符,则会收到一个错误讯息。
E 陈述式
DELETE 陈述式用来删除资料表中一列或多列的资料,您也可以删除资料表中的所有资料列。要从 Customer_Data 资料表中删除所有的列,您可以利用下列陈述式:
DELETE FROM Customer_Data
或
DELETE Customer_Data
UPDATE Customer_Data
SET phone= 02145896352
WHERE customer_id = 100;
与之相关的概念:DDL
DDL(Data Definition Language)语句用语定义和管理数据库中的对象,如Create,Alter和Drop.
UPDATE陈述式
用来对资料表中的一行或多行进行数据的修改,您也可以修改资料表中的所有资料行。要从Customer_Data资料表中更改所有行,您可以利用下列陈述式:

DML语言(数据操纵语言)

DML语言(数据操纵语言)

DML语⾔(数据操纵语⾔)#DML语⾔/*数据操作语⾔:插⼊:insert修改:update删除:delete*/#⼀、插⼊语句#⽅式⼀:经典的插⼊/*语法:insert into 表名(列名,...) values(值1,...);*/SELECT * FROM beauty;#1.插⼊的值的类型要与列的类型⼀致或兼容INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)VALUES(13,'唐艺昕','⼥','1990-4-23','1898888888',NULL,2);#2.不可以为null的列必须插⼊值。

可以为null的列如何插⼊值?#⽅式⼀:INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)VALUES(13,'唐艺昕','⼥','1990-4-23','1898888888',NULL,2);#⽅式⼆:INSERT INTO beauty(id,NAME,sex,phone)VALUES(15,'娜扎','⼥','1388888888');#3.列的顺序是否可以调换INSERT INTO beauty(NAME,sex,id,phone)VALUES('蒋欣','⼥',16,'110');#4.列数和值的个数必须⼀致INSERT INTO beauty(NAME,sex,id,phone)VALUES('关晓彤','⼥',17,'110');#5.可以省略列名,默认所有列,⽽且列的顺序和表中列的顺序⼀致INSERT INTO beautyVALUES(18,'张飞','男',NULL,'119',NULL,NULL);#⽅式⼆:/*语法:insert into 表名set 列名=值,列名=值,...*/INSERT INTO beautySET id=19,NAME='刘涛',phone='999';#两种⽅式⼤pk ★#1、⽅式⼀⽀持插⼊多⾏,⽅式⼆不⽀持INSERT INTO beautyVALUES(23,'唐艺昕1','⼥','1990-4-23','1898888888',NULL,2),(24,'唐艺昕2','⼥','1990-4-23','1898888888',NULL,2),(25,'唐艺昕3','⼥','1990-4-23','1898888888',NULL,2);#2、⽅式⼀⽀持⼦查询,⽅式⼆不⽀持INSERT INTO beauty(id,NAME,phone)SELECT 26,'宋茜','11809866';INSERT INTO beauty(id,NAME,phone)SELECT id,boyname,'1234567'FROM boys WHERE id<3;#⼆、修改语句/*1.修改单表的记录★语法:update 表名set 列=新值,列=新值,...where 筛选条件;2.修改多表的记录【补充】语法:sql92语法:update 表1 别名,表2 别名set 列=值,...where 连接条件and 筛选条件;sql99语法:update 表1 别名inner|left|right join 表2 别名on 连接条件set 列=值,...where 筛选条件;*/#1.修改单表的记录#案例1:修改beauty表中姓唐的⼥神的电话为138******** UPDATE beauty SET phone = '138********'WHERE NAME LIKE '唐%';#案例2:修改boys表中id好为2的名称为张飞,魅⼒值 10 UPDATE boys SET boyname='张飞',usercp=10WHERE id=2;#2.修改多表的记录#案例 1:修改张⽆忌的⼥朋友的⼿机号为114UPDATE boys boINNER JOIN beauty b ON bo.`id`=b.`boyfriend_id`SET b.`phone`='119',bo.`userCP`=1000WHERE bo.`boyName`='张⽆忌';#案例2:修改没有男朋友的⼥神的男朋友编号都为2号UPDATE boys boRIGHT JOIN beauty b ON bo.`id`=b.`boyfriend_id`SET b.`boyfriend_id`=2WHERE bo.`id` IS NULL;SELECT * FROM boys;#三、删除语句/*⽅式⼀:delete语法:1、单表的删除【★】delete from 表名 where 筛选条件2、多表的删除【补充】sql92语法:delete 表1的别名,表2的别名from 表1 别名,表2 别名where 连接条件and 筛选条件;sql99语法:delete 表1的别名,表2的别名from 表1 别名inner|left|right join 表2 别名 on 连接条件where 筛选条件;⽅式⼆:truncate语法:truncate table 表名;*/#⽅式⼀:delete#1.单表的删除#案例:删除⼿机号以9结尾的⼥神信息DELETE FROM beauty WHERE phone LIKE '%9'; SELECT * FROM beauty;#2.多表的删除#案例:删除张⽆忌的⼥朋友的信息DELETE bFROM beauty bINNER JOIN boys bo ON b.`boyfriend_id` = bo.`id`WHERE bo.`boyName`='张⽆忌';#案例:删除黄晓明的信息以及他⼥朋友的信息DELETE b,boFROM beauty bINNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`WHERE bo.`boyName`='黄晓明';#⽅式⼆:truncate语句#案例:将魅⼒值>100的男神信息删除TRUNCATE TABLE boys ;#delete pk truncate【⾯试题★】/*1.delete 可以加where 条件,truncate不能加2.truncate删除,效率⾼⼀丢丢3.假如要删除的表中有⾃增长列,如果⽤delete删除后,再插⼊数据,⾃增长列的值从断点开始,⽽truncate删除后,再插⼊数据,⾃增长列的值从1开始。

2 数据操作语言 DML 实验

2 数据操作语言 DML 实验
2 数据操作语言 DML 实验 一、实验目的: 1、建立基本表并进行 DML 操作。 2、数据查询:单表查询、连接查询、嵌套查询、集合查询和统计等功能。 3、数据更新:增加、删除、查询和修改功能
二、实验内容与步骤: 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语言二(数据查询)一、实验目的及要求1. 熟练掌握SELECT查询语句的使用2. 掌握无条件、有条件查询及查询结果排序与分组3. 掌握连接查询、嵌套查询、集合查询二、实验任务1.掌握查询语句的一般格式。

2.掌握无条件、有条件查询及查询结果排序与分组3. 掌握连接查询、嵌套查询、集合查询三、操作要点1.进行查询时先进入查询分析器2.明白了解无条件、有条件查询及查询结果排序与分组四、注意事项1.SELECT语句的基本语法格式2.SELECT语句的执行方法3.SELECT语句和ORDER BY子句的作用和用法4.SELECT语句和GROUP BY子句的作用和用法5.等值连接和自然连接的区别五、实验学时:6学时六、实验重点及难点1.SELECT语句的基本语法2.掌握数据汇总的方法3.外连接的语法七、实验步骤注:本实验分三部分,每部分2学时。

1-16题为第一部分。

17-25为第二部分。

后面的设计题为第三部分1.启动SQL查询分析器;2.选择SQL SERVER后,按确认;3.选择数据库University,验证如下例题:第一部分:3.1 查询全体学生的详细记录。

这是一个无条件的选择查询,其命令为:3.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。

这是一个无条件的投影查询,其命令为:3.3 查询选修了课程的学生学号。

其命令为:3.4查询数学系全体学生的学号(Sno)和姓名(Sname)。

其命令为:3.5查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。

其命令为:3.6查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)。

其命令为:3.7查询自动化系、数学和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。

其命令为:3.8查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。

数据操纵语言

数据操纵语言

4.2.4 DELETE语句 DELETE语句用来删除表中的数据,一次可以 删除一行或多行。 1. DELETE语句的格式 DELETE [FROM] table_name [WHERE search_conditions]
2. 格式说明 ①[FROM]是任选项,用来增加可读性。 ②table_name指出将要从哪个表中删除数据。 例如,如下语句将删除表tb_bookshort中的所 有行: DELETE FROM tb_bookshort
删除表中的所有行 TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事 务日志资源少 在表中包含大字段(BLOB,CLOB)的情况下,尤其 有用。
SQL的数据修改功能:更新操作
命令
update 表名 set 列名 = 表达式 | 子查询 列名 = [,表达式 | 子查询]… [where 条件表达式] 指定对哪些列进行更新,以及更新后的值是什么
示例
老师工资上调5% update PROF set SAL = SAL * 1.05
更新操作
将D01系系主任的工资改为该系的平均工资
update PROF set SAL = (select avg(SAL) from PROF where DNO = D01) where PNO = (select DEAN from DEPT where DNO = D01)
假定有一个表tb_bookshort,其中包含三个字段,定 ,其中包含三个字段, 假定有一个表 义如下: 义如下: BookID(Char,6), Bookname(Char,30), Price(Decimal,18,2) 假 定 该 表 中 bookID 列 和 bookname 列 的 数 据 与 表 tb_bookinfo 中的相应列数据相同 tb_bookinfo中的相应列数据相同 , 而 price列的值 中的相应列数据相同, price 列的值 需按tb_bookinfo中的 中的price列修改 , 则可以使用如 列修改, 需按 中的 列修改 下语句: 下语句: UPDATE tb_bookshort SET price=tb_bookinfo.price FROM tb_bookshort JOIN tb_bookinfo ON tb_bookshort.bookID=tb_bookinfo.bookID

数据库原理及应用实验指导书参考答案


5.DBS 由哪几个部分组成? 答:
6.DBA 的职责是什么? 答:
五、综合应用题
-8-
安徽工程大学 计算机科学与技术 2092 汪亚非
3.2 一、 名词解释
关系数据库
关系模型: 关系模型主要有三个组成部分: 数据结构(二维表格即关系) ;数据操作(其理论依据是关系代数和关系演算) ;完整性规 则(实体完整性、参照完整性和用户完整性) 。 1.数据结构 在关系模型中,实体、实体间的各种联系均用关系表示;其逻辑结构就是二维表格。 2.数据操作 数据操作用于描述系统的动态特性,其理论依据是关系代数和关系演算。 数据库主要有检索和更新(包括插入、删除和修改)两大类操作。在关系模型中必须定义 这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。 (1)常用的关系操作 包括:选择(Select) 、 除(Divide) 、 投影(Project) 、 并(Union) 连接(Join) 、 交(Intersection) 、 删除(Delete) 、
-1-
安徽工程大学 计算机科学与技术 2092 汪亚非
3.1 一、名词解释
数据库技术基础
DBMS: DBS:
DB:
数据模型:
-2-
安徽工程大学 计算机科学与技术 2092 汪亚非
层次模型: 满足下面两个条件的基本层次联系的集合称之为层次模型: ⑴ 有且只有一个结点没有双亲(根结点) ⑵ 根以外的其余结点有且只有一个双亲 网状模型: 满足下面条件的基本层次联系的集合: ⑴ 有一个以上的结点没有双亲; ⑵ 一个结点可以有多于一个的双亲; ⑶ 两个结点之间可以有多重关系; ⑷ 一个结点有到自身的关系。 关系模型: 关系模型可以看作用一张二维表格来描述实体及实体之间的联系。每一列称为属性或字段;每 一行称为元组或记录。用关系模式来描述。关系模型既能反映属性间一对一的联系,又能反映 属性间一对多的联系,还能反映属性间多对多的联系。 物理数据独立性:

实验三数据库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的学生,选修了所有的课程,每门功课都还没有成绩,请将该同学的选课记录插入到选课表中。

2015数据库实验指导书

数据库原理及应用实验指导书实验一实验项目名称: SQL Server 2012系统的配置及基本操作(2课时,验证)实验主要内容及方法熟悉实验环境实验要求:(1)了解SQL Server 2012的启动,熟悉如何在SQL Server 2012图形环境下建立数据库和表。

(2)了解SQL Server 2012系统的相关服务及常用工具。

实验设备:装有SQL SERVER 2012的电脑实验步骤:1、启动和停止SQL Servera.用服务管理器启动和停止SQL Server选择菜单“程序|Microsoft SQL Server|服务管理器”。

弹出“SQL Server服务管理器”,选择服务器(如:LWHNOTE)和服务选项(如:SQL Server),若没有启动,按下,即可启动SQL Server,若已经启动,按下,即可停止SQL Server。

启动SQL Server后,在任务栏的右边会显示正在运行的SQL Server,即:b.自动启动SQL Server使用手动启动弹出“SQL Server服务管理器”后,选择复选框“当启动OS 时自动启动服务”后,下次开机时系统即可自动启动SQL Server。

c.用操作系统控制面板中的服务管理程序启动和停止SQL Server选择菜单“程序|管理工具|服务”。

弹出“服务”对话框。

鼠标右击要启动的服务器名称,即:MSSQLSERVER,弹出菜单后,选择“启动”菜单项,就可启动SQL Server。

类似的方法,可以停止SQL Server。

2、使用企业管理器a.启动企业管理器在SQL Server中,企业管理器(Enterprice Manager)是最重要最常用的管理工具。

b.启动和停止SQL Server在企业管理器中所要启动的服务器上点鼠标右击,从快捷菜单中选择“连接”。

即可启动并连接。

类似的方法,可以停止SQL Server。

说明:企业管理器是一个对初学者来说最重要的管理工具,在以后的内容会经常使用。

数据库实验三-实验九含参考答案

例 3-15:(匹配查询) 求选修课程 1 或 3,成绩在 80 至 90 之间,学号为 200215xxx 的学生的学号、 课程号和成绩。 select Sno,Cno,Grade from SC where Cno in('1','3')and Grade Between 80 and 90 and Sno like'200215%'
select max(grade),min(grade),avg(grade) from sc where cno='001' 例 3-7:(分组查询) 求各门课程的平均成绩与总成绩。
select cno,avg(grade),sum(grade) from sc group by cno 例 3-8:(分组查询) 输入以下查询语句并执行,观察出现的其结果并分析其原因。 SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT WHERE SDEPT=’CS’ GROUP BY SDEPT;
选择列表中的列'STUDENT.Sname' 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。
例 3-9:(分组查询) 分析以下语句为什么会出现错误。并给出正确的查询语句。 SELECT SAGE FROM STUDENT GROUP BY SNO;
选择列表中的列'STUDENT.Sage' 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。
实验五:数据查询语言
[ 实验目的 ]
体会 SQL 语言数据查询功能的丰富和复杂。
[ 实验内容 ]
3. SQL 数据查询语句: 例 3-1:(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。 select sno,cno from sc where grade is null 例 3-2:(控制行的显示顺序) 求选修 003 课程或 004 课程的学生的学号、课程号和分数。 select sno,cno,grade from sc where cno in('003','004') order by grade 例 3-3:(组函数) 求学生总人数。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档