文档库 最新最全的文档下载
当前位置:文档库 › 实验一:数据定义及更新语句练习

实验一:数据定义及更新语句练习

实验一:数据定义及更新语句练习
实验一:数据定义及更新语句练习

实验一:数据定义及更新语句练习

一、实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据

的更新。

二、实验内容:

(一)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。

S(SNO,SNAME,STA TUS,CITY);

P(PNO,PNAME,COLOR,WEIGHT);

J(JNO,JNAME,CITY);

SPJ(SNO,PNO,JNO,QTY)

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。(二)分别使用插入、删除、修改的方式更新基本表中的数据。

三、完成情况

create table s

(

sno char(9)primary key, //主键约束

sname char(20)unique, //唯一值

status smallint,

city char(20),

);

create table p

(

pno char(9)primary key, //主键约束

pname char(20),

color char(9),

weight smallint,

);

create table j

(

jno char(9)primary key, //主键约束

jname char(20)unique, //唯一值

city char(20),

);

create table spj

(

sno char(9),

pno char(9),

jno char(9),

QTY smallint,

primary key(sno,pno,jno), //主键约束

foreign key (sno)references s(sno), //外键约束

foreign key (pno)references p(pno), //外键约束

foreign key (jno)references j(jno), //外键约束

);

四、实验结果

1、利用Insert 语句将习题中给出的示例记录插入各表insert

into s(sno,sname,status,city)

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,'上海')

select*

from s

insert

into p

values ('p1','螺母','红',12) insert

into p

values ('p2','螺栓','绿',17) insert

into p

values ('p3','螺丝刀','蓝',14) insert

into p

values ('p4','螺丝刀','红',14) insert

into p

values ('p5','凸轮','蓝',40) insert

into p

values ('p6','齿轮','红',30)

select*

from p

insert

into j

values ('j1','三建','北京') insert

into j

values ('j2','一汽','长春') insert

into j

insert

into j

values ('j4','造船厂','天津') insert

into j

values ('j5','机车厂','唐山') insert

into j

values ('j6','无线电厂','常州') insert

into j

values ('j7','半导体厂','南京')

select*

from j

insert

into spj

values ('s1','p1','j1',200) insert

into spj

values ('s1','p1','j3',100) insert

into spj

values ('s1','p1','j4',700) insert

into spj

values ('s1','p2','j2',100) insert

into spj

values ('s2','p3','j1',400) insert

into spj

values ('s2','p3','j2',200) insert

into spj

insert

into spj

values ('s2','p3','j5',400) insert

into spj

values ('s2','p5','j1',400) insert

into spj

values ('s2','p5','j2',100) insert

into spj

values ('s3','p1','j1',200) insert

into spj

values ('s3','p3','j1',200) insert

into spj

values ('s4','p5','j1',100) insert

into spj

values ('s4','p6','j3',300) insert

into spj

values ('s4','p6','j4',200) insert

into spj

values ('s5','p2','j4',100) insert

into spj

values ('s5','p3','j1',200) insert

into spj

values ('s5','p6','j2',200) insert

into spj

values ('s5','p6','j4',500)

select*

from spj

2.利用Update更新表中的记录:

①将p表中的所有红色零件的重量增加5。

update p

set weight=weight-5

where color='红'

②将spj表中所有天津供应商的QTY属性值减少10。用子查询。update spj

set QTY=QTY-10

where sno in

(

select sno

from s

where city='天津'

)

3.利用Delete语句删除p表中的所有红色零件的记录。delete

from p

where color='红'

DELETE 语句与REFERENCE 约束"FK__spj__pno__4F7CD00D"冲突。该冲突发生于数据库"myspj",表"dbo.spj", column 'pno'。

语句已终止。(p.pno作为spj.pno的外键,两张表有关系)

五、问题及解决

1、数据库如何保存?

本以为要用一次输入一次,后来通过老师讲解知道可以分离数据库(只保留.mdf 文件就行了,到用时在附加数据库),还可以备份数据库。

2、输入表是出错?

有时候建基本表时容易输错,再往下就不然输入了,只能把整个表删了重建了。

六、思考题:

(一)在为各表设定关键字时弹出的页面中有关键字和索引选项,试通过给基本表设定这两个项目并说明二者的区别。

索引可以加快表的查询速度,经常用来查询的一个或者几个字段设置为索引。(二)在基本表中输入数据时,注意数据与字段的数据类型和长度以及能否为空的属性是否一致,保存时如有错误分析错误原因,及时改正并将错误报告写在实验报告中。

在基本表中输入数据时,不为空的地方不可以输入空值,否则将无法继续输入。

七、实验总结:

感觉数据库还是比较好学的(相对编程来说),但是间数据库的时候容易出错,工作比较繁琐,稍不小心,不管通过代码添加还是手工输入都很可能稍输或输错。最后还需要仔细检查才行,语句方面还都是一些简单的语句,可以完成。

数据库实验3

浙江大学实验报告 课程名称:数据库系统原理实验类型:上机 实验项目名称:SQL数据完整性 实验目的和要求 熟悉通过SQL进行数据完整性控制的方法。 一、实验内容和原理 1. 定义若干表,其中包括primary key, foreign key 和check的定义。 2. 让表中插入数据,考察primary key如何控制实体完整性。 3. 删除被引用表中的行,考察foreign key 中on delete 子句如何控制参照完整性。 4. 修改被引用表中的行的primary key,考察foreign key 中on update 子句如何控制参照完整性。 5. 定义一个asseration, 并通过修改表中数据考察断言如何控制数据完整性。 6. 定义一个trigger, 并通过修改表中数据考察触发器如何起作用。 7. 完成实验报告。 二、实验平台 数据库管理系统:SQL Server 或MySQL 四、操作方法与实验步骤及结果 1.定义若干表,其中包括primary key, foreign key 和check的定义。 如下图所示,建立了三个表分别为classroom,department 和course,其中主键分别被定义为building,dept_name,然后又定义了course中的的dept_name为外键。在course的定义中还有一个定义check的语句。

2.让表中插入数据,考察primary key如何控制实体完整性。 向department中插入主键为null的数据是报错,从而控制了实体完整性。 但当插入数据其他属性为0(不为主键)时,可以进行成功的插入操作。 插入后的结果显示如下。 3.删除被引用表中的行,考察foreign key 中on delete 子句如何控制参照完整性。 首先建立两个表school和students,并向其中插入数据,显示结果如下。 在先前定义了students表school_name为school中这一属性的外键,下面将

实验七 数据库的更新及视图的定义与维护

实验七数据的更新及视图的定义与维护 一.实验目的 1.掌握使用SQL语言向数据库中插入数据、修改数据和删除数据等更新操作 2.掌握视图的定义与维护操作 3. 加深对视图在关系数据库中的作用的理解 二.实验准备 1.装有SQL Server 2005的PC机。 2. 成功创建各数据库、数据库表、并已插入各种数据。 三.实验内容1 1.打开“SQL Server Management Studio”窗口 2.创建学生选课数据库“S_T” 3.在学生选课数据库中完成以下插入数据的操作: (1)将一个新学生元组(学号:200215128;姓名:陈东;性别:男;年龄:18;所在系:IS)插入学生表中; (2)插入一条选课记录(‘200215128’,1); (3)对每一个系,求学生的平均年龄,并把结果存入数据库。 提示:首先在学生-选课数据库中建立一个新表,其中一列存放系名,另一列存放相应的学生平均年龄;然后对student表按系分组求平均年龄,再把系名和 平均年龄存入新表中。 4.在学生选课数据库中完成以下修改数据的操作: (4)将学生200215121的年龄改为22岁; (5)将所有学生的年龄增加一岁; (6)将计算机科学系全体学生的成绩置零; 5.在学生选课数据库中完成以下删除数据的操作: (7)删除学号为200215122的学生记录; (8)删除所有的学生选课记录; (9)删除计算机科学系所有学生的选课记录 四.实验内容2 1. 在学生选课数据库中完成以下创建视图的操作: (1)建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生; (2)建立信息系选修了“1”号课程的学生视图; (3)建立信息系选修了“1”号课程且成绩在90分以上的学生视图; (4)定义一个反映学生出生年份的视图; (5)将学生的学号及他的平均成绩定义为一个视图; (6)将Student表中所有女生记录定义为一个视图; 2. 在学生选课数据库中完成以下删除视图的操作: (7)选择一个您所建的视图进行删除; 3. 在学生选课数据库中完成以下查询视图的操作: (8)在信息系学生的视图中找出年龄小于20岁的学生; (9)查询选修了1号课程的信息系学生;

数据库第三章作业

第三章SQL 一、填空题 1、在SQL查询时,如果要去掉查询结果中的重复组,需要用() 2、在SQL中使用()命令建立基本表 3、在SQL中使用()命令修改数据库模式。 4、在SQL的SELECT语句中,不仅可以出现属性名,还可以出现()。 5、当基本表中增加一个新列后,各元组在新列上的值是()。 6、在SQL中表示并集的关键字是(0)。 7、在SQL中表示差集的关键字是()。 8、SQL对嵌套查询的处理方法是从()层向()层处理。 9、在SQL中定义视图时,需要用关键字()连接子查询来完成。 10、SQL包括了数据定义、数据操纵和()等功能。 11、SQL对嵌套查询的处理方法是从()层向()层处理。 二、单选题 1、在SQL中,用户可以直接操纵的是()。 A. 基本表 B. 视图 C. 基本表或视图 D. 基本表和视图 2、在SQL中,与关系代数中的投影运算对应的字句是()。 A. SELECT B. FROM C. WHERE D.ORDER BY 3、SELECT语句执行的结果是()。 A. 数据项 B. 元组 C. 表 D. 数据库 4、关系数据库的标准语言是()。 A. DDL B. SQL C. ORACLE D. DBMS 5、在SELECT语句中使用*表示()。 A. 选择任何属性 B. 选择全部属性 C. 选择全部元组 D. 选择键码 6、使用CREATE TABLE语句建立的是()。 A. 数据库 B. 表 C. 视图 D. 索引 7、在SELECT语句中使用MIN(属性名)时,属性名()。 A. 必须是数值型 B. 必须是字符型 C. 必须是数值型或字符型 D.不限制数据类型 8、使用CREATE VIEW语句建立的是()。 A. 数据库 B. 表 C. 视图 D. 索引 9、在SQL中使用UPDA TE对表中数据进行修改时,应使用的子句是()。 A. WHERE B. FROM C. V ALUES D. SET 10、使用CRETE INDEX语句建立的是()。 11、在SQL的语句中,ALTER的作用是()。 A. 删除基本表 B. 修改基本表中的数据 C. 修改基本表中的结构 D. 修改视图 12、在SELECT语句中使用A VG(属性名)时,属性名()。 A. 必须是数值型 B. 必须是字符型 C. 必须是数值型或字符型 D.不限制数据类型 13、在SQL中用关键字EXCEPT表示的运算是集合的()。 A. 交集 B. 并集 C. 差集 D. 连接 14、在SQL的排序子句:“ORDER BY总分DESC ,英语DESC”,表示()。 A. 总分和英语分数都是最高的在前面 B. 总分和英语分数之和最高的在前面

C程序设计第9章选择题作业

1. 20901、设有以下说明语句:C struct Stu { int a; float b; }stutype; 则下面的叙述不正确的是。 A) struct是结构体类型的关键字 B) struct Stu是用户定义的结构体类型 C) stutype是用户定义的结构体类型名 D) a和b都是结构体成员名 2. 20902、根据下面的定义,能打印出字母M的语句是。D struct Person { char name[9]; int age; }; struct Person class[10]={ "John", 17,"Paul", 19,"Mary",18,"adam",16}; A) printf("%c\n",class[3]. name); B) printf("%c\n",class [3]. name[l]); C) printf ("% c\n",class [2]. name [1]); D) printf("%c\n",class [2]. name[0]); 3. 20903、若有以下说明和语句:A struct Student { int num; int age; }stu,*p; p=&stu; 则以下对结构体变量stu中成员age的引用方式不正确的是。 A) *p.age B) p->age C) (*p).age D) stu.age 4. 20904、若有以下程序段: struct Student { int num; int age; }; struct Student stu[3]={{101,20},{102,19},{103,20}}; void main () { struct Student * p; p=stu; … } 则以下引用形式不合法的是。D A) (p++)->num B) p++ C)(*p). num D) p=&stu. age

Update中的From语句

Oracle\MS SQL Server的数据库多表关联更新UPDATE与多表更新【原】 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新。而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据。我们先来讨论根据其他表数据更新你要更新的表 一、MS SQL Server 多表关联更新 sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来。虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式中引用要更新的表以外的其它数据。 一般形式: update A SET 字段1=B表字段表达式, 字段2=B表字段表达式 from B WHERE 逻辑表达式 例如: UPDATE dbo.Table2 SET dbo.Table2.ColB = dbo.Table2.ColB + dbo.Table1.ColB FROM dbo.Table2 INNER JOIN dbo.Table1 ON (dbo.Table2.ColA = dbo.Table1.ColA); 实际更新的操作是在要更新的表上进行的,而不是在from子句所形成的新的结果集上进行的 二、Oracle 多表关联更新 Oracle没有update from语法,可以通过两种实现方式: 1、利用子查询: update A SET 字段1=(select 字段表达 式 from B WHERE ...), 字段2=(select 字段表达式 from B WHERE ...) WHERE 逻辑表达式 UPDATE多个字段两种写法:

实验一数据库定义实验

实验一数据库定义实验 一、实验目的 使用SQL Server Management Studio、T-SQL语句创建和管理数据库,学会使用SQL Server查询分析器接收 T-SQL语句和进行结果分析。使用T-SQL语句进行数据表的创建和删除,并对数据表和表中的数据进行有效有管理。 二、实验环境 实验室名称:11#208 软件环境:操作系统:windows 10;SQL 2008 硬件环境:安装内存(RAM):可用) 处理器:Intel(R) Core(TM) i5-5200U CPU @ 硬盘:250GB-SSD 500GB-HDD 三、实验内容 1.用SQL Server Management Studio创建、修改数据库 2.用T-SQL语句创建、修改数据库 3.用SQL Server Management Studio创建、修改数据表 4.用T-SQL语句创建、修改数据表

四、实验步骤及实验结果分析 (一)、创建、修改数据库 1.用SQL Server Management Studio创建步骤: (1)、单击“开始”菜单选择“所有程序”->Microsoft SQL Server 2008->SQL Server Management Studio (2)、单击“视图”->”对象资源管理器”->右击“数据库”->选择“新建 数据库”命令 (3)、在“数据库名称”文本框中输入新建数据库的名称,本例输入“JXGL” (4)、在“新建数据库”的对话框里设置“常规”、“选项”、“文件组” 2.用SQL Server Management Studio修改数据库步骤: (1)、在“对象资源管理器”窗口右击要修改大小的数据库,选择“属性”弹 出属性对话框 (2)、在属性对话框中的“常规”、“文件”、“文件组”、“选项”、“更改跟踪”、 “权限”、“扩展属性”、“镜像”、“事务日志传送”修改数据库的相关信息 3.用SQL Server Management Studio删除数据库 右击要删除的数据库,在弹出的菜单中选择删除命令在弹出的“删除对象” 的对话框中,单击“确定”按钮 4.用T-SQL语句创建数据库: (1)、打开SSMS窗口,并连接到服务器 (2)、依次选择“文件”->”新建”->“数据库引擎查询”命令或者单击标 准工具栏的“新建查询”按钮,创建一个查询输入窗口 (3)、在窗口中输入以下create database 语句:

数据库原理实验6数据更新操作

实验六数据更新操作 1 实验目的与要求 (1)掌握基本表的INSERT、UPDATE、DELETE操作。 (2)正确理解更新操作中涉及到的相关约束问题。 2 实验内容 根据BookDB中4张关系表,完成以下更新操作: (1) 分别给这4张表添加信息,要求图书分类表、图书表、读者表各插入5个元组,借阅表插入20个元组。 答:详细见BookDB.sql (2) 将联合股份有限公司的读者工作单位修改为联合立华股份有限公司。 update Reader48 set workunit48='联合立华股份有限公司' where workunit48='联合股份有限公司'

(3) 将入库数量最多的图书单价下调5%。 update Book48 set price48=price48*0.95 where shopNum48=(select max(shopNum48) from Book48) (4) 将“经济类”的图书单价提高10%。 update Book48 set price48=price48*1.1 where classNo48=(select distinct a.classNo48 from Book48 a, BookClass48 b where a.classNo48=b.classNo48 and b.className48='经济类') (5) 将借阅次数高于2次的图书数量增加50%。 update Book48 set shopNum48=shopNum48*1.5 where bookNo48 in( select bookNo48 from borrow48 group by bookNo48 having count(bookNo48)>=2 )

数据更新(二)

【知识点】 3、删除语句 (1)DELETE [FROM] <表名> [WHERE <删除条件>] (2)TRUNCATE TABLE <表名> 区别: (1)TRUNCATE TABLE 在功能上与不带WHERE 子句的DELETE 语句相同:二者均删除表中的全部行。 (2)TRUNCATE TABLE 比DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。 TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 比较:TRUNCATE、DELETE、DROP TRUNCATE TABLE:删除内容不删除定义、释放空间。 DELETE :删除内容不删除定义,不释放空间。 DROP TABLE:删除内容和定义,释放空间 4、子查询在INSERT、UPDATE、DELETE语句中的应用 例: 1、统计选修了课程的每个学生的平均成绩并插入空表stuMarks_temp中(表中有二个字段:学号stuNo,平均成绩avg_stuScore)。 INSERT INTO stuMarks_temp(stuNo,avg_stuSCore) SELECT stuNo,AVG(stuScore) FROM stuMarks GROUP by stuNo 2、把所有女生的选修成绩都加5分 UPDATE stuMarks SET stuScore=+5 WHERE stuNo IN(SELECT stuNo FROM stuInfo WHERE stuSex=’女’) 3、删除‘李明’的所有选修记录(假设没有同名情况) DELETE stuMarks WHERE stuNo IN(SELECT stuNo FROM stuInfo WHERE stuName=’李明’) 【课堂实践】 1.将“李勇”同学的专业改为“计算机信息管理”(假设只有一个“李勇”) 2.将“20050201”学生选修“C03”号课程的成绩改为该课的平均成绩 3.把成绩低于总平均成绩的女同学的成绩提高5% 4.把选修了“数据库”课程而成绩不及格的学生的数据库课成绩全改为空值(NULL) 5.删除学号为“20050302”的学生记录(注意删除顺序!) 6.删除“计算机系”所有学生的选课记录 7.删除SC表中还没有成绩的选课记录 8.把“刘晨”同学的成绩全部删除(假设只有一个“刘晨”)

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

实验6 数据库的更新实验

实验6 数据库的更新实验 1.实验目的 本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。 2.实验时数2学时 [相关知识] SQL Server提供了很多方法更新表中数据。以插入记录为例,可以使用INSERT语句、V ALUES子句将特定值集合插入一行;可以使用数据库接口API(ADO、OLE DB、ODBC和DB-Library)中的函数进行数据插入等。本实验主要掌握INSERT、UPDATE 和DELETE语句的基本用法。 ●插入操作,其语句的一般格式为 INSERT INTO table_or_view [(colum_list)] V ALUES (date_values); 此语句是使date_values作为一行数据记录插入已命名的表或视图table_or_view中。 Column_list是由逗号分隔的table_or_view的列名列表,用来指定为其提供数据的列。 如果没有指定column_list,表或视图中的所有列都将接收数据。 如果column_list没有为表或视图中的所有列命名,将在列表中没有命名的任何列中插入一个NULL值(或者在默认情况下为这些列定义的默认值)。在列的列表中没有指定的所有列都必须允许NULL值或者指定的默认值。否则SQL Server将返回一个错误。 ●修改操作语句的一般格式为 UPDATE 表名 SET <列名>=<表达式>[,<列名>=<表达式>]…… [where <条件>]; 其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句用于指定修改方法,即用<表达式>的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。 ●删除语句的一般格式为 DELETE FROM <表名> [WHERE <条件>]; 其功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句,则表示要删除表中的所有元组,但表的定义仍在字典中。 3.实验内容 通过企业管理器,在学生选课数据库的学生、课程和选课3个表中各输入10条记录。 要求记录不仅满足数据约束要求,还要有表间关联的记录。 具体完成以下例题。将它们转换为SQL语句表示,在学生选课库中实现其数据更新操作。 例1 将一新学生记录(学号:95050;姓名:陈冬;性别:男;年龄:18;所在系:计算机科学系)插入学生表中。

实验一:数据定义及更新语句练习

实验一:数据定义及更新语句练习 一、实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据 的更新。 二、实验内容: (一)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。 S(SNO,SNAME,STA TUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。(二)分别使用插入、删除、修改的方式更新基本表中的数据。 三、完成情况 create table s ( sno char(9)primary key, //主键约束 sname char(20)unique, //唯一值 status smallint, city char(20), ); create table p ( pno char(9)primary key, //主键约束 pname char(20), color char(9), weight smallint,

数据库实验习题

《数据库概论》实验指导书 (2003级) 一、实验目的: 数据库系统是一门应用性很强的课程,上机实验是数据库课程的重要环节。本实验是结合《数据库概论》课程的学习而开设的实验。本实验目的如下: 1. 通过上机实验,加深对数据库系统理论知识的理解,增强对网络环境下大型数据库的感性认识和实际操作能力; 2. 通过使用具体的DBMS,了解一种实际的数据库管理系统,并掌握其操作技术。熟悉ORACLE数据库的Net8工具,掌握ORACLE数据库的网络连接配置; 3. 学习使用SQL语言,加深对SQL语言的认识和理解,提高SQL语言的实际应用能力; 4. 加强对事务处理、权限管理等概念的认识和理解。 二、适应专业:信息管理与信息系统,信息与计算机科学 三、实验学时数:12学时 四、实验内容及学时安排: 实验准备: 各班选出10个同学,协助老师搭建试验环境。包括: 1)安装ORACLE客户端,配置与主机的数据库连接。 2)安装软件工具 PLSQL/DEVELOPER 3)负责本班用户的建立。 分为两批上午下午各两个班。 实验一:数据定义/数据操纵语言 实验目的:熟悉Oracle上机环境以及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。 学时数:4学时 实验内容:SQL数据定义语句, SQL数据操纵语句。 实验要求:1. 熟悉Oracle上机环境; 2. 建立数据库表,修改数据库表结构,建立、删除索引;

3. 对数据库表进行插入、修改和删除数据的操作。 实验二:数据查询语言,视图定义 实验目的:体会SQL语言数据查询功能的丰富和复杂,视图使用。 学时数:4学时 实验内容:SQL数据查询语句,视图的定义与操纵; 实验要求:对数据库表进行各种查询操作,建立视图,视图查询,视图更新; 实验三:授权控制与事务处理 实验目的:通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。 学时数:2学时 实验内容: 1. SQL数据控制语句; 2. SQL事务处理。 实验要求: 1. 给某一或全部用户授权和收回授权; 2. 事务回退,事务提交。 五、教材及参考文献 1.《数据库系统概论》(第三版)萨师煊等编著高等教育出版社 2000.2 2.《ORACLE 8.x For Windows NT实用教程》翁正科等编著清华大学出版社 1998.10 六、实验环境 实验要求如下环境 服务器端:Windows 2000NT Server; ORACLE 8.x Database Server For Windows Windows2000 Server 客户端: Windows9x;Oracle 8.x Client 网络协议:TCP/IP 七、成绩考核 上机实验考核采取实验报告和上机抽查检验相结合的方式。每次实验结束后都必须写出实验报告。 八. 实验报告

数据库更新操作命令实验

实验六更新操作命令 实验目的:掌握第三代高级语言(如C语言)中嵌入式SQL数据库数据操作方法,能 清晰地领略到SQL命令在第三代高级语言中操作数据库数据的方式和方法,这种方式和方法在今后各种数据应用系统开发中将被广泛的采用。 掌握嵌入了SQL语句的C语言程序的上机过程包括:编辑、预编译、连接、修改、调试与运行等内容。 实验内容: 步骤: 将VC98和esqlc两文件放入C盘根目录 启动“MS-DOS”窗口,执行如下命令,使当前盘为C,当前目录为esqlc C: 设置系统环境变量值,执行如下批处理命令: Setenv 执行如下批处理命令:run main 输入程序名 MAIN 回车 连接到数据库 创建教师表 修改,添加 修改:

添加: 代码: int create_teacher_table()

{ char yn[2]; EXEC SQL BEGIN DECLARE SECTION; char tname[21]="xxxxxxxxxxx"; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT name into :tname FROM sysobjects WHERE (xtype = 'U' and name='student'); if (SQLCODE == 0||strcmp(tname,"teacher")==0) { printf("The teacher table already exists,Do you want to delete it?\n",SQLCODE); printf("Delete the table?(y--yes,n--no):"); scanf("%s",&yn); if (yn[0]=='y' ||yn[0]=='Y'){ EXEC SQL drop table teacher; if (SQLCODE == 0) { printf("Drop table teacher successfully!%d\n\n",SQLCODE); } else { printf("ERROR: drop table teacher %d\n\n",SQLCODE); } } else return -1; } EXEC SQL CREATE TABLE teacher ( sno char(5) NOT null primary key, sname char(6) null , ssex char(2) null , sage int null , sdept char(2) null) ; if (SQLCODE == 0) { printf("Success to create table teacher!%d\n\n",SQLCODE); } else { printf("ERROR: create table teacher %d\n",SQLCODE); } EXEC SQL begin transaction insert into teacher values("T9501", "李斌", "男",26, "CS") insert into teacher values("T9502", "赵霞", "女",30, "IS") insert into teacher values("T9503", "周淘", "男",27, "CS")

SQL UPDATE 语句

SQL UPDATE 语句
? ? Previous Page Next Page
Update 语句
Update 语句用于修改表中的数据。
语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
Person:
LastName Gates Wilson FirstName Bill Address Xuanwumen 10 Champs-Elysees City Beijing
更新某一行中的一个列
我们为 lastname 是 "Wilson" 的人添加 firstname:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
结果: LastName Gates Wilson FirstName Bill Fred Address Xuanwumen 10 Champs-Elysees City Beijing
更新某一行中的若干列
我们会修改地址(address) ,并添加城市名称(city) :
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
结果: LastName Gates FirstName Bill Address Xuanwumen 10 City Beijing

Wilson
Fred
Zhongshan 23
Nanjing

数据库实验二

数据库实验二 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

实验报告册 2014 / 2015 学年第2 学期 系别计算机科学与技术系 实验课程数据库原理 专业计算机科学与技术 班级 姓名 学号 指导教师 实验二——SQL语句 一、实验目的 1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集 合查询和统计查询,能理解空值的处理;

2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、 删除操作; 3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图; 4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作; 二、实验预习内容 在认真阅读教材及实验指导书【实验1.2 数据查询】、【实验1.3 数据更新】、【实验1.4 视图】和【实验1.6 空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。 1.使用SCHOOL数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以 下操作。请在空白处填写相应的SQL命令。 1)查询年级为2001的所有学生的名称,按编号顺序排列; 2)查询所有课程名称中含有data的课程编号; 3)统计所有老师的平均工资; 4)查询至少选了3门课的学生编号; 5) 6)查询没有学生选的课程编号; 7)查询既选了C++又选了Java课程的学生编号; 8)查询选了C++但没选Java课程的学生编号; 9)向STUDENTS表中插入“LiMing”的个人信息); 10)将“LiMing”的年级改为2002; 11)删除所有选了Java课程的学生选课记录; 12)求出每门课的课程号、选课人数,结果存入数据库表T1中。

数据库实验报告(一)

滨江学院 题目数据库实验报告(一) 学生姓名 学号 系部电子工程系 专业通信工程 指导教师林美华 二O一三年十二月十八日

实验一数据库的定义实验 本实验需要2学时。 一、实验目的 要求学生熟练掌握和使用SQL、SQL Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收语句和进行结果分析。 二、实验内容 1 创建数据库和查看数据库属性。 2 创建表、确定表的主码和约束条件。为主码建索引。 3 查看和修改表结构。 4 熟悉SQL Server企业管理器和查询分析器工具的使用方法。 三、实验步骤 1 基本操作实验 (1) 使用企业管理器按教材中的内容建立图书读者数据库。 (2)在企业管理器中查看图书读者数据库的属性,并进行修改,使之符合要求。 (3)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为; 图书(书号,类别,,作者,书名,定价,作者). 读者(编号,,单位,性别,). 借阅(书号,读者编号,借阅日期) 要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。 (4)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。 2 提高操作实验 (一) 将教材中用SQL描述的建立学生--课程操作.在SQL Server企业管理器中实现。库中表结构为: 学生(学号,,年龄,性别,所在系). 课程(课程号,课程名,先行课). 选课(学号,课程号,成绩) 要求: 1)建库、建表和建立表间联系。, 2)选择合适的数据类型。 3)定义必要的索引、列级约束和表级约束. 四、实验方法 l创建数据库 (1)使用企业管理器创建数据库的步骤 1)从“开始”菜单中选择;“程序”“Microsoft SQL2000”“企业管理器”.

数据库-实验二

实验报告册2014 / 2015 学年第2 学期 系别计算机科学与技术系 实验课程数据库原理 专业计算机科学与技术 班级 姓名 学号 指导教师

实验二——SQL语句 一、实验目的 1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询 和统计查询,能理解空值的处理; 2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操 作; 3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图; 4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作; 二、实验预习内容 在认真阅读教材及实验指导书【实验1.2 数据查询】、【实验1.3 数据更新】、【实验1.4 视图】和【实验1.6 空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。 1.使用SCHOOL数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下操 作。请在空白处填写相应的SQL命令。 1)查询年级为2001的所有学生的名称,按编号顺序排列; 2)查询所有课程名称中含有data的课程编号;

3)统计所有老师的平均工资; 4)查询至少选了3门课的学生编号;

5)查询学号为80009026的学生的姓名、所选课名及成绩; 6)查询没有学生选的课程编号; 7)查询既选了C++又选了Java课程的学生编号;

8)查询选了C++但没选Java课程的学生编号; 9)向STUDENTS表中插入“LiMing”的个人信息(编号:700045678,名字:LiMing,Email:LX@https://www.wendangku.net/doc/2b381017.html,,年级:1992); 10)将“LiMing”的年级改为2002;

数据库常用语句

SQL常用语句一览 (1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]" sql="select*from数据表where字段名like'%字段值%'orderby字段名[desc]" sql="selecttop10*from数据表where字段名orderby字段名[desc]" sql="select*from数据表where字段名in('值1','值2','值3')" sql="select*from数据表where字段名between值1and值2" (2)更新数据记录: sql="update数据表set字段名=字段值where条件表达式" sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式" (3)删除数据记录: sql="deletefrom数据表where条件表达式" sql="deletefrom数据表"(将数据表所有记录删除) (4)添加数据记录: sql="insertinto数据表(字段1,字段2,字段3…)values(值1,值2,值3…)" sql="insertinto目标数据表select*from源数据表"(把源数据表的记录添加到目标数据表) (5)数据记录统计函数: AVG(字段名)得出一个表格栏平均值 COUNT(*|字段名)对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名)取得一个表格栏最大的值 MIN(字段名)取得一个表格栏最小的值 SUM(字段名)把数据栏的值相加 引用以上函数的方法: sql="selectsum(字段名)as别名from数据表where条件表达式" setrs=conn.excute(sql) 用rs("别名")获取统的计值,其它函数运用同上。 (5)数据表的建立和删除: CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)……) 例:CREATETABLEtab01 (namevarchar (50), datetimedefaultnow ()) DROPTABLE数据表名称(永久性删除一个数据表) 4.记录集对象的方法: rs.movenext将记录指针从当前的位置向下移一行 rs.moveprevious将记录指针从当前的位置向上移一行 rs.movefirst将记录指针移到数据表第一行 rs.movelast将记录指针移到数据表最后一行 rs.absoluteposition=N将记录指针移到数据表第N行 rs.absolutepage=N将记录指针移到第N页的第一行 rs.pagesize=N设置每页为N条记录 rs.pagecount根据pagesize的设置返回总页数 rs.recordcount返回记录总数 rs.bof返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof返回记录指针是否超出数据表末端,true表示是,false为否

数据库实验 王珊演示教学

实验内容和时间安排 1 时间安排 2 实验内容 实验0 SQL语句练习 [实验时数] 2 学时 该实验以SQL Server 2000系统自带的pubs 数据库为例,以一个图书出版公司为模型。 (1)该系统中数据库基本表如下: Authors:

1 au_id CHECK 约束定义为(au_id LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]')。 2 zip CHECK 约束定义为(zip LIKE '[0-9][0-9][0-9][0-9][0-9]')。 ============================ discounts Employee (emp_id LIKE '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]') OR (emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]')。 ============================ Jobs (2) max_lvl CHECK 约束定义为(max_lvl <= 250)。 ============================ pub_info

Publishers (pub_id = '1756' OR (pub_id = '1622' OR (pub_id = '0877' OR (pub_id = '0736' OR (pub_id = '1389')))) OR (pub_id LIKE '99[0-9][0-0]')。 ============================ roysched Sales titles

数据定义与操作

信息工程学院1 数据库原理与应用(SQL Server 2008) 实验/实习报告 一、实验目的 1、掌握使用SQL语句创建和删除数据库; 2、掌握使用SQL语句创建和删除数据表,创建各种完整性约束,修改表的结构; 3、掌握索引的创建和删除方法。 4、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询,理解查询的执行过程。 5、掌握数据更新语句的使用; 6、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。 二、预备知识 1、数据库的建立与删除 可以使用SQL语句建立数据库,语句格式为: CREATE DATABASE <数据库名> 其中CREATE DATABASE为关键字,<数据库名>为用户创建的数据库的名称,由用户自定。 使用DROP DATABASE 语句可以删除数据库,语句格式为: DROP DATABASE <数据库名> 其中DROP DATABASE为关键字,<数据库名>为要删除的数据库的名称。当数据库被删除时,数据库中的所有数据对象也一起被删除掉。 2、数据表的创建与删除 使用Create Table语句创建数据表,语句格式为: CREATE TABLE <表名>(<列名> <数据类型> [列级完整性约束条件] [,<列名> <数据类型> [列级完整性约束条件]] … [,<表级完整性约束条件>]); 其中CREATE TABLE为关键字,<表名>为数据表的名称,由用户确定,<列名>为组成这个表的属性列的名称,由用户确定,<数据类型>为属性列的取值的类型,由用户在具体的DBMS所提供的数据类型中选择。 使用Drop Table 语句删除数据表,语句格式为:

相关文档