第一篇:72-sql语言之dql语言实验1
SQL语言之DQL语言实验(1)
【周序】:第七周3-4节课 【课
题】:SQL语言之DQL语言
知识目标:熟悉使用条件查询;
思想目标:让学生对sql语句有初步的了解;
能力目标:熟练使用条件查询;
【教学重点】:
条件查询(用sql语言);
【教学难点】:
条件查询(用sql语言);
【课
时】:
2课时
【教学环境】:
机房
【教学方法】:
实验法、演示法、辅导法
【教学内容】:
实验内容:
1、创建一个名称为factory的数据库(此为上周实验,如数据库被人删除可用企业管理器建设以提高速度)
2、在所建立的数据库factory中,完成如下各题操作:(此为上周实验,如数据库被人删除可用企业管理器建设以提高速度)
a.建立职工表worker,其结构为职工号:int,姓名:char(8),性别:char(2),出生日期:datetime,党员否:bit,参加工作:datetime,部门号:int。其中“职工号”为主键。在worker表中输入记录;
b.建立部门表depart,其结构为:部门号:int,部门名:char(10)。其中“部门号”为主键。在表中输入记录;(要求有5个部门,部门号分别是1,2,3,4,5)
c.建立职工工资表salary,其结构为:职工号:int,姓名:char(8),日期:datetime,工资:decimal(6)。其中“职工号”和“日期”为“主键”。在表中输入记录;
d.建立worker、depart和salary3个表之间的关系(不需要用sql语言实现);
3、查询职工的姓名、职工号和部门号;
4、查询职工号的所有信息(要求用到as 关键字,比如“部门号”以“工作部门”显示等等);
5、查询职工工资大于等于1500的职工工资情况;
6、查询男党员的职工情况;
7、查询出生日期在1980-3-5和1960-8-3之间,或者是女职工的情况;
8、查询部门号不在集合(‘1’,‘2’,‘3’)内的职工情况;
9、查询部门名为空的部门情况;
10、查询姓李的职工情况;(注意区别%和-的作用);
先上机演示,接着让学生自己动手操作。在操作期间,进行走动以辅导学生!
做完实验者请举手以便检查打分。
【课堂小结】:
今天我们利用上节课所学内容进行了条件查询,希望同学们能理解透彻。【作业布置】:
做完实验,大家填写实验报告册!。
【教学后记】:
同学们第一次接触查询语句,条件查询他们都感觉非常有用,但实验完成情况不太理想。
第二篇:52-sql语言之ddl语言-表的管理实验
SQL语言之DDL语言-表的管理实验
【周序】:第五周3-4节课
【课题】:数据库管理(sql语句)
知识目标:熟悉用sql语言对数据表进行管理;
思想目标:让学生对数据表的管理语句有初步的了解;
能力目标:熟练使用查询分析器进行脚本的编写和编译运行;
【教学重点】:
数据表的基本管理(用sql语言);;
【教学难点】:
数据表的基本管理(用sql语言);;
【课时】:
2课时
【教学环境】:
机房
【教学方法】:
实验法、演示法、辅导法
【教学内容】:
实验内容:
1、上周实验未完成者继续操作以前实验;
2、创建一个名称为factory的数据库
3、在所建立的数据库factory中,完成如下各题操作:
a.建立职工表worker,其结构为职工号:int,姓名:char(8),性别:char(2),出生日期:datetime,党员否:bit,参加工作:datetime,部门号:int。其中“职工号”为主键。在worker表中输入记录;
b.建立部门表depart,其结构为:部门号:int,部门名:char(10)。其中“部门号”为主键。在表中输入记录;
c.建立职工工资表salary,其结构为:职工号:int,姓名:char(8),日期:datetime,工资:decimal(6)。其中“职工号”和“日期”为“主键”。在表中输入记录;
d.建立worker、depart和salary3个表之间的关系(不需要用sql语言实现);
4、利用修改表关键字(alter)来完成下面的约束完整性定义:
a.实施worker表的“性别”字段默认值为“男”的约束,并进行验证;
b.实施salary表的“工资”字段值限定在0---9999的约束,并进行验证;
c.为worker表建立外键“部门号”,参考表depart的“部门号”列,并进行验证;
验证完之后分别删除abc所建立的约束;
5、建立数据表delete,并用sql语言进行删除。
先上机演示,接着让学生自己动手操作。在操作期间,进行走动以辅导学生!
做完实验者请举手以便检查打分。
【课堂小结】:
今天我们利用上节课所学内容进行了数据表的管理实验,希望同学们能理解透彻。
【作业布置】:
做完实验,大家填写实验报告册!。
【教学后记】:
利用sql语句对数据表进行管理,学生都觉得不可思议,并且也很好学,但很多学生由于英语过差,实验完成情况不太理想。
第三篇:实验四SQL语言
实验四 SQL语言——数据更新操作
2007-06-16 01:12:44|分类: 课程作业 |标签:数据更新操作sql语言|字号大中小 订阅
实验四 SQL语言——数据更新操作
三、实验条件与环境
1.通用PC机
2.PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台 3.PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)
4.最好有一台公用的SQL Server 2000 服务器
四、实验目的1.通过上机实验进一步加深对SQL数据更新(插入、修改及删除)语句的基本语法格式的掌
握
2.通过上机实验掌握单个元组插入操作的实现过程
3.通过上机实验掌握多个元组插入操作的实现过程
4.通过上机实验掌握单个元组修改操作的实现过程
5.通过上机实验掌握多个元组修改操作的实现过程
6.通过上机实验掌握单个元组删除操作的实现过程
7.通过上机实验掌握多个元组删除操作的实现过程
8.通过上机实验加深对更新操作时数据库中数据一致性问题的了解
9.通过上机实验加深对约束条件在数据更新操作执行中的作用问题的了解
五、实验要求
1.本实验所有实验内容要求在规定时间(2课时)内完成2.实验内容中涉及到的各更新操作均通过SQL语言来实现
3.本实验中各操作内容的执行均会更新当前数据库,为便于下一实验内容的顺利执行,请在每成功完成一个实验内容后重新导入初始状态下的实验数据库
4.实验完成后需要书写实验报告,本次实验报告需在下次实验课堂上上交
六、实验内容:
1.在S表中插入元组“s6,华誉,40,广州,02085268888”
2.在J表中插入元组“j8,传感器厂”
3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库
4.将P表中PNO值为p6的元组的color属性值改为绿,weight属性值改为60
5.将SPJ表中前4个元组的qty属性值统一修改为300
6.将S表中city属性名含有“京”或“津”的相应status属性值增加100
7.将供应商s2为“一汽”工程项目所供应的零件数量修改为2000
8.将全部红色零件的颜色修改为浅红色
9.由s5供给j4的零件p6改为由s3供应,请在数据库中作必要的数据修改
10.在SPJ表中新增一列属性名为SDATE的属性列,对该表中的每一元组在SDATE属性列
上填上实验当时的日期和时间
11.删除所在城市为“广州”的供应商记录
12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的记录
13.删除s3和s4两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况数
据信息
七、实验总结:
数据更新操作(插入操作[INSERT]、修改操作[UPDATE]、删除操作[DELETE])是关系数据库系统中一种极为重要、数据更新能力强、使用灵活的数据操纵方式,此数据操作的使用不是完全独立的,而是和数据定义操作、数据查询操作有着紧密联系的。实验完成后,请同学们总结一下SQL语言在实现各种数据更新操作时与数据定义操作和数据查询操作两类操作之间的相互联系,通过深入总结,从而学会利用SQL语言实现较为复杂的数据更新任务。
实验四 SQL语言——数据更新操作
实验内容参考答案
六、实验内容
1.在S表中插入元组“s6,华誉,40,广州,02085268888”
use shiyan
go
insert
into s
values('s6','华誉',40,'广州','02085268888')
2.在J表中插入元组“j8,传感器厂”
use shiyan
go
insert
into j(jno,jname)
values('j8','传感器厂')
3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库
use shiyan
go
create table TotalQTYofS(SNO char(4)not null unique,TotalQTY int);
insert
into TotalQTYofS
select sno,sum(qty)
from spj
group by sno;
4.将P表中PNO值为p6的元组的color属性值改为绿,weight属性值改为60
use shiyan
go
update p
set color='绿',weight=60
where pno='p6'
5.将SPJ表中前4个元组的qty属性值统一修改为300
use shiyan
go
update spj
set qty=300
from(select top 4 * from spj order by sno)as table1
where spj.sno=table1.sno
6.将S表中city属性名含有“京”或“津”的相应status属性值增加100
use shiyan
go
update s
set status=status+100
where city like '%京%' or city like '%津%
7.将供应商s2为“一汽”工程项目所供应的零件数量修改为2000
use shiyan
go
update spj
set qty=2000
where sno='s2' and jno=(select jno
from j
where jname='一汽')
8.将全部红色零件的颜色修改为浅红色
use shiyan
go
update p
set color='浅红'
where color='红'
9.由s5供给j4的零件p6改为由s3供应,请在数据库中作必要的数据修改
use shiyan
go
update spj
set sno='s3'
where sno='s5' and jno='j4' and pno='p6'
10.在SPJ表中新增一列属性名为SDATE的属性列,对该表中的每一元组在SDATE属性列
上填上实验当时的日期和时间
use shiyan
go
alter table spj
add SDATE datetime
update spj
set SDATE=getdate()
11.删除所在城市为“广州”的供应商记录
use shiyan
go
delete
from s
where city='广州'
12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的记录
use shiyan
go
delete
from p
where pname like '螺%'
delete
from spj
where pno in(select pno
from p
where pname like '螺%')
13.删除s3和s4两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况数据信息
use shiyan
go
delete
from spj
where(sno='s3' or sno='s4')and jno in(select jno
from j
where jname='三建')and pno in(select pno
from p
where pname='螺母' or pname='螺丝刀')
第四篇:实验三 SQL语言的DDL
实验三 视图、存储过程的定义和使用
一、实验目的SQL(Structured Query Language)语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解DDL语言的CREATE、DROP、ALTER对视图和存储过程的操作,学会SQL Server 2000的查询分析器中实现视图的创建、查看、修改和删除;实现对存储过程的创建、修改、撤消和运行。
本实验需2学时。
二、实验内容
1. 启动数据库服务软件SQL Server 2000的查询分析器,用如下语句对视图进行操作,详
细的语法格式参看课本相应章节:
Create view 创建视图
Drop view删除视图
Select * from 视图名查询视图
2. 如下语句对存储过程进行操作,详细的语法格式参看课本相应章节:
Create proc 过程名
Dropproc 过程名
三、实验任务
1.打开数据库SQL Server 2000的查询分析器,用Create Table建表student。
2.向表中填入教材P82数据
3.根据student表创建视图V_stud.4.使用视图v_stud,向原student表中插入一行记录。
5.根据P82,创建SC表,创建视图,通过视图查看学生的姓名和选课情况。
6. 删除视图v_stud.7.根据student,sc,c三个表,创建存储过程proc1,查看学生的姓名,选课的课程名和相应的成绩。
8. 执行proc1
9.修改该存储过程为p_proc,并删除proc1.运行以上语句,并观察结果.10.将以上的SQL语言以报告的形式写出来,以备老师检查。
第五篇:sql语言
11.2.2 数据定义命令
1.CreateTable命令
Create Table <表名>(<列名1><数据类型1>[<列级完整性约束1>][,<列名2>] <数据类型2>[<列级完整性约束2>][,……][,<列名n>] <数据类型n>[<列级完整性约束n>][<表级完整性约束n>]); 语句功能:创建一个以<表名>为名的、以指定的列属性定义的表结构。
2.Alter Table命令
Alter Table<表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ]
[ DROP <完整性约束名> ]
[ MODIFY <列名> <数据类型> ];
语句功能:修改以<表名>为名的表结构。
3.Drop命令
Drop Table <表名>
语句功能:删除以<表名>为名的表。
11.2.3 数据查询命令 SELECT
语法形式为:
SELECT [ALL|DISTINCT] 目标列FROM 表(或查询)
[WHERE 条件表达式]
[GROUP BY 列名1 HAVING 过滤表达式]
[ORDER BY 列名2[ASC|DESC]]
功能
根据WHERE子句中的表达式,从指定的表或视图中找出满足条件的记录,按目标列显示数据GROUP BY子句按列名1的值进行分组,每一组产生一条记录,HAVING短语对组进行输出过滤
ORDER BY子句按列名2 对查询结果的值进行排序
1.SELECT语句示例
例11.1查询所有学生的基本情况
SELECT学号,姓名,性别,出生日期,专业
FROM Student;
例11.2查询所有男生的信息记录。
SELECT *
FROM student
WHERE 性别=“男”;
例11.1查询所有的专业,查询结果中不出现重复的记录。
SELECT DISTINCT 专业 FROM Student ;
例11.4 查询学生的人数和平均年龄
SELECT Count(*)AS 人数,Avg(Year(Date())-Year(出生年月))AS平均年龄 FROM Student ; 例85 查询计算机专业学生的学号、姓名和专业
SELECT 学号,姓名,专业 FROM Student WHERE 专业=“计算机” ;
例11.6显示所有非计算机专业学生的学号、姓名和年龄
SELECT 学号, 姓名, Year(Date())-Year(出生年月)AS 年龄
FROM StudentWHERE 专业<>“计算机” ;
例11.7 查询1981年(包括1981年)以前出生的女生姓名和出生年月。
SELECT 姓名,出生年月 FROM Student
WHERE 出生年月 < #1/1/1982# AND 性别=“女” ;
例11.8 查询选修了1号课程的学生的学号及其成绩,查询结果按分数降序排列。
Select 学号,成绩Fromsc
Where课程号= “1”
Order By 成绩 DESC;
例11.9查询选修了2门(包括2门)以上课程的学生的学号和课程数
SELECT 学号, Count(*)AS 课程数 FROM Sc
GROUP BY 学号HAVING Count(*)>=2 ;
例11.10查询所有课程的成绩在70分以上的学生的学号
SELECT 学号 FROM ScGROUP BY 学号
HAVING Min(成绩)>=70 ;
例11.11 查询所有学生的学号、姓名、课程和成绩
SELECT Student.学号,Student.姓名,Sc.课程, Sc.成绩
使用内连接格式
SELECT Student.学号,Student.姓名,Sc.课程,Sc.成绩
2.ORDER BY、GROUP BY、HAVING子句示例
例11.12 对学生成绩表,统计每人的平均分和课程数,按学号递减排序
SELECT学号, COUNT(课程号)AS 课程数, AVG(成绩)AS平均成绩
FROM sc
学号
ORDER BY学号DESC;
例11.13查询选修了2门(包括2门)以上课程、最低成绩在60分以上的学生的学号、课程数和最低分 SELECT 学号, Min(成绩)AS 成绩之Min, Count(课程)AS 课程之Count FROM ScGROUP BY Sc.学号
HAVING(((Min(成绩))>=60)AND((Count(课程))>2));
3、多表连接查询SELECT语句
WHERE 条件,在两表中有相同的属性值
例11.14 查询所有学生的学号、姓名、课程和成绩
SELECT Student.学号,Student.姓名,Sc.课程, Sc.成绩
FROM Student,Sc WHERE Student.学号 = Sc.学号;
4.嵌套查询
在SQL中,将一个SELECT语句查询块嵌套在另一个SELECT语句的WHERE子句或HAVING子句中称为嵌套查询
例11.15 查询没有学过大学计算机基础的学生的学号、姓名和专业
SELECT Student.学号, Student.姓名, Student.专业
FROM Student
(SELECT Sc.学号
FROM Sc
WHERE Sc.课程=“大学计算机基础”);
嵌套查询示例
例11.16 查询与“邓倩梅”在同一个专业的学生的学号和姓名
SELECT Student.学号, Student.姓名
FROM Student
WHERE
FROM Student
11.2.4SQL中的数据更新命令
结构化查询语言SQL是操作关系数据库的工业标准语言
在SQL中,常用的语句有两类:
数据查询语句 SELECT
数据更新命令 INSERT、UPDATE、DELETE
INSERT语句用于数据插入 其语法格式为:
插入一条记录
INSERT INTO 表名 [(字段1,…,字段n)] VALUES(值1,…,值n)
插入查询的结果
INSERT INTO 表名(字段1,…,字段n)VALUES 子查询
数据更新-INSERT语句实例
例11.17向表Students中插入一条记录
Insert Into student(学号, 姓名, 出生日期,性别, 专业)VALUES(“20031011”, “陈伟”,男“, ”化学“)
注意:
字符型常量用 单引号 或 双引号 括起来
逻辑型字段的值是 True/False、Yes/No 或 On/Off
日期的表示形式为 MM/DD/YY 或 MM/DD/YYYY
数据更新-DELETE语句
DELETE语句用于数据删除其语法格式为:
DELETE FROM 表 [WHERE 条件]
注意: WHERE子句缺省,则删除表中所有的记录(表还在)
例11.18 删除表Students中所有学号为990301的记录
DELETE FROM Students WHERE 学号=“990301”
例11.19 删除表Sc中成绩低于70分的记录
DELETE FROM Sc WHERE 成绩<70
数据更新-UPDATE语句
UPDATE语句用于数据修改其语法格式为:
UPDATE 表 SET 字段1=表达式1, …,字段n=表达式n [WHERE 条件]
注意: WHERE子句缺省,则修改表中所有的记录
例11.20 将表Student中学生王涛的姓名改为王宝 #12/28/80#,”
UPDATE Students SET 姓名=“王宝” WHERE 姓名=“王涛”
UPDATE语句一次只能对一个表进行修改
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。包括数据定义、数据操纵、数据查询和数据控制四个方面,共9个命令。
SQL语言使用使用数据定义语言(Data Definition Language,简称DDL)实现数据定义功能。1、创建数据表
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),<字段名2>…])
【功能】定义(也称创建)一个表结构。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),[NULL|NOTNULL]<字段名2>…])
【功能】定义(也称创建)一个表结构。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),[NULL|NOTNULL]
[CHECK<表达式>[error<提示信息]
<字段名2>…])
【功能】定义(也称创建)一个表结构。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),[NULL|NOTNULL]
[CHECK<表达式>[error<提示信息]
[DEFAULT<表达式>]
<字段名2>…])
【功能】定义(也称创建)一个表结构。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),[NULL|NOTNULL]
[CHECK<表达式>[error<提示信息]
[DEFAULT<表达式>]
[PRIMARY KEY/UNIQUE]
<字段名2>…])
【功能】定义(也称创建)一个表结构。
【例11-1】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3);三好生(L);特长(M);照片(G)。
CREATE TABLESTUD
(学号C(8),姓名C(8),性别 C(2),出生年月 D, 入校总分 N(3),;三好生 L,特长 M,照片 G)
【例11-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。
并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。
CREATE TABLESTUD
(学号C(8)PRIMARY KEYNOT NULL,;
姓名C(8),;性别C(2),;出生年月 D,;入校总分 N(3))
【例11-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。
并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。
CREATE TABLESTUD
(学号C(8)PRIMARY KEYNOT NULL,;
姓名C(8), NOT NULL;性别C(2),;出生年月 D,;入校总分 N(3))
【例11-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。
并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。
CREATE TABLESTUD
(学号C(8)PRIMARY KEYNOT NULL,;
姓名C(8), NOT NULL;
性别C(2), DEFAULT=“男”CHECK 性别=“男”OR 性别 =“女” ERROR“性别必须是男或女”;出生年月 D,;入校总分 N(3))
【例11-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。
并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。
CREATE TABLESTUD
(学号C(8)PRIMARY KEYNOT NULL,;
姓名C(8), NOT NULL;
性别C(2), DEFAULT=“男”CHECK 性别=“男”OR 性别;
=“女” ERROR“性别必须是男或女”;
出生年月 D, CHECK(出生年月)<={^1990-01-01} and 出生;
年月>={^1970-01-01},;
入校总分 N(3))
2、修改数据表
【命令格式1】
ALTER TABLE <表名>[ADD/ ALTER
[COLUMN] <新字段名><数据类型>[<宽度>[,<小数位数>]]
[NULL |NOTNULL]]
[CHECK<表达式>[error<提示信息>]]
[DEFAULT <表达式>]
[PRIMARY KEY/UNIQUE]]
【功能】修改表结构。、插入记录
【格式1】INSERTINTO<表名>[<字段名表>]VALUES(<表达式表>)
【格式2】INSERTINTO<表名>FROMARRAY<数组名>|FROMMEMVAR
【功能】在指定的表文件末尾追加一条记录。格式1用表达式表中的各表达式值赋值给<字段名表>中的相应的各字段。格式2用数组或内存变量的值赋值给表文件中各字段。
【说明】如果某些字段名在INTO子句中没有出现,则新记录在这些字段名上将取空值(或默认值)。但必须注意的是,在表定义说明了NOTNULL的字段名不能取空值。
<字段名表>:指定表文件中的字段,缺省时,按表文件字段的顺序依次赋值。
<表达式表>:指定要追加的记录各个字段的值。
【例11-6】在表文件STUD的末尾追加三条记录。
***用表达式方式追加第一条记录***
INSERTINTOSTUD
(学号,姓名,性别,班级名,系别代号);
VALUES
(“011110”,“李建国”,“男”,“计0121”,“01”)
DIMENSIONDATA[5]
DATA(1)=“011103”
DATA(2)=“李宁”
DATA(3)=“女”
DATA(4)=“电0134”
DATA(5)=“02”
INSERTINTOSTUDFROMARRAYDATA