实验四-SQL语言及应用

实验四-SQL语言及应用
实验四-SQL语言及应用

实验四SQL语言及其应用

实验报告

姓名:班级:学号:

一、实验目的

1)掌握数据查询的各种应用

2)掌握数据操纵的各种应用

3)掌握事务处理方法

4)了解常用SQL函数的应用

二、预习内容

1)根据SQL语言实现功能的不同,Oracle数据库中的SQL语言可以分为哪几类?

2)SQL语言的特点是什么?

3)Oracle中常用的数据查询方式有哪些?

4)什么是事务?事务处理的特性有哪些?有哪两种事务处理方式?

三、实验环境

32位Windows XP/32位或64位Win7/Windows Server2003 +Oracle10g环境

四、实验内容

根据Oracle数据库scott模式下的emp表和dept表,完成下列操作。

1)查询20号部门的所有员工信息。

2)查询所有工种为CLERK的员工的员工号、员工名和部门号。

3)查询奖金(COMM)高于工资(SAL)的员工信息。

4)查询奖金高于工资的20%的员工信息。

5)查询所有工种不是MANAGER和CLERK, 且工资大于或等于2000的员工的详细信息。

6)查询没有奖金或奖金低于100的员工信息。

7)查询工龄大于或等于10年的员工信息。

8)查询员工名正好为6个字符的员工的信息。

9)查询员工姓名的第2个字母为“M”的员工信息。

10)显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序,若月份相同则按入职的年份排序。

11)查询工资比SMITH员工工资高的所有员工信息。

12)查询所有员工的姓名及其直接上级领导的姓名。

13)查询入职日期早于其直接上级领导的所有员工信息。

14)查询所有工种为CLERK的员工的姓名及其部门名称。

15)查询平均工资低于2000的部门及其员工信息。

16)查询最低工资大于2500的各种工作。

17)查询工资高于公司平均工资的所有员工信息。

18)查询工资高于30号部门中工作的所有员工工资的员工的姓名和工资。

19)查询每个部门中的员工数量、平均工资和平均工作年限。

20)统计各个部门中各工种的人数、平均工资和最高工资。

21)查询工资高于本部门平均工资的员工的信息及其部门的平均工资。

22)查询人数最多的部门信息。

23)查询所有员工中工资排序在5-10名之间的员工信息。

24)向emp表中插入一条记录,员工名为FAN,员工号为8000,其他信息与SMITH 员工的信息相同。

25)将各部门员工的工资修改为该员工所在部门平均工资加1000。

五、实验步骤

写出每一条实验内容对应的SQL语句。

六、实验总结

本此实验中有很多的不足,这次的作业量很大,输入的SQL语句命令很多,在这我出现了很多问题,但同时也让我学会了很多。

VFP实验5 SQL语言的应用-参考答案

实验5 SQL语言的应用 【实验目的】 1.掌握SQL的基本语句的使用 2.掌握SELECT命令的基本用法 3. 掌握对查询的结果进行处理 4.掌握用查询设计器建立查询的方法 【实验内容与操作步骤】 说明:红色字体为答案 设置VFP的默认工作目录为D:\EX7,并完成以下各操作,将操作结果存入D:\EX5文件夹中。 1、使用SQL语句实现下列功能: ( creat table 学生成绩(学号C(7),姓名C(8),入学成绩N(5,1)) (2)使用ALTER TABLE命令,增加一个字段:性别C(2),并将“学号”的字段长度改为8。 alter table 学生成绩add 性别C(2) alter table 学生成绩alter 学号C(8) ( insert into 学生成绩values("0503102","李丽",680,"女") insert into 学生成绩values("0603101","王庆",600,"男") 或者是: Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503101”,”张海”,660,”男”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503102”,”李丽”,680,”女”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0603101”,”王庆”,600,”男”)

庆”,600,”男”) (4)使用DELETE 删除“王庆”的记录。 dele from 学生成绩where 姓名="王庆" (5)使用UPDATE命令将所有人的“入学成绩”置为0。 update 学生成绩set 入学成绩=0 2、使用SQL语句中的SELECT命令来实现下列查询: (1)查询“学生.dbf”表中全部记录,输出“学号”、“姓名”、“性别”、“出生日期”和“入学成绩”这5个字段的内容; select 学号,姓名,性别,出生日期,入学成绩from 学生 (2)查询“学生.dbf”表中的性别为男的所有内容,并按“学号”的降序排列; select * from 学生where 性别=”男” order by 学号 (3)查询“学生.dbf”表中的全部学生中的入学最高分; select max(入学成绩) from 学生 (4)查询“学生.dbf”表中的数学专业和英语专业的学生的学号,姓名和专业; select 学号,姓名,专业from 学生where 专业=”数学” or 专业=”英语” (5)查询“学生.dbf”表中的入学成绩在550到650之间的学生的学号,姓名和入学成绩,并按“入学成绩”的降序排序; select 学号,姓名,入学成绩from 学生where 入学成绩>=550 and 入学成绩<=650 order by 入学成绩 (6)利用学生表中的数据创建一个查询,其结果包含学号、姓名、性别、出生日期、专业和入学成绩6个字段,查询结果按入学成绩由高分到低分排序,并将查询结果保存到一个“学生情况表.DBF”文件中; select 学号,姓名,性别,出生日期,专业,入学成绩from 学生order by 入学成绩desc into table 学生情况表 【思考题】 请参考教材6.4.3 嵌套查询、6.4.4 多表联接查询、6.4.5查询结果输出处理做如下练习。写出相应的SQL命令并上机运行。 (1)查询“学生.dbf”和“学生其它情况.dbf”表中的所有姓“李”的学生的学号、姓名和身份证; (2)查询“成绩.dbf”和“课程.dbf”表中的选修“计算机基础”的所有学生的学号和成绩,按“学号”的升序进行排序,并输出到TEST文件中; (3)查询“学生.dbf”、“成绩.dbf”和“课程.dbf”表中的选修“电脑文秘应用”的所有学生的学号,姓名,课名和总评(总评=(平时+期中+期末)/3);

SQL基本语句和语句强化(全)

一、简单查询 1、列出全部学生的信息。 SELECT * FROM 学生 2、列出软件专业全部学生的学号及姓名。 SELECT 学号,姓名FROM 学生WHERE 专业="软件" 3、列出所有必修课的课号。 SELECT DISTINCT 课号FROM 必修课 4、求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出。 SELECT 学号,成绩FROM 选课WHERE 课号="1" AND 成绩>80 ORDER BY 成绩DESC 5、列出非软件专业学生的名单。 方法一:SELECT 姓名FROM 学生WHERE 专业<>"软件" 方法二:SELECT 姓名FROM 学生WHERE NOT 专业="软件" 方法三:SELECT 姓名FROM 学生WHERE 专业!="软件" 6、查询成绩在70~80分之间的学生选课得分情况 方法一:SELECT * FROM 选课WHERE 成绩>=70 AND 成绩<=80 方法二:SELECT * FROM 选课WHERE 成绩BETWEEN 70 AND 80 不在此范围内的查询:(注意写出和以下语句等价的语句) SELECT * FROM 选课WHERE 成绩NOT BETWEEN 70 AND 80 7、列出选修1号课或3号课的全体学生的学号和成绩。 方法一:SELECT 学号,成绩FROM 选课WHERE 课号="1" OR 课号="3" 方法二:SELECT 学号,成绩FROM 选课WHERE 课号IN ("1","3") 相反条件查询:SELECT 学号,成绩FROM 选课WHERE 课号NOT IN ("1","3") 8、列出所有98级学生的学生成绩情况。 SELECT * FROM 选课WHERE 学号LIKE "98%"

数据库-SQL语言的实验

北华航天工业学院《数据库原理与应用》 实验报告 报告题目:SQL语言 作者所在系部:计算机系 作者所在专业:网络工程 作者学号:20114052233 作者姓名: 张旭刚 指导教师姓名:李建义 完成时间:20134.24 北华航天工业学院教务处制

SQL语言 一、实验目的 1、理解数据库以及数据表的设计; 2、熟悉SQLServer2005中的数据类型; 3、熟悉使用SQL语句创建和删除模式和索引; 4、掌握使用SQL语句创建、修改和删除数据表; 5、掌握使用SQL语句查询表中的数据; 6、掌握使用SQL语句插入、修改和删除数据表中的数据; 7、掌握使用SQL语句创建、删除、查询和更新视图。 二、实验内容 (一)创建数据库和模式 1、通过SQL语句创建图书信息管理数据库,命名为“db_Library”,数据文件和日志文件放在D盘下以自己学号和姓名命名的文件夹中,数据文件的逻辑名为db_Library_data,数据文件的操作系统名为db_Library_data.mdf,文件初始大小为10MB,最大可增加至300MB,增幅为10%;日志文件的逻辑名为db_Library_log,日志文件的操作系统名为db_Library_data.ldf,文件初始大小为5MB,最大可增加至200MB,增幅为2MB。 2、通过SQL语句在该数据库中创建模式L-C。 (二)创建和管理数据表 要求为各数据表的字段选择合适的数据类型及名称;为各数据表设置相应的完整性约束条件。 1、通过SQL语句将以下数据表创建在L-C模式下: 课程信息表(tb_course)——课程编号、课程名、先修课、学分 2、通过SQL语句将以下数据表创建在该数据库的默认模式dbo下: 图书类别信息表(tb_booktype)——类别编号、类别名称 图书信息表(tb_book)——图书编号、类别编号、书名、作者、出版社、定价、库存数 读者信息表(tb_reader)——读者编号、姓名、性别、学号、班级、系部 借阅信息表(tb_borrow)——图书编号、读者编号、借阅日期、归还日期 3、通过SQL语句对读者信息表进行修改:删除系部字段、添加所在系字段。 4、通过SQL语句对图书信息表进行修改:将定价的数据类型改为REAL。 5、通过SQL语句删除课程信息表。 (三)创建和删除索引 1、使用SQL语句在图书信息表上创建一个非聚簇索引IX_S_QUANTITY,要求按照该表中库存数字段的降序创建。 2、使用SQL语句在读者信息表上创建一个唯一的非聚簇索引IX_S_NAME,要求按照该表中的姓名字段的升序创建。 3、使用SQL语句删除之前创建的两个索引。 (四)数据库及数据表设计 根据周围的实际应用情况,自选一个小型的数据库应用项目进行研究,完成该系统的设计。要求2人一组,通过需求分析,列出系统的主要功能,并完成该系统数据库的逻辑结构设计。例如可选择学籍管理系统、企业进销存管理系统、人事管理系统或在线考试系统等。

sql实验5(一)

实验报告专用纸 实验5 索引和视图 三、实验内容 1.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的student_info和curriculum创建主键索引。 ①、使用企业管理器为studentsdb数据库的student_info创建主键索引。 ②使用企业管理器为studentsdb数据库的curriculum创建主键索引。(将课程表的课程编号属性设为主键,系统将自动创建主键索引) ③使用Transact-SQL语句为studentsdb数据库的student_info创建主键索引。(将先前创建好的主键移除) create clustered index student_info_idx on student_info(学号)

④使用Transact-SQL语句为studentsdb数据库的curriculum创建主键索引。(将先前创建好的主键移除) create clustered index curriculum_idx on curriculum(课程编号) 2.使用企业管理器按curriculum的课程编号列创建唯一性索引。

3.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index

①使用企业管理器为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引。 ②使用Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引。(删除之前所创建的索引)

实验五 SQL语句应用

实验5 SQL语句应用 1 实验目的 (1)掌握数据的插入、修改和删除操作。 (2)掌握不同类型的数据查询操作。 2 实验要求 (1)利用SQL语句对图书销售系统表进行插入、修改、删除和查询操作。 3 实验步骤 (1)以bs用户登录BOOKSALES数据库,将表1至表6中的数据插入到数据库的相应表中。 表1CUSTOMERS 表2PUBLISHERS

表3BOOKS 表4ORDERS ORDERITEM 表5 表6PROMOTION

(2)将ISBN为978-7-121-18619-8的图书的零售价格(retail)修改为30。Update books set retail=30 where isbn=’978-7-121-18619-8’; (3)将订单号为1000的订单的发货日期修改为“2013-2-2”。 Update orders set shipdate=to_date('2013-02-02','yyyy-mm-dd') where order_id=1000; (4)已知当前有一个图书表OLDPUBLISHERS,其表中数据如下: publisher_id name contact phone 1 电子工业出版社李明0 2 机械工业出版社孙浩 3 人民邮电出版社张春 4 传智播客吴瑞997990 请将表中的数据与PUBLISHERS中的数据进行合并。 创建表: CREATE TABLE OLDPUBLISHERS ( 2 publisher_id CHAR(10) PRIMARY KEY, 3 name VARCHAR2(25), 4 contact V ARCHAR2(25),

实验5 sql语句练习——图书馆数据库答案

实验5sql语句练习——图书馆数据库 实验5 sql语句练习——图书馆数据库 实验目的 (1)了解SQL Server数据库的逻辑结构和物理结构; (2)了解表的结构特点; (3)了解SQL Server的基本数据类型; (4)了解空值概念; (5)学会在企业管理器中创建数据库和表; (6)学会使用T-SQL语句创建数据库和表。 (7)学会使用T-SQL语句更新数据。 (7)学会使用T-SQL语句创建多种查询。 实验准备 首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 其次创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数据库的文件。 然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。 此外还要了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL的CREATE DA TABASE语句。 实验内容 假设有5本书 设有一图书馆数据库,其中包括3个表,即图书表、读者表和借阅表。三个表的结构如图: 读者表结构

(1)用Sql语句创建图书馆数据库 Create database Lab05 (2)用Sql语句创建上述3个表 create table book ( bookId char(10)primary key, bookName varchar(50), bookWriter varchar(30), bookPublish varchar(30), bookPrice float ) create table reader ( readerId char(10) primary key, readerName varchar(8)not null, readerSex char(2)not null, readerOfficeTel char(8), readerDepartment varchar(30) ) create table 借阅表 ( readerId char(10), bookId char(10), checkOutTime char(8), checkInTime char(8), primary key(readerId,bookId), foreign key (readerId) references reader(readerId), foreign key (bookId) references book(bookId), ) (3)基于图书馆数据库的3个表,用sql语言完成一下操作:1)为图书表增加一列“ISBN”,数据类型为CHAR(10)

数据库第4章 SQL语言基础及数据定义功能

第4章 SQL语言基础及数据定义功能 用户使用数据库时需要对数据库进行各种各样的操作,如查询数据,添加、删除和修改数据,定义、修改数据模式等。DBMS必须为用户提供相应的命令或语言,这就构成了用户和数据库的接口。接口的好坏会直接影响用户对数据库的接受程度。 数据库所提供的语言一般局限于对数据库的操作,它不是完备的程序设计语言,也不能独立地用来编写应用程序。 SQL(Structured Query Language,结构化查询语言)是用户操作关系数据库的通用语言。虽然叫结构化查询语言,而且查询操作确实是数据库中的主要操作,但并不是说SQL只支持查询操作,它实际上包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。 SQL已经成为关系数据库的标准语言,所以现在所有的关系数据库管理系统都支持SQL。本章将主要介绍SQL语言支持的数据类型以及定义基本表和索引的功能。 4.1 SQL语言概述 SQL语言是操作关系数据库的标准语言,本节介绍SQL语言的发展过程、特点以及主要功能。 4.1.1 SQL语言的发展 最早的SQL原型是IBM的研究人员在20世纪70年代开发的,该原型被命名为SEQUEL (Structured English QUEry Language)。现在许多人仍将在这个原型之后推出的SQL语言发音为“sequel”,但根据ANSI SQL委员会的规定,其正式发音应该是“ess cue ell”。随着SQL语言的颁布,各数据库厂商纷纷在其产品中引入并支持SQL语言,尽管绝大多数产品对SQL语言的支持大部分是相似的,但它们之间还是存在一定的差异,这些差异不利于初学者的学习。因此,我们在本章介绍SQL时主要介绍标准的SQL语言,我们将其称为基本SQL。 从20世纪80年代以来,SQL就一直是关系数据库管理系统(RDBMS)的标准语言。最早的SQL标准是1986年10月由美国ANSI(American National Standards Institute)颁布的。随后,ISO(International Standards Organization)于1987年6月也正式采纳它为国际标准,并在此基础上进行了补充,到1989年4月,ISO提出了具有完整性特征的SQL,并称之为SQL-89。SQL-89标准的颁布,对数据库技术的发展和数据库的应用都起了很大的推动作用。尽管如此,SQL-89仍有许多不足或不能满足应用需求的地方。为此,在SQL-89的基础上,经过3年多的研究和修改,ISO和ANSI共同于1992年8月颁布了SQL的新标准,即SQL-92(或称为SQL2)。SQL-92标准也不是非常完备的,1999年又颁布了新的SQL标准,

SQL Serve实验5_索引和视图_要点

实验5 索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。(6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 使用SQL Server管理平台:

a. b. c. d.

e. 使用Transact-SQL语句: (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 使用SQL Server管理平台: 使用SQL语句: use studentsdb go create index grade_index on grade (分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 create index grade_id_c_ind on grade (学号,课程编号)

SQL语言章节练习答案

SQL 语言章节练习答案 一、设有如下关系模式: student(SNO, SNAME , SEX ,BIRTHDAY, CLASS) teacher(TNO,TNAME,SEX,BIRTHDAY,PR OF,DEPART) PROF 为职称,DEPART 为系别 course(CNO, CNAME, TNO) score(SNO, CNO, DEGREE) DEGREE 为成绩 写出实现以下各题功能的SQL 语句: 1.查询至少有2名男生的班号;——(难) SELECT CLASS FROM student WHERE SEX='男' GROUP BY CLASS HAVING COUNT(*)>=2; Having 语句用来对结果集进行附加筛选,通常与group by 语句一起使用。 ************************************************************* 2.查询不姓“王”的同学记录;——(易) SELECT * FROM student WHERE NAME NOT LIKE '王%' 3.查询每个学生的姓名和年龄;——(难) SELECT NAME,2007-year(BIRTHDAY) FROM student 4.查询学生中最大和最小的birthday 日期值;——(中) SELECT MAX(BIRTHDAY), MIN(BIRTHDAY) FROM student 5.查询学生表的全部记录并按班号和年龄从大到小的顺序;——(中) SELECT * FROM student ORDER BY CLASS,BIRTHDAY DESC 6.查询男教师及其所上的课程;——(中) SELECT , FROM teacher , course WHERE = and ='男' 7.查询最高分同学的学号,课程号和成绩;——(中) SELECT * FROM score WHERE degree= ( SELECT max(degree) FROM score ) 满足嵌套子查询的条件(最后投影的属性列可以在一个表格中给出) **************************************88 8.查询和“李军”同性别并同班的所有同学的姓名;——(中) SELECT NAME FROM student WHERE sex= ( SELECT sex FROM student WHERE name='李军' ) and class= ( SELECT class FROM student WHERE name='李军' ) 要习惯用多重条件的复合运算来做题 9.查询选修“数据库系统概论”课程的男同学的成绩表;——(中) SELECT * FROM score WHERE no IN ( SELECT no FROM student WHERE sex='男') and cno= (

数据库实验五:视图的应用

数据库实验五:视图的应用 一、实验目的与要求: 1.实验目的 (1)理解视图的概念; (2)掌握视图的使用方法。 (3)理解视图和基本表的异同之处。 2.实验要求 (1)参照实验五中完成的查询,按如下要求设计和建立视图: 1)基于单个表按投影操作定义视图。 2)基于单个表按选择操作定义视图。 3)基于单个表按选择和投影操作定义视图。 4)基于多个表根据连接操作定义视图。 5)基于多个表根据嵌套操作定义视图。 6)定义含有虚字段的视图。 (2)分别在定义的视图设计一些查询(包括基于视图和基本表的连接或嵌套查询)。 (3)在定义的视图上进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。 (4)在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。 二、实验内容 1、实验原理 (1)视图是用SQL SELECT查询定义的,创建视图命令格式如下: CREATE VIEW <视图名> AS (2)删除视图的命令格式如下: DROP VIEW <视图名> 2、实验步骤与结果 (1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT

STUDIO。 (2)输入自己编好的程序。 (3)检查已输入的程序正确与否。 (4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。 (5)输出程序清单和运行结果。 (1)参照实验五中完成的查询,按如下要求设计和建立视图: 1)基于单个表按投影操作定义视图。 create view v as select教师编号,姓名 from教师 2)基于单个表按选择操作定义视图。 create view v_order as select* from教师 where职称='教授' 3)基于单个表按选择和投影操作定义视图。 create view v_cuss as select教师编号,姓名,职称

数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分 :绩成总

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 2.创建学生关系表S : 3.创建课程关系表C : 课程名学分先行课课程号Cno ccreditCname Cpno 4.创建课程关系表SC : 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 ; Studend create database2.创建学生关系表S : S create table(, 9Sno CHAR()PRIMARYKEY UNIQUE,)(Sname CHAR20CHAR Ssex (2), smallint Sage ,

char Sdept 20(), ); .创建课程关系表C 3: 课程号课程名先行课学分 ccredit Cpno CnoCname table C create (primary key,) Cno char(4Cname CHAR(40 ),char(), 4Cpno ,Ccredit SMALLINT); 4.创建课程关系表SC : 学号课程号成绩 grade Sno Cno createtable SC(9),Sno char(),char Cno (4, Grade smallint); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 ;datetimeadd Sbirthday alter table S 7、删除表S的“年龄”属性列。

数据库系统原理实验报告_SQL查询语句

数据库系统原理 实验报告 :xxx 学号:xxxxxxxx 专业:xxxxx 日期:xxxxx

Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1)Windows 10 2)SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。 表1 学生表 表2 课程表 表3 学生作业表

K001 0433 60 75 75 K001 0529 70 70 60 K001 0531 70 80 80 K001 0591 80 90 90 K002 0496 80 80 90 K002 0529 70 70 85 K002 0531 80 80 80 K002 0538 65 75 85 K002 0592 75 85 85 K006 0531 80 80 90 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80 写出如下SQL语句: 1.查询数据库中有哪些专业班级。(5分) Sql语句: SELECT专业班级 FROM学生表; 查询结果截图: 2.查询在1986年出生的学生的学号、和出生日期。(5分) Sql语句: SELECT学号,,出生日期 FROM学生表 WHERE出生日期LIKE'1986%'; 查询结果截图:

3.查询05级的男生信息。(5分) Sql语句: SELECT* FROM学生表 WHERE学号LIKE'05%'AND性别='男'; 查询结果截图: 4.查询没有作业成绩的学号和课程号。(5分) Sql语句: SELECT学号,课程号 FROM学生作业表 WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL; 查询结果截图: 5.查询选修了K001课程的学生人数。(5分) Sql语句: SELECT COUNT(DISTINCT学号) FROM学生作业表 WHERE课程号='K001'; 查询结果截图:

数据库SQL语句实验报告

《数据库原理及应用》实验报告 SQL语句部分 总成绩:

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 3.创建课程关系表C : 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 create database Studend; create table S ( Sno CHAR(9)PRIMARY KEY, Sname CHAR(20)UNIQUE, Ssex CHAR(2), Sage smallint, Sdept char(20), );

3.创建课程关系表C : 课程号课程名先行课学分 Cno Cname Cpno ccredit create table C ( Cno char(4)primary key, Cname CHAR(40), Cpno char(4), Ccredit SMALLINT, ); 4.创建课程关系表SC : 学号课程号成绩 Sno Cno grade create table SC ( Sno char(9), Cno char(4), Grade smallint, ); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 alter table S add Sbirthday datetime; 7、删除表S的“年龄”属性列。 alter table S drop column Sage;

实验五 SQL查询

实验五SQL语言 一、实验指导书:实验五SQL语言应用 二、学院信息管理.mdb补充(使用SQL语句) (1. 建立一个Student表,它由Sno(学号)、Sname(姓名)、Ssex(性别)、Sage(年龄)、Sdept(所在系)五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。 2. 建立一个SC (学生选课)表,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。) 3. 查询所有姓刘的学生的学号与姓名及其出生年份。 4. 查询全体学生的姓名、学号、班级名称,学院名称。 5. 查询信息学院全体学生的学号、姓名、每门课程的成绩。 6. 查所有年龄在20岁以下的学生姓名及其年龄。 7. 查考试成绩有不及格的学生的学号和姓名。有多门课程不及格的学生,学号和姓名只显示一次。 8. 查信息学院和工程学院学生的姓名和性别。 9. 查询选修了“数据库应用”课程的学生的学号及其成绩,查询结果按分数的降序排列 10. 查询选修了“数据库应用”课程的学生人数 11. 查询每个学生及其选修的课程名其及成绩。 三、(教学管理.mdb) 使用SQL语句完成下列操作。 1.创建一个“雇员”表,字段包括雇员号(主键)、姓名(必填字段)、性别、出生日期、 部门、备注字段。 2.在“雇员”表中增加一个字段,字段名为“职务”,数据类型为“文本”;将“备注”字 段删除;将“雇员号”字段的数据类型改为文本型,字段大小为8. 3.将一条新记录插入到“雇员”表中。其中雇员号为“0001”,“姓名”为“张磊”,“性别” 为“男”,出生日期为1960年1月1日,“部门”为“办公室”。 4.将一条新记录插入到“雇员”表中。其中雇员号为“0002”,“姓名”为“王宏”,“性别” 为“男”。 5.将“雇员”表张磊的出生日期改为1960年1月11日。 6.将“雇员”表中雇员号为“0002”的记录删除。 7.删除已建立的“雇员”表。 8.查找并显示“教师”表中的所有字段。 9.查找1992年参加工作的男教师,并显示“姓名”、“性别”、“学历”、“职称”、“系别” 和“联系电话”。 10.计算每名学生的平均成绩,并按平均成绩降序显示。 11.查找学生的选课成绩,并显示“学生编号”、“姓名”、“课程名称”和“成绩”。 12.显示“90分以上学生情况”表中所有记录和“学生成绩查询”中80分一下的记录,显 示内容为“学生编号”、“姓名”、“成绩”3个字段。 13.查询并显示“学生”表中高于平均年龄的学生记录。

第四章 SQL语言

第四章 SQL 4.1.SQL语言简介 最早在IBM System-R RDBMS上使用的查询语言;由于其广泛的使用,出现标准化需求,形成SQL标准;有了标准,用户可评判厂家的SQL版本,基于非标准的SQL特性的应用不易移植。 第一个SQL标准由ANSI于1986年制订,称为SQL-86;1989年作了些许改进,称为SQL-89;1992年由ANSI和ISO合作,作了较大改动,称为SQL-92(SQL2),这是目前大多数商用RDBMS支持的版本;1999年提出SQL:1999(SQL3),是SQL-92的扩展。 SQL(Structured Query Language,结构化查询语言)是一种集数据定义和数据操纵子语言为一体的、标准化(20世纪80年代后期)的、关系型数据库语言。 数据定义子语言(Data Definition Language, DDL) 用来定义数据库模式。 数据操纵子语言(Data Manipulation Language, DML) 用来表示用户对数据库的操作请求。由于数据库语言其主要的功能是查询数据库中的信息,故经常称之为数据查询语言。 目前的标准化版本为SQL-92,被ANSI(American National Standards Institute)、ISO(International Standards Organization)采纳。 SQL语言的第一个版本是由IBM公司SAN JOSE实验室为SYSTEM R关系数据库管理系统设计的。 SQL语言既可以作为交互式(Interactive)数据库语言使用,也可以嵌入(Embedded)到程序设计语言中作为其子语言使用,这时前者称为宿主语言(Host Language),如:C/C++语言、PowerBuilder、Delphi等。 SQL标准有:SQL-86、SQL-89、SQL-92、SQL:1999。 关系模型中的关系,利用SQL-92来定义和操纵;SQL-92标准中用“表”(Table)代表“关系”(Relation);SQL中用于创建(Create)、删除(Drop)和修改(Alter)“表结构”的部分叫DDL,而对“表中数据”进行插入(Insert)、删除(Delete)、修改(Update)和查询(Select)的部分叫DML; 1. SQL DDL —- 针对表结构 (1) Create (2) Drop (3) Alter 2. SQL DML —- 针对表中数据 (1) Insert (2) Delete (3) Update (4) Select 下面我们主要研究数据操纵,本章所用到表如表5.1-5.7所示。 4.2 SQL的数据操纵

实验5sql语句练习——图书馆数据库答案

实验5sql语句练习一一图书馆数据库 实验5 Sql语句练习一一图书馆数据库 实验目的 (1)了解SQL SerVer数据库的逻辑结构和物理结构; (2)了解表的结构特点; (3)了解SQL SerVer的基本数据类型; (4)了解空值概念; (5)学会在企业管理器中创建数据库和表; (6)学会使用T-SQL语句创建数据库和表。 (7)学会使用T-SQL语句更新数据。 (7)学会使用T-SQL语句创建多种查询。 实验准备 首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 其次创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数 据库的文件。 然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL SerVer的常用数据类型,以创建 数据库的表。 此外还要了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL的CREATE DATABASE 语句。 实验内容 假设有5本书 设有一图书馆数据库,其中包括3个表,即图书表、读者表和借阅表。三个表的结构如图: 图书表结构 读者表结构 假设有10位读者

借阅表结构 Create database Lab05 (2) 用Sql语句创建上述3个表 Create table book ( bookId Char(Io)Primary key, bookName VarChar(50), bookWriter VarChar(30), bookPublish VarChar(30), bookPrice float ) Create table reader ( readerId Char(10) Primary key, readerName VarChar(8)not null, readerSex char(2)not null, readerOfficeTel char(8), readerDepartment VarChar(30) ) Create table 借阅表 ( readerId Char(10), bookId Char(10), CheCkOUtTime char(8), CheCkInTime char(8), Primary key(readerId,bookId), foreign key (readerId) references reader(readerId), foreign key (bookId) references book(bookId), ) (3) 基于图书馆数据库的3个表,用sql语言完成一下操作: 1) 为图书表增加一列“ ISBN ”,数据类型为CHAR(Io) alter table book add ISBN char(10) 2) 为刚添加的ISBN 列增加缺省值约束,约束名为ISBNDEF ,缺省值为‘ 7111085949' ALTER TABLE book ADD CONSTRAINT ISBNDEF DEFAULT ('7111085949') FOR ISBN 3) 删除图书表中ISBN 列增加的缺省值约束alter table book drop ISBNDEF 4) 删除图书表中新增的ISBN 列ALTER TABLE book DROP COLUMN ISBN 5) 查询全体图书的图书号、书名、作者、出版社和单价select bookId,bookName,bookWriter,bookPublish,bookPrice from book 6) 查询全体图书的信息,其中单价打8 折,并设置该列的别名为‘打折价'

SQL实验五:T-SQL编程

( 二 〇 一 五 年 四 月 《数据库原理及应用》实验报告 学校代码: 10128 学 号: 201120905048 题 目:T-S Q L 编程 学生姓名:孙跃 学 院:理学院 系 别:数学系 专 业:信息与计算科学 班 级:信计12-2 任课教师:侯睿

一、实验目的 (1)进一步巩固第2章~第4章所学内容; (2)掌握用户自定义类型的使用; (3)掌握变量的分类及其使用; (4)掌握各种运算符的使用; (5)掌握各种控制语句的使用; (6)掌握系统函数及用户自定义函数的使用。 二、实验内容 1.自定义数据类型的使用。 (1)对于实验2给出的数据库表结构,再自定义一数据类型ID_type,用于描述员工编号。 (2)在YGGL数据库中创建Employees3表,表结构与Employees类似,只是EmployeeID列使用的数据类型为用户自定义类型ID_type。 2.变量的使用。 (1)对于实验2给出的数据库表结构,创建一个名为female的用户变量,并在SELECT语句中使用该局部变量查找表中所有女员工的编号、姓名。 (2)定义一个变量,用于获取号码为102201的员工的电话号码。 3.运算符的使用。 (1)使用算数运算符“-”查询员工的实际收入。 (2)使用比较运算符“>”查询Employees表中工作时间大于5年的员工信息。 4.流程控制语句。 (1)判断Employees表中是否存在编号为11006的员工,如果存在则显示该员工信息,不存在则显示查无此人。 (2)假设变量X的初始值为0,每次加1,直至X变为5。 (3)使用CASE语句对Employees表按部门进行分类。 5.自定义函数的使用。 (1)定义一个函数实现如下功能:对于一个给定的DepartmentID值,查询该值在Departments表中是否存在,若存在则返回0,否则返回-1。 (2)写一段T-SQL程序调用上述函数。 6.系统内置函数的使用。 (1)求一个数的绝对值。 (2)求财务部雇员的总人数。 (3)使用ASCII函数返回字符表达式最左端字符的ASCII值。 (4)获得当前的日期和时间。

实验五 SQL PL查询语句的使用

实验五、SQL/PL查询语句的使用 一、目的与要求 1.进一步巩固第2章~第4章所学内容; 2.掌握变量的分类及其使用; 3.掌握各种运算符的使用; 4.掌握各种控制语句的使用; 5.掌握系统函数及用户自定义函数的使用。 二、实验准备 1.了解PL/SQL支持的各种基本数据类型; 2.了解PL/SQL各种运算符、控制语句的功能及其用法; 3.了解系统函数的调用方法; 4.了解用户自定义函数使用的一般步骤 三、实验内容 1.条件结构的使用 例[6.5]查询部门号大于2的员工人数 例[6.6]判断工资大于2000的人是否超过10人。

例[6.7]员工的平均工资大于1500则显示“平均工资大于1500”,否则显示“平均工资小于1500” 例[6.8]求X2+4X+3=0的根。

2.循环结构的使用 例[6.9]用LOOP-EXIT-END求10的阶乘 例[6.10] 用LOOP-EXIT-WHEN-END求10的阶乘

3.自定义函数的使用 (1)定义一个函数实现如下功能。对于一个给定的departmentid的值,查询该值在 departments表中是否存在,若存在,返回0,否则返回1. (2)写一段PL/SQL脚本程序调用上述函数。当向employees表插入一条记录时,首先调用 函数CHECK_ID检索该记录的departmentid值在表departments的departmentid字段中是否存在对应的值,若存在,则将该记录插入employees表。

四、问题及体会 在这次的实验中,我学会了PL/SQL查询语句的使用方法,包括一些运算符、控制语句和自定义函数的使用方法。但在实验的过程中,也出现了如下的一些问题; 1.在做例6.7的时候,第一次由于设置的求平均的结果的值的精度过高,导致编译时报 错。 2.在做例6.7时,输入程序命令ELSEIF 语句输错了导致编译报错,后经检查纠正了 所以,在写程序是首先要熟悉各种运算符和控制语句的使用规则,知道程序的语法和结构,以实现需要的功能,其次,就是要认真检查,避出现笔误。

相关文档
最新文档