文档库 最新最全的文档下载
当前位置:文档库 › 实验四SQL单表查询语句练习

实验四SQL单表查询语句练习

实验四SQL单表查询语句练习
实验四SQL单表查询语句练习

实验四SQL单表查询语句练习

一、实验目的

1.掌握SQL Server数据库的恢复技术

2.熟练掌握SQL单表查询语句

二、实验内容

1.数据库恢复

2.SQL查询语言练习

实验基础知识提要

Microsoft? SQL Server?查询分析器是一种图形工具,您可以使用它创建查询和其它SQL 脚本,并针对SQL Server 数据库执行它们。

连接SQL Server

连接某个Microsoft? SQL Server?实例以打开SQL 查询分析器中的一个查询窗口。如果通过SQL Server 企业管理器中的连接访问SQL 查询分析器,则自动打开一个查询窗口。

如果未建立连接而访问SQL 查询分析器,则显示"连接到SQL Server"对话框,使您可以指定数据库服务器。该对话框还可从工具栏和从"文件"菜单上的"连接"命令进行访问。

下表列出"SQL 查询分析器"工具栏中显示的图标。

最基本的查询语句具有以下的形式:

SELECT select_list

FROM table_source

[ WHERE search_condition ]

select_list

描述结果集的列。它是一个逗号分隔的表达式列表。每个表达式同时定义格式(数据类型和大小)和结果集列的数据来源。每个选择列表表达式通常是对从中获取数据的源表或视图的列的引用,但也可能是其它表达式,例如常量或Transact-SQL 函数。在选择列表中使用* 表达式指定返回源表中的所有列。

选择列表还可包含控制结果集的最终格式的关键字:

DISTINCT

DISTINCT 关键字可从结果集中除去重复的行。

TOP n

TOP 关键字指定返回结果集的前n 行。如果指定了ORDER BY,行将在结果集

排序之后选定。除非指定了PERCENT 关键字,否则n 即为返回的行数。PERCENT 指定n 为结果集中返回的行的百分比。

三、实验步骤

构建一下数据库表作为实验数据来源

3.1 Products(产品)

代码描述数据类型长度约束条件ProductID 产品编号INT 4 主码ProductName 品名V ARCHAR 40

SupplierID 供货厂商编号INT 4

CategoryID 所属种类号INT 4

QuantityPerUnit 单位数量V ARCHAR 20

UnitPrice 单价FLOAT 8

UnitsInStock 库存INT 2

UnitsOnOrder 定货数INT 2

ReorderLevel 修订量INT 2

Discontinued 是否进行BIT 1

3.2 Orders(定单)

代码描述数据类型长度约束条件OrderID 定单编号INT 4 主码CustomerID 顾客编号V ARCHAR 5

EmployeeID 职员编号INT 4

OrderDate 定货日期DA TETIME 8

RequiredDate 交货日期DA TETIME 8

ShippedDate 载运日期DA TETIME 8

ShipVia 经由数INT 4

Freight 运费FLOAT 8

ShipName 船名V ARCHAR 40

ShipAddress 地址V ARCHAR 60

ShipCity 城市V ARCHAR 15

ShipRegion 地区V ARCHAR 15

PostalCode 邮政编码V ARCHAR 10

ShipCountry 国籍V ARCHAR 15

3.3 Customers(顾客)

代码描述数据类型长度约束条件CustomerID 顾客编号V ARCHAR 5 主码CompanyName 公司名V ARCHAR 40

ContactName 联系人名V ARCHAR 30

ContactTitle 联系人头衔V ARCHAR 30

Address 地址V ARCHAR 60

City 城市V ARCHAR 15

Region 地区V ARCHAR 15

PostalCode 邮政编码V ARCHAR 10

Country 国籍V ARCHAR 15

Phone 电话V ARCHAR 24

Fax 传真V ARCHAR 24

运行SQL SERVER服务管理器,确认数据库服务器开始运行。

运行企业管理器,以图示方式点击“附加数据库”,恢复db目录下的数据库文件

打开查询分析器,选择刚才恢复的数据库exampleDB,输入SQL指令,获得运行结果。任务:完成以下SQL查询语句

A.在产品表(Products)中找出库存大于30的产品的所有信息

B.查询顾客表(Customers)中所有不重复的所在城市

C.在订单表(Orders)中找出运费在10到50之间的订单编号、顾客编号和职员编

D.在顾客表(Customers)中找出所在城市为London的联系人名和公司名

E.在顾客表(Customers)中找出所在城市为London、Madrid、Torino和Paris的顾

客编号及电话

F.在订单表(Orders)中找出国籍不是Brazil、Spain和Mexico的订单编号和订货日

G.在产品表(Products)中找出单位数量中有box的产品名和产品编号

H.在顾客表(Customers)中找出公司名的首字母为F的顾客编号和联系人名

I.在顾客表(Customers)中找出公司名的首字母为F,第5位为k的顾客编号和联

系人名

四. 实验结果与分析(上交实验报告)

分析思考问题:

1.Select子句的选择列可以有那些合法内容。

语句可以简单到只查询一个表中的每一列和每一行。利用SELECT子句可以获得表中所有列,并且获得的查询结果按照源表中的顺序进行排序

2.列举出至少5种Where子句的筛选用表达式。

Where like ,where =,where or,where and,where in等等

五.讨论、心得

(可写遇到的问题及解决方法,或者对技术的理解等)

SQL查询语句练习作业

一、创建名为“student”的表,结构见表1,内容见表2 表1 student表结构 字段名类型宽度 学号字符型10 姓名字符型10 性别字符型 4 出生日期日期型8 专业字符型20 年级数值型10 表2 student表

二、练习SQL查询语句——基础的select 格式: select 字段名 from 表名 1、写出查找student表中所有字段的语句,并在命令窗口测试 2、写出查找student表中学号的语句,并在命令窗口测试 3、写出查找student表中姓名的语句,并在命令窗口测试 4、写出查找student表中性别的语句,并在命令窗口测试 5、写出查找student表中出生日期的语句,并在命令窗口测试 6、写出查找student表中专业的语句,并在命令窗口测试 7、写出查找student表中年级的语句,并在命令窗口测试 8、写出查找student表中学号和姓名的语句,并在命令窗口测试(注意逗号是英文状态) 9、写出查找student表中学号、姓名和性别的语句,并在命令窗口测试 10、写出查找student表中学号、姓名、性别和出生日期的语句,并在命令窗口测试 11、写出查找student表中学号、姓名、性别、出生日期和专业的语句,并在命令窗口测试 12、写出查找student表中学号、姓名、性别、出生日期、专业和年级的语句,并在命令窗口测试

三、练习SQL查询语句——where条件查询 格式: select 字段名 from 表名 where 条件 1、查找student表中学号是101001的学生,写出语句,并在命令窗口测试 2、查找student表中李玲的个人信息,写出语句,并在命令窗口测试 3、查找student表中所有的男学生,写出语句,并在命令窗口测试 4、查找student表中的在1992年3月1日(含)之后出生的学生,写出语句,并在命令窗口测试 5、查找student表中信息管理专业的学生,写出语句,并在命令窗口测试 6、查找student表中2012级的学生,写出语句,并在命令窗口测试 四、练习SQL查询语句——where条件查询AND OR 格式: select 字段名 from 表名 where 条件1 and/or 条件2 1、查找student表中学号为121001和131005的学生信息,写出语句,并在命令窗口测试 2、查找student表中李泽田和王海东的个人信息,写出语句,并在命令窗口测试 3、查找student表中工商管理专业的男生信息,写出语句,并在命令窗口测试 4、查找student表中在1992年和1993年出生的学生,写出语句,并在命令窗口测试 5、查找student表中信息管理专业和工商管理专业的女学生,写出语句,并在命令窗口测试 6、查找student表中2012级和2013级中1993年出生的学生,写出语句,并在命令窗口测试

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查询语句大全

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tab name(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

数据库-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查询语句大全修订稿

数据库S Q L查询语句 大全 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definitio n only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

实验四SQL单表查询语句练习

实验四SQL单表查询语句练习 一、实验目的 1.掌握SQL Server数据库的恢复技术 2.熟练掌握SQL单表查询语句 二、实验内容 1.数据库恢复 2.SQL查询语言练习 实验基础知识提要 Microsoft? SQL Server?查询分析器是一种图形工具,您可以使用它创建查询和其它 SQL 脚本,并针对 SQL Server 数据库执行它们。 连接 SQL Server 连接某个 Microsoft?SQL Server?实例以打开 SQL 查询分析器中的一个查询窗口。如果通过 SQL Server 企业管理器中的连接访问 SQL 查询分析器,则自动打开一个查询窗口。

如果未建立连接而访问 SQL 查询分析器,则显示"连接到SQL Server"对话框,使您可以指定数据库服务器。该对话框还可从工具栏和从"文件"菜单上的"连接"命令进行访问。 下表列出"SQL 查询分析器"工具栏中显示的图标。 最基本的查询语句具有以下的形式:

SELECT select_list FROM table_source [ WHERE search_condition ] select_list 描述结果集的列。它是一个逗号分隔的表达式列表。每个表达式同时定义格式(数据类型和大小)和结果集列的数据来源。每个选择列表表达式通常是对从中获取数据的源表或视图的列的引用,但也可能是其它表达式,例如常量或 Transact-SQL 函数。在选择列表中使用 * 表达式指定返回源表中的所有列。 选择列表还可包含控制结果集的最终格式的关键字: DISTINCT DISTINCT 关键字可从结果集中除去重复的行。 TOP n TOP 关键字指定返回结果集的前 n 行。如果指定了 ORDER BY,行将在结果集排序之后选定。除非指定了 PERCENT 关键字,否则 n 即为返回的行数。PERCENT 指定 n 为结果集中返回的行的百分比。

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数据库查询语句范例

推荐一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和Where子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。Select nickname,email FROM testtable Where n ame=’张三’ (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如:Select nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: Select 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINC T选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable (二) FROM子句 FROM子句指定Select语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Select username,citytable.cityid FROM usertable,citytable Where usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名表名别名

实验五 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),

数据库sql查询语句上机练习1_习题_结果(单世民)

习题1 请根据给出的数据库表结构来回答相应问题: DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13)); EMP (EMPNO INT,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT); BONUS (ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT); SALGRADE ( GRADE INT, LOSAL INT, HISAL INT); 其中表中包含如下数据: DEPT表: EMP表: SALGRADE表:

BONUS表: 无数据 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原) DDL 1. 写出上述表的建表语句。此外,在DEPT上创 建名为”PK_DEPT”的主键约束,在EMP表上 创建名为”PK_EMP”的主键约束以及指向表 DEPT的外键约束”FK_DEPTNO”。 命令: Create table DEPT (DEPTNO INT NOT NULL,DNAME VARCHAR(14),LOC VARCHAR(13)); Alter table DEPT add constraint PK_DEPT PRIMARY KEY (DEPTNO); create table EMP(EMPNO INT NOT NULL,ENAME VARCHAR(10),JOB VARCHAR(9),MGR INT,HIREDATE DATE, SAL FLOAT,COMM FLOAT,DEPTNO INT); alter table EMP add constraint PK_EMP PRIMARY KEY (EMPNO); alter table EMP add constraint FK_DEPTNO foreign key(DEPTNO) references DEPT(DEPTNO);

sql查询语句练习(解析版)

sql查询语句练习(解析版)BY DD 表情况 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 create table Student(S# varchar2(20),Sname varchar2(10),Sage int,Ssex varchar2(2)) ; create table Course(C# varchar2(20),Cname varchar2(10),score varchar2(4)) ; create table SC(S# varchar2(20),C# varchar2(20),score varchar2(4)) ; create table Teacher(T# varchar2(20),Tname varchar2(10)) ; insert into Student(S#,Sname,Sage,Ssex) values('1001','李五','15','男'); insert into Student(S#,Sname,Sage,Ssex) values('1002','张三','16','女'); insert into Student(S#,Sname,Sage,Ssex) values('1003','李四','15','女'); insert into Student(S#,Sname,Sage,Ssex) values('1004','陈二','14','男'); insert into Student(S#,Sname,Sage,Ssex) values('1005','小四','15','男'); 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 解析:(select s#,score from SC where C#='001') a//从SC中查询C#=001的学生学号和分数,并定义为a表。 (select s#,score from SC where C#='002') b //从SC中查询C#=002的学生学号和分数,并定义为b表。 where a.score>b.score and a.s#=b.s# 条件,a表与b表中学号相同且分数比b中的高。 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) rom sc group by S# having avg(score) >60; 解析: group by S# having avg(score) >60 这里是指平均分数大于60分的

实验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)

数据库sql查询语句练习2_习题_结果(单世民)

现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class) Teacher (no, name, sex, birthday, prof, depart) Course (cno, cname, tno) Score (no, cno, degree) 其中表中包含如下数据: Course表: Score表: Student表:

Teacher表: 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL 1.写出上述表的建表语句。 2.给出相应的INSERT语句来完成题中给出数据的插入。 单表查询 3.以class降序输出student的所有记录(student表全部属性) 命令:select*from Student order by class desc;

4.列出教师所在的单位depart(不重复)。 命令:select distinct depart from Teacher; 5.列出student表中所有记录的name、sex和class列 命令:select name,sex,class from Student; 6.输出student中不姓王的同学的姓名。 命令:select name from Student except select name from Student where name like'王%';或

select name from Student where name not like'王%'; 7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree) 命令:select no,cno,DEGREE from Score where degree=85 or degree=86 or degree=88 or degree between 60 and 80; 8.输出班级为95001或性别为‘女’的同学(student表全部属性) 命令:select*from Student where class=95001 or sex='女';

SQL server 查询语句 练习题

SQL server 查询语句练习题 用SQL语句创建四个表: create database tongji go use tongji go create table student ( Sno varchar(20) not null primary key ,--学号 Sname varchar(20) not null,--学生姓名 Ssex varchar(20) not null, --学生性别 Sbirthday datetime,--学生出生年月 Class varchar(20)--学生所在班级 ) go create table teacher--老师 ( Tno varchar(20) not null primary key ,--教工编号(主码) Tname varchar(20) not null,--教工姓名 Tsex varchar(20) not null, --教工性别 Tbirthday datetime,--教工出生年月 Prof varchar(20),--职称 Depart varchar(20) not null--教工所在部门 ) go create table Course--课程 ( Cno varchar(20) not null primary key ,--课程号 Cname varchar(20) not null,--课程名称 Tno varchar(20) not null references teacher(Tno), --教工编号(外码)) go create table Score--分数 ( Sno varchar(20) not null references student(Sno), --学号(外码)Cno varchar(20) not null references Course(Cno), --课程号(外码)primary key(Sno,Cno), Degree Decimal(4,1),--成绩 ) 表中数据如下: 表(一)Student

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查询语句练习题

设教学数据库Education有三个关系: 学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME)查询问题: (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno,Sname,Sex FROM S WHERE Sdept ='CS'; (2)检索学习课程号为C2的学生学号与姓名; Sname ,1.SELECT SnoSname ,2.SELECT S.SnoFROM S SC , FROM SWHERE Sno IN WHERE S.Sno=SC.Sno SELECT Sno (;C2'AND https://www.wendangku.net/doc/6616649981.html,o=‘ FROM SC )‘C2' WHERE Cno= DS)检索选修课程名为“”的学生学号与姓名(3表建立它们二者的表没有直接联系,必须通过SC表中,但S和C 本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C S SC →联系。 C →基本思路: Cno;表中找出“DS”课程的课程号(1)首先在C ;Cno 集合中的某个元素Cno2)然后在SC表中找出Cno等于第一步给出的(送入结果表列。和SnameSno等于第二步中Sno 集合中某个元素的元组,取出Sno S(3)最后在关系中选出Sname ,SELECT SnoFROM S WHERE Sno IN SELECT Sno ( FROM SC WHERE Cno IN SELECT Cno ( FROM C );DS') WHERE Cname=‘ 的学生学号;C2或C4(4)检索选修课程号为SELECT Sno FROM SC ';'C2 OR Cno=‘C4WHERE Cno=‘

sql查询语句练习

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 1.查询“001”课程比“002”课程成绩高的所有学生的学号; 2.查询平均成绩大于60分的同学的学号和平均成绩; 3.查询所有同学的学号、姓名、选课数、总成绩; 4.查询姓“李”的老师的个数; 5.查询没学过“叶平”老师课的同学的学号、姓名; 6.查询所有课程成绩小于60分的同学的学号、姓名; 7.查询没有学全所有课的同学的学号、姓名; 8.查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;4 9.删除学习“叶平”老师课的SC表记录; 3 10.取各科平均成绩和及格率,按及格率的百分数从高到低顺序2 11.查询不同老师所教不同课程平均分从高到低显示5 12.统计列印各科,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60] 6\ 13.查询每门课程被选修的学生数7 14.查询出只选修了一门课程的全部学生的学号和姓名1 15.查询男生、女生人数 16.查询姓“张”的学生名单 17.查询同名同姓学生名单,并统计同名人数 18.查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列 19.查询平均成绩大于85的所有学生的学号、姓名和平均成绩 20.查询课程名称为“数据库”,且分数低于60的学生姓名和分数 21.查询所有学生的选课情况,学号、课程号、姓名、课程名 22.查询任意一门课程成绩在70分以上的姓名、课程名称和分数; 23.查询有成绩不及格的课程,并按课程号从大到小排列 24.查询课程编号为003且课程成绩在80分以上的学生的学号和姓名; 25.查询各个课程及相应的选修人数 26.检索至少选修两门课程的学生学号 27.查询没学过“叶平”老师讲授的任一门课程的学生姓名 28.查询两门以上不及格课程的同学的学号及其平均成绩 29.检索“004”课程分数小于60,按分数降序排列的同学学号 30.删除“002”同学的“001”课程的成绩 经典SQL练习题 CREATE TABLE STUDENT (SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL,

相关文档