数据库实验一 简单数据查询
数据库查询的实验报告
数据库查询的实验报告数据库查询的实验报告引言:数据库查询是一项重要的技术,它可以帮助我们从庞大的数据集中提取所需的信息。
本实验旨在探索数据库查询的原理和实践,通过实际操作和分析,深入了解数据库查询的过程和技巧。
实验目的:1. 理解数据库查询的基本概念和原理;2. 掌握使用SQL语句进行数据库查询的方法;3. 分析不同查询语句的执行效率和优化策略。
实验步骤:1. 数据库准备:选择一个合适的数据库系统,并创建一个包含适当表结构和数据的数据库。
2. 查询语句编写:根据实际需求,编写不同类型的查询语句,包括基本查询、条件查询、排序查询、聚合查询等。
3. 查询语句执行:使用数据库管理系统提供的查询工具,执行编写好的查询语句,并观察查询结果。
4. 查询结果分析:根据查询结果,分析查询语句的执行效率和查询结果的准确性。
5. 优化策略实施:对于执行效率较低的查询语句,尝试优化策略,如索引的使用、查询语句的重写等。
6. 优化效果评估:比较优化前后查询语句的执行效率,并分析优化策略的有效性。
实验结果与讨论:通过实验,我们发现数据库查询的过程中,查询语句的编写和优化对查询效率有重要影响。
以下是我们的实验结果和讨论。
1. 基本查询:基本查询是最简单的查询方式,通过SELECT语句从数据库中选择所需的字段。
我们发现,基本查询的执行效率较高,查询结果准确。
然而,在处理大量数据时,查询时间可能会增加。
为了提高效率,我们可以使用LIMIT子句限制返回的记录数。
2. 条件查询:条件查询是根据特定条件筛选数据的查询方式。
我们使用WHERE子句来指定查询条件,并发现查询结果的准确性和效率与查询条件的选择有关。
使用索引字段作为查询条件可以大大提高查询效率。
3. 排序查询:排序查询是根据指定字段的顺序对查询结果进行排序的方式。
我们使用ORDER BY子句来指定排序字段,并观察到排序查询的执行效率较高。
然而,对于大规模数据集,排序操作可能会导致性能下降。
数据库实验 数据查询
内容一简单SELECT 语句一.实验目的1. 观察查询结果, 体会SELECT语句实际应用;2. 要求学生能够在查询分析器中使用SELECT语句进行简单查询。
3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
二.实验内容1.简单查询操作对EDUC数据库实现以下查询:(1)求计算机系的学生学号和姓名(2)求选修了课程的学生学号;(3)求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩降序序排列,如果成绩相同则按学号的升序排列;(4)求选修课程C1 且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;(5)求计算机系和数学系的姓张的学生的信息(6)求缺少了成绩的学生的学号和课程号。
(7)将2000以后的成绩大于90分的学生成绩存入永久成绩表;将2000年以前的成绩存入临时成绩表中2.连接查询操作(1)查询每个学生的情况以及他(她)所选修的课程;(2)求学生的学号、姓名、选修的课程名及成绩;(3)求选修C1 课程且成绩在90 分以上的学生学号、姓名及成绩;(4)查询每一门课的间接先行课。
三.实验步骤(详细)1.简单查询操作此部分查询包括投影、选择条件表达、数据排序、使用临时表等。
①求计算机系的学生学号和姓名;SELECT sno,snameFROM studentWHERE dno=’计算机’①求选修了课程的学生学号;代码:SELECT DISTINCT snoFROM student_course③求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;④求选修课程C1 且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;⑤求计算机系和数学系的姓张的学生的信息⑥求缺少了成绩的学生的学号和课程号。
⑦将2000以后的成绩大于90分的学生成绩存入永久成绩表;将2000年以前的成绩存入临时成绩表中。
数据库数据查询实验报告
数据库数据查询实验报告一、实验目的本次实验的目的是熟悉数据库查询的基本操作,包括基础查询、条件查询、排序查询、嵌套查询、分组统计查询等。
二、实验环境本次实验使用MySQL数据库,使用的工具是Navicat for MySQL。
三、实验步骤1、基础查询基础查询即查询表中的所有数据,操作方法如下。
(1)进入查询工具,在“表名”下拉菜单中选择要查询的表。
(2)点击“查询”按钮即可查询出表中的所有数据。
2、条件查询条件查询即根据某些条件筛选出符合条件的数据,操作方法如下。
(1)在“条件”栏中输入筛选条件,如“WHERE name = ‘张三’”,表示筛选出姓名为“张三”的数据。
3、排序查询排序查询即按照某个字段对数据进行排序,操作方法如下。
(1)在“排序条件”中输入排序条件,如“ORDER BY age DESC”,表示按照年龄降序排序。
4、嵌套查询嵌套查询是在查询语句中嵌套另一个查询语句,目的是为了解决多个表之间的关联查询问题。
操作方法如下。
(1)在查询语句中嵌套另一个查询语句,如“SELECT * FROM table1 WHERE id IN (SELECT id FROM table2)”,表示查询出table1表中id在table2表中也存在的数据。
5、分组统计查询分组统计查询即根据某个字段对数据进行分组,再对每组数据进行统计分析,操作方法如下。
(1)在查询语句中使用“GROUP BY”语句对数据进行分组,如“SELECT name, COUNT(*) FROM table GRO UP BY name”,表示按照姓名分组,并统计每组中数据的数量。
四、实验总结本次实验通过对MySQL数据库查询的基本操作进行了学习和实践,掌握了基础查询、条件查询、排序查询、嵌套查询、分组统计查询等知识点。
通过实验的完成,深入了解了数据库查询的方法和技巧,提高了对数据库的应用能力。
数据库实验一数据定义与简单查询实验(代码加截图)
实验一数据定义与简单查询实验一、实验目的1、要求学生熟练掌握和使用SQL语言、SQL Server企业管理器创建数据库、表索引和修改表结构,并学会使用SQL Server 查询分析器。
2、掌握查看、修改数据库和表的属性的法3、在建立好的数据库表中输入部分虚拟数据,学会如实现基于单表的简单查询。
二、实验容1、使用SQL Server 2008企业管理器创建一个“图书读者数据库”(Book_Reader_DB);2、使用企业管理器和在查询分析器中用Transact-SQL语句的两种法建立图书、读者和借阅三个表,其结构为:图书Book(书号bno,类别bclass,出版社publisher,作者author,书名bname,定价price,备注remark);读者Reader(编号rno,姓名name,单位department,性别sex,telephone);借阅Borrow(书号bno,读者编号rno,借阅日期bdata)。
要求:①对每个属性选择合适的数据类型;②定义每个表的主码、是否允空值和默认值等列级数据约束;③对每个表的名字和表中属性的名字尽可能用英文符号标识。
4、实现相关约束:①使用企业管理器来建立上述三个表的联系,即实现:借阅表与图书表之间、借阅表与读者表之间的外码约束;②实现读者性别只能是“男”或“女”的约束。
5、分别用企业管理器和查询分析器修改表的结构。
在“图书”表中,增加两个字段,分别为“数量”和“购买日期”。
在“借阅”表中增加一个“还书日期”字段。
6、用企业管理器在上述三个表中输入部分虚拟数据。
7、在查询分析器中实现基于单个表的查询①select * from Book②select * from book where Bclass=’计算机’③select count(*) from book group by Bclass④select * from Reader⑤select * from Borrow⑥select rno, count(bno) from Borrow group by rno order by rno⑦select bno, count(rno) from Borrow group by bno order by bno做实验时,还可以虚拟用户的一些其它查询要求,并用Transact-SQL语句予以实现。
数据库-数据查询实验报告
实验报告课程名称数据库原理与应用实验名称数据查询系别专业班级指导教师学号姓名实验日期_实验名称:数据查询一、实验目的1.熟悉各种基本的数据查询的含义。
2.掌握数据查询的SQL语句编写方法。
3.能根据要求写出正确的查询语句。
4.掌握基本的调试方法。
二、实验环境1.硬件环境:微机2.软件环境:Windows,Sql server2000或更高版本三、实验内容及步骤题目根据要求编写以下SQL查询语句第一题简单查询1.查询病人表,显示所有病人的病人编号、保险公司名称、电话号码(别名:病人电话)。
2.查询病人表,显示病人编号、病人姓名(病人姓+病人名)、保险公司名称,并在每个“电话号码”前面显示字符串“病人电话:”。
3.查询病人表,要求显示保险公司名称,并消除重复的值。
4.查询病人表,要求只显示前五条的全部病人信息。
5.查询病人表,要求显示最年轻的前6位病人的病人编号,病人姓名,病人年龄6.给医生表取别名:doctors,并显示医生表的所有信息7.要求查询在“人民保险公司”投保的所有病人的信息8.要求查询病人年龄在20~60岁之间的所有病人信息9.要求查询姓“王”、姓“李”或姓“关”的所有病人的信息。
(提示:用“in”或者用“or”两种方法查询。
)10.查询电话号码为空的病人信息11.要求按年龄从大到小显示病人信息12.要求先按病人姓的升序;如果姓一样,再按年龄的降序,来显示病人信息13.要求查询电话号码的最后一个数字为6的病人编号,病人姓名,电话号码14.要求查询倒数第二个数字为7的病人编号,病人姓名,电话号码。
15.要求查询除区号外的第二个数字为2的病人编号,病人姓名,电话号码。
(注:手机号不算。
)16.要求查询电话号码的最后一个数字为6、为3、为1的病人编号,病人姓名,电话号码。
(注:至少两种方法可以实现)17.要求查询电话号码的最后一个数字除1、3、6外的病人编号,病人姓名,电话号码。
步骤(写出以上SQL语句)--1.查询病人表,显示所有病人的病人编号、保险公司名称、电话号码(别名:病人电话)。
数据库实验1:SQL查询操作
数据库实验1:SQL查询操作题目:设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:S(SNO,SNAME,STATUS,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。
今有若干数据如下:S表:SNO SNAME STATUS CITYS1 精益20 天津S2 盛锡10 北京S3 东方红30 北京S4 丰盛泰20 天津S5 为民30 上海P表:PNO PNAME COLOR WEIGHTP1 螺母红12P2 螺栓绿17P3 螺丝刀蓝14P4 螺丝刀红14P5 凸轮蓝40P6 齿轮红30J表:JNO JNAME CITY J1 三建北京J2 一汽长春J3 弹簧厂天津J4 造船厂天津J5 机车厂唐山J6 无线电厂常州J7 半导体厂南京SPJ表:SNO PNO JNO QTY S1 P1 J1 200S1 P1 J3 100S1 P1 J4 700S1 P2 J2 100S2 P3 J1 400S2 P3 J2 200S2 P3 J4 500S2 P3 J5 400S2 P5 J1 400S2 P5 J2 100S3 P1 J1 200S3 P3 J1 200S4 P5 J1 100S4 P6 J3 300S4 P6 J4 200S5 P2 J4 100S5 P3 J1 200S5 P6 J2 200S5 P6 J4 500首先进行创建数据库、表,插入数据等操作。
数据库实验报告 数据查询
FROM学生
(20)查询学生的总人数。
SELECT COUNT(*)AS人数
FROM学生
2、复杂查询
(21)如果要统计成绩表中所有选课的学生人数,即不管一名学生选了几门课程,都只计算一次
SELECT COUNT (DISTINCT (学号)) AS人数
(12)列出教工中比姜立伟工资低的姓名和工资。
SELECT R.姓名,R.工资
FROM教工R,教工S
WHERE R.工资<S.工资AND S.姓名='姜立伟'
(13)查出所有不是教授的教工姓名。
SELECT姓名
FROM教工
WHERE职称NOT LIKE '教授'
(14)检索工资在1000元到2000元范围内的职工信息。
SELECT *
FROM教工
WHERE职称='教授'
(3)列出教工表中的系编号并消除重复的元组。
SELECT DILeabharlann TINCT系编号FROM教工
(4)已知学分=学时/17,计算每一门课程的学分数。
SELECT课程名称,学时/17 AS学分
FROM课程
(5)显示教授的工资和提高10%的工资额。
SELECT姓名,工资,工资*1.1 AS '工资*1.1'
(32)统计无先修课的课程的学时总数;
(33)统计每位学生选修课程的门数、学分及其平均成绩;
(34)统计选修每门课程的学生人数及各门课程的平均成绩;
(35)找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排
列;
(36)查询选修了“1”或“2”号课程的学生学号和姓名;
数据库简单查询实验报告
姓名: 学院: 专业: 班级: 实验课程名称:数据库原理 开课时间:
实验题目
数据查询(简单查询) 小组合作
姓名
班级
一、实验目的
(1)掌握 SELECT 语句的语法 (2)掌握基于单表的查询方法 (3)掌握基于多表的查询方法 (4)掌握相关与不相关的嵌套查询 (5)掌握使用 UNION 的集合查询
select shopno,prono from sale where amount is null
select prono,proname from product where proname like'海尔__%'and proprice>2000
(4) select * from product order by proprice desc,proname asc
实验总结:
本次实验使用 sql sever 在企业管理器和中创建表,同时使用了 T-SQL 语句 进行单表查询以及多表查询,第一次建表时没有设置好关系导致多表查询时 出现了一些问题,后来在同学的帮助下解决了问题,那些不懂的地方以后一 定多加注意。
Amount
int
2.利用企业管理器向表中插入记录
N
商店号,外码 合为主码
N
商品号,外码
Y
销售量
商店表 Shop 的内容
ShopNo S01
ShopName 乐购
ShopAddress 上海
S02 S03 S04
ProNo P01 P02 P03 P04
ShopNo S01 S01 S01 S02 S02 S03 S03 S03
二.实验环境
WINDOWS 7+SQL SERVER 2005
数据库查询操作实例
数据库查询操作实例数据库查询是一项非常常见和重要的操作,用于从数据库中检索所需的数据。
下面是一些数据库查询操作的实例:1.简单查询:从数据库表中选择所有的数据sqlSELECT*FROM表名;2.条件查询:根据特定条件过滤数据sqlSELECT*FROM表名WHERE条件;例如,从名为`students`的表中选择所有年龄大于18岁的学生记录:sqlSELECT*FROMstudentsWHEREage>18;3.查询特定字段:只选择所需的字段,而不是全部字段sqlSELECT列1,列2FROM表名;例如,从名为`employees`的表中选择员工的姓名和工资:sqlSELECTname,salaryFROMemployees;4.查询结果排序:根据特定的列对结果进行排序sqlSELECT*FROM表名ORDERBY列名ASC/DESC;例如,从名为`products`的表中选择所有产品记录,并按价格降序排列:sqlSELECT*FROMproductsORDERBYpriceDESC;5.分组查询:根据特定的列对数据进行分组sqlSELECT列1,列2,聚合函数FROM表名GROUPBY列1,列2;例如,从名为`orders`的表中按客户ID分组,并计算每个客户总的订单数量:sqlSELECTcustomer_id,COUNT(*)FROMordersGROUPB Ycustomer_id;6.连接查询:将多个表的数据联合在一起查询sqlSELECT列1,列2FROM表1INNERJOIN表2ON表1.列=表2.列;例如,从名为`orders`和`customers`的表中选择订单信息,并显示对应的客户姓名:sqlSELECTorders.order_id,FROMordersINNERJOINcustomersONorders.customer_id=custo mers.customer_id;以上是一些常见的数据库查询操作的实例。
数据库实验 数据操纵及数据查询
实验二数据操纵及数据查询目的和要求(1)学会用管理工具和T-SQL命令中对数据库表进行插入、修改和删除等操作;(2)数据更新操作时要注意数据完整性;(3)掌握基于表与视图的简单查询与复杂查询。
实验准备(1)了解对表数据有哪几种更新操作;(2)样本数据录入;(3)回顾数据完整性知识,在进行数据更新时保证数据的完整性。
实验内容一、数据更新insert语句注:如果插入的数据与约束或规则的要求产生冲突,或者值的数据类型与列的数据类型不匹配,insert将执行失败。
【练习1】将样本数据通过工具或T-SQL命令录入实验一中创建的三张表,并通过管理工具查看S表中的全部数据【练习2】使用SQL命令查看R表中的前5条选课记录【练习3】创建表S1(sno,sname,speiality),将S表中“计算机”专业的学生的学号、姓名、专业名三类信息插入到表S1中,并用select语句查看插入结果。
【练习4】更改S表数据,将学号=…001101‟的学生的备注列值改为…三好学生‟(将执行通过的SQL语句记录在此)。
【练习5】将姓名为“罗林琳”的同学的专业改为“通信工程”,备注改为“转专业学习”,学号改为“001241”,并将S表中所有“通信工程”专业的学生的总学分都增加10【练习6】删除S表中的学号=…001101‟的行【练习7】删除S表中总学分小于40的行二、数据查询【练习8】查询表S中计算机专业同学的学号、姓名和总学分。
【练习9】查询表S中的所有列。
(将执行通过的SQL语句记录在此)【练习10】查snosno询S表中计算机专业同学的学号、姓名和总学分,结果中各列的标题分别显示为number,name和mark。
(将执行通过的SQL语句记录在此)【练习11】对数据库的S表只选择专业名和总学分,消除结果集中【练习12】查询数据库S表中通信专业总学分大于等于42的同学的情况(将执行通过的SQL语句记录在此)。
【练习13】查询数据库S表中计算机专业的学生情况。
数据初级查询实验报告
一、实验目的1. 熟悉数据库的基本概念和结构。
2. 掌握SQL语言的基本语法和查询操作。
3. 学会使用数据库查询工具进行数据检索。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 查询工具:Navicat Premium三、实验内容1. 数据库的创建与删除2. 表的创建与删除3. 数据的插入、更新、删除4. 数据的查询5. 查询条件的设置6. 数据库查询优化四、实验步骤1. 创建数据库(1)打开Navicat Premium,连接到MySQL数据库服务器。
(2)选择“数据库”选项卡,点击“新建数据库”。
(3)输入数据库名称,如“experiment_db”,点击“确定”。
2. 创建表(1)在“experiment_db”数据库上点击右键,选择“新建表”。
(2)输入表名,如“students”,点击“确定”。
(3)在表设计器中,添加字段,如“id”(主键)、“name”、“age”、“gender”等。
(4)设置字段属性,如数据类型、长度、默认值等。
(5)点击“保存”,完成表创建。
3. 数据的插入、更新、删除(1)插入数据在“students”表上点击右键,选择“执行SQL语句”。
输入以下SQL语句:```sqlINSERT INTO students (id, name, age, gender) VALUES (1, '张三', 20, '男');INSERT INTO students (id, name, age, gender) VALUES (2, '李四', 21, '男');INSERT INTO students (id, name, age, gender) VALUES (3, '王五', 22, '男');```执行上述SQL语句,完成数据的插入。
数据库的简单查询
含义 比较大小
是否在范围内 是否属于列表值之一
是否匹配 是否为空 多重条件判断
查询满足条件的数据行操作
实例4:查询student表中所有男生的详细信息。 select * from student where sex='男'
查询满足条件的数据行操作
实例5:查询score表中有不及格现象的学生信息。 select * from score where uscore<60 or endscore<60
二. 查询满足条件的数据行
查询条件 比较运算符
确定范围 确定集合 字符匹配
空值 多重条件
常用的查询条件
运算符 =、>、<、>=、<=、!=、!>、!<
BETWEEN、NOT BETWEEN IN、NOT IN
LIKE、NOT LIKE IS NULL 、 IS NOT NUL期末有缺考现象的学生信息。 select * from score where endscore is null
数据库的简单查询
一. 查询表中的数据列
1. 查询所有列 ➢ 最简单的Select语句是查询表中的所有数据,只需要Select和From两关键字
即可。 ➢ 要把表中所有的列及列数据展示出来,可以使用符号“*”,它表示所有列。
格式:Select * from <表名> 功能:使用Select输出表中所有的列及列数据。
Eg :select sno, sname from student
一. 查询表中的数据列
3. 为结果列使用别名 ➢ 查询结果中默认输出列的列标题就是表的列名,输出表达式的列标题为
“无列名”。 ➢ 如果用户觉得该列名不能表达清楚,可对列名设置别名。 ➢ 设置别名只是设置显示查询结果时的列名,而表中的列名并未改变。
数据库实验1-7
1《实验一 认识DBMS 》在SQL Server 2005中完成以下操作:(1) 建立SC 数据库,数据库命名:SC_姓名拼音+学号后三位,如SC_xiebing131;(2) 在其中建立Student 表、Course 表和SC 表,表结构如下,自己选择各属性的数据类型;学生关系Student(Sno ,Sname ,Ssex ,Sage ,Sdept)其中Sno 为主码,并且Sname 取值也唯一 课程关系Course(Cno ,Cname ,Cpno ,Ccredit)其中Cno 为主码,并且Cname 取值也唯一选修关系SC(Sno ,Cno ,Grade) 其中Sno 和Cno 不能为空,(Sno, Cno)为主码(3) 参照教材在各表中输入一定的记录,在student 表中输入一条自己的记录;(4) 进行表结构的修改和记录的修改、删除操作;(5) 验证教材P45基本关系具有的6个性质;(6) 分离数据库,保存数据库文件,以后上机要带上。
《实验二数据定义》实验内容:(1) 数据库的定义与删除(2)基本表的创建、修改及删除;(3) 索引的创建和删除;(4) 使用SQL 对数据进行完整性控制(实体完整性、参照完整性);(一)使用命令行方式建立SPJ 数据库(1)用SQL 语言建立SPJ 数据库,数据库命名:SPJ-姓名拼音+学号后三位,如SPJ-liyan112;(2)用SQL 语言在其中建立S 表、P 表、J 表和SPJ 表(要求进行完整性定义),表结构如下;厂家 S (SNO ,SNAME ,STA TUS ,CITY ),其中STA TUS (状态)为整型,其他均为字符型产品 P (PNO ,PNAME ,COLOR ,WEIGHT ),其中WEIGHT (重量)为浮点型,其他均为字符型工程 J (JNO ,JNAME ,CITY ),其中各属性均为字符型供应 SPJ (SNO ,PNO ,JNO ,QTY ),其中QTY (供应量)为整型,其他均为字符型建立数据表的语法格式CREA TE TABLE <表名>(<列名><数据类型>[<列级完整性约束条件> ] [,<列名><数据类型>[<列级完整性约束条件>]] …[,<表级完整性约束条件> ] );(3) 参照教材用SQL 语言分别在4个数据表中输入一定的记录;插入数据的语法格式:INSERTINTO <表名> [(<属性列1>[,<属性列2 >…)]V ALUES (<常量1> [,<常量2>] … )(4) 保存SQL 文件,文件名:SPJ-姓名拼音+学号后三位.sql ,如SPJ-xukai012.sql(二)使用命令行方式建立学生课程数据库(1) 用SQL 语言建立学生课程数据库,数据库命名:SC_学号后四位及姓名,如SC_3112liyan ;(2) 用SQL 语言在学生课程数据库中建立3个表,要求进行完整性定义;学生关系Student(Sno ,Sname ,Ssex ,Sage ,Sdept)其中Sno 不能为空,值是唯一的,并且Sname 取值也唯一,Sage 自定义约束“大于16” 课程关系Course(Cno ,Cname ,Cpno ,Ccredit)其中Cno 不能为空,值是唯一的,并且Cname 取值也唯一教师关系Teacher(Tno ,Tname ,Department ,Email ,Salary) 其中Tno 不能为空,值是唯一的选修关系SC(Sno ,Cno ,Grade) 其中Sno 和Cno 不能为空,(Sno, Cno)为主码,Grade 的数据类型为int(3) 修改数据表:✓ 将SC 表中Grade 的数据类型改为f loat ;✓ 在Student 表中增加一个属性Scome 记录学生的入学时间,其数据类型为DATETIME ;✓ 删除Student 表中新增加Scome 属性;✓ 删除表Teacher 表中的Email 属性;✓ 删除Student 表中对Sname 属性创建的Unique 约束。
数据库系统(一)——数据查询
数据库系统(⼀)——数据查询⽂章⽬录⼀、实验⽬的:1. 熟练掌握SQL定义数据表和索引的⽅法;2. 能够使⽤SQL完成数据的单表查询、多表查询和嵌套查询操作。
⼆、实验内容:1. 根据指定场景创建数据库;2. 根据具体的查询应⽤需求写出相应的SQL查询语句,并得到正确的查询结果。
1、熟悉基于单表的SQL的数据查询功能;2、掌握基于单表的GROUP BY⼦句、HAVING⼦句、ORDER BY⼦句的⽤法;3、掌握基于单表的(NOT)IN等谓词的⽤法,掌握集合函数的⽤法;4、掌握多表连接查询的适⽤情况和语句构造⽅法;三、实验过程:1、创建学⽣课程数据库(stu_course):create database stu_course;2、学⽣表、课程表和学⽣选课表的创建和修改:2.1、创建数据表:create table Student(Sno char(9)primary key,Sname char(20)unique,Ssex char(2),Sage smallint,Sdept char(20));create table Course (Cno char(4)primary key,Cname char(4) not null,Cpno char(4),Ccredit smallint ,foreign key(Cpno) references Course(Cno));create table SC(Sno char(9),Cno char(4),Grade smallint,primary key(Sno,Cno),foreign key(Sno) references Student(Sno),foreign key(Cno) references Course(Cno));2.2、修改数据表:在 Student 表增加⼊学时间列,数据类型为⽇期型:alter table Student add S_entrance Date;将年龄的数据类型由字符型(假设原来是字符型)改为整数型:alter table Student alter column Sage int;增加课程名称必须取唯⼀的约束条件:alter table Course add unique(Cname);删除 Student表:drop table Student;3、插⼊数据:INSERT INTO student VALUES ('201215121', '李勇', '男', 20, 'CS');INSERT INTO student VALUES ('201215122', '刘晨', '⼥', 19, 'CS');INSERT INTO student VALUES ('201215123', '王敏', '⼥', 18, 'MA');INSERT INTO student VALUES ('201215125', '张⽴', '男', 19, 'IS');INSERT INTO course VALUES ('1', '数据库', '5', 4);INSERT INTO course VALUES ('2', '数学', NULL, 2);INSERT INTO course VALUES ('3', '信息系统', '1', 4);INSERT INTO course VALUES ('4', '操作系统', '6', 3);INSERT INTO course VALUES ('5', '数据结构', '7', 4);INSERT INTO course VALUES ('6', '数据处理', NULL, 2);INSERT INTO course VALUES ('7', 'PASCAL语⾔', '6', 4);INSERT INTO sc VALUES ('201215121', '1', 92);INSERT INTO sc VALUES ('201215121', '2', 85);INSERT INTO sc VALUES ('201215121', '3', 88);INSERT INTO sc VALUES ('201215122', '2', 90);INSERT INTO sc VALUES ('201215122', '3', 80);4、各种类型的查询操作:4.1 、单表查询操作:1、查询指定列:查询所有学⽣的的学号与姓名:select Sno,Sname from Student;2、查询全部列:查询所有学⽣的信息:select * from Student;3、查询经过计算的值:查询全体学⽣的姓名和出⽣年份:select Sname 2021-Sage from Student;4、消除出重复的元组:select Distinct Sno from Student;5、查询满⾜条件的元组:查询计算机科学系的所有学⽣:select Sname from Student where sdept='CS';查询年龄⼩于20的学⽣:select * from student where Sage <20;查询年龄在20~23岁之间的学⽣姓名,系别和年龄:select sname,sdept,sage from student where sage between 20 and 23;查询年龄不在20~23岁之间的学⽣姓名,系别和年龄:select sname,sdept,sage from student where sage not between 20 and 23;6、确定集合(IN):查询计算机科学系(CS),数学系(MA)和信息系(IS)学⽣的姓名和性别。
数据库实验报告_数据库的简单查询和连接查询
贵州大学实验报告学院:计信学院专业:网络工程班级:101实验数据首先简历学生管理系统库其次建立学生信息、课程、成绩三个表,列内容如下图所示其次输入数据(1)简单查询实验1)用SQl语句表示下列操作,在学生选课库中实现其数据查询操作。
①求数学系学生的学号和姓名。
新建查询。
在右边弹出窗口处输出SQL语句。
输入语句:select 姓名from 学生信息where 院系='数学'②求选修了课程的学生学号。
select distinct 学号from 成绩③求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select 学号,成绩from 成绩where 课程号='3'order by 成绩desc,学号asc;④求选修课程C1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。
select distinct 学号,成绩*0.8from 成绩where 课程号='3'and 成绩between 80 and 90;⑤求数学系或计算机系姓张的学生的信息。
select *from 学生信息where 院系in('数学','计算机')and 姓名like '张%'⑥求缺少了成绩的学生的学号和课程号。
select 学号,成绩from 成绩where 成绩is null(2)连接查询实验用SQL语句表示,并在学生选课库中实现下列数据连接查询操作:①查询每个学生的情况以及他所选修的课程。
select 学生信息.*,成绩.*from 学生信息,成绩where 学生信息.学号=成绩.学号②求学生的学号、姓名、选修的课程名及成绩。
select 学生信息.学号,姓名,课程名,成绩from 学生信息,成绩,课程where 学生信息.学号=成绩.学号and 成绩.课程号=课程.课程号③求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。
数据库实验-- 数据查询与编辑
1、查询女生中年龄大于19岁的学生姓名;select snamefrom studentwhere sage>19 and ssex='女';截图如下:因为学生表中女生没有大于19岁的,所以运行结果为空2、查询计算机系的学生学号、姓名、出生年份,按出生年份降序显示(给出生年份起个别名);select sno,sname,2016-sage birthdayfrom studentwhere sdept='CS'order by 2016-sage desc截图如下:3、查询没有先行课的课程号、课程名;select cno,cnamefrom coursewhere cpno is null;截图:4、查询选修了课程的学生学号;select distinct snofrom sc截图:5、查询年龄在18到20岁之间的学生学号、姓名、性别;select sno,sname,ssexfrom studentwhere sage between 18 and 20;截图:6、查询是计算机系或数学系的学生姓名,年龄;select sname,sagefrom studentwhere sdept in('CS','MA');截图:7、查询课程名含有‘系统’的全部信息;select*from coursewhere cname like'%系统%';截图:8、查询学号倒数第二位是‘2’的学生姓名、院系;select sname,sdeptfrom studentwhere sno like'%2_';截图:9、对选课表记录按照学号升序、学号一样的按成绩降序进行排序;select*from scorder by sno,grade desc;截图:10、查询被选修了的课程号;select distinct cnofrom sc;截图:11、查询学分大于3的课程号和课程名;select cno,cnamefrom coursewhere ccredit>3;截图:。
数据库数据查询实验报告
select * from选课
where成绩between 86 and 93
(9)使用NOT•••BETWEEN•••AND•••的查询
select * from选课
where成绩not between76 and 93
(10)使用LIKE运算符的字符串匹配查询。
(select max(工资)
from教师innera
where out.教师编号= innera.教师编号)
(33)使用EXISTS的嵌套查询。
select *
from教师
where exists
(select *
from课程
where课程.责任教师=教师.教师编号)
(34)使用NOT EXISTS的嵌套查询。
(39)查询数据库课程的成绩大于70分的、所有课程平均分最高的学生信息。
selecttop(1)*from学生where学号in
(select学号from选课join课程
on选课.课程编号=课程.课程编号
where成绩>70and课程名称='数据库')
(40)查询每个学生的平均成绩。
select学号,avg(成绩)as平均成绩
(44)设计1个使用COMPUTE的查询。
select * from教师
compute sum(工资)
(45)设计个使用group•••BY的查询。
select教师编号,avg(工资)
from教师
group by教师编号
四、分析与讨论
实验过程中出现了很多的错误,但经过自己的不懈努力都解决的了,也正是通过这次的实验学到了很多。
数据库--数据查询和操作
《数据查询与操作》实验一、实验目的与要求1、理解简单查询和复合查询的意义。
2、掌握SELECT语句和各子句的使用。
3、掌握多表查询和子查询的使用。
4、掌握INSERT、UPDA TE和DELETE语句的使用。
二、实验平台1、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容1.在“人事管理系统”中,新增一个员工信息(员工编号…100508‟、员工姓名…小龙女‟、所在部门编号…10001‟、籍贯…河南‟)。
insert into员工信息(员工编号,员工姓名,所在部门编号,籍贯)values('100508','小龙女','10001','河南')2.将“人事管理系统”数据库的“员工信息”表中籍贯为“河南”并且所在部门编号为”10001”数据插入到“新员工信息”表中。
insert into新员工信息(员工编号,员工姓名,所在部门编号)select员工编号,员工姓名,所在部门编号from员工信息where籍贯='河南'and所在部门编号='10001'3.在“人事管理系统”数据库“部门信息”表中,将部门的员工人数设置为10。
4.在“人事管理系统”数据库“员工信息”表中,将文化程度为“大专”,并且在“2005-05-01”到“2007-05-01”之间入职的所有员工调动到编号为“10006”的部门去。
5.在“人事管理系统”数据库中对部门进行了重组和调整,原来编号为10006的部门名称变为“市场开发部”,人数也调整为20人。
6.在“人事管理系统”数据库中,编号为“100503”的新员工升级为正式员工,需要在“新员工信息”表中删除他的记录。
7.在“人事管理系统”数据库中,删除“新员工信息”表中所有在编号为“10005”部门工作的员工记录。
8.在“人事管理系统”数据库中,需要删除20%的员工信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一简单数据查询
一、实验目的
掌握利用select语句进行简单数据查询。
二、实验要求
写出实训时碰到的问题以及解决问题的办法,完成本次实训的体会。
三、实验内容
1.从student表中检索学生所在班级编码,并消除重复行
2.检索课程表(course)中的教师名、课程号、课程名称,要求检索结果按照教师名降序排序
3.检索课程表(course)信息,显示课程号大于’005’的课程编号及课程名称,只显示结果中前15行
4.检索每位教师所上课程的平均报名人数,只显示平均报名人数在25到35人之间的教师
5.查看部门编号为“03”的部门名称。
6.查看部门名称中包含有“工程”两个字的系的全名。
7.显示共有多少个部门。
8.显示“01”年级共有多少个班级。
9.查看在“周二晚”上课的课程名称和教师。
10.查看姓“张”、“陈”、“黄”同学们的基本信息,要求按照姓名降序排列查询结果。
四、实验作业
严格按照各题要求做实验,在实训报告中,需要对知识点进行描述,撰写实验过程及过程中遇到的难点,并给出解决办法或新的心得体会。