mysql数据库实验答案
大学 mysql实验报告(五)附答案
实验报告(五)专业:班级:学号:姓名:实验名称:数据库的子查询、组合查询实验报告内容:1、写出习题3第75页第6题的2)3)5)6)小题的SQL语句2)查询读者的读者号、姓名、借阅的图书名、借出日期、归还日期。
SELECT 读者.读者号,姓名,书名,借出日期,归还日期FROM 读者, 图书,借阅WHERE 读者.读者号= 借阅.读者号AND 图书.图书号=借阅.图书号3)查询借阅了机械工业出版社出版,并且书名中包含’数据库’三个字的图书的读者,显示读者号、姓名、书名、出版社,借出日期、归还日期。
SELECT 读者.读者号,姓名,书名,出版社,借出日期,归还日期FROM 读者,图书,借阅WHERE 读者.读者号= 借阅.读者号AND 图书.图书号=借阅.图书号AND 出版社=‘机械工业出版社’ AND 书名LIKE’%数据库%’5)查询与’王平’的办公电话相同的读者的姓名。
SELECT R2.姓名FROM 读者R1, 读者R2where R1.办公电话= R2.办公电话AND R1.姓名='王小平'此语句等价与:SELECT 姓名FROM 读者WHERE 办公电话=(SELECT 办公电话FROM 读者WHERE 姓名='王小平')6)查询办公电话为’88320701’的所有读者的借阅情况,要求包括借阅了书籍的读者和没有借阅的读者,显示他们的读者号、姓名、书名、借阅日期。
SELECT 读者.读者号,姓名,图书号,借出日期FROM 读者, 借阅WHERE 读者.读者号*=借阅.读者号AND 办公电话=‘88320701’上述左外连接可可以用右外连接等价表示:SELECT 读者.读者号,姓名,图书号,借出日期FROM 读者,借阅WHERE 借阅.读者号=* 读者.读者号AND 办公电话=‘88320701’在SQLSERVER2000中,以上左外连接还可等价表示为:SELECT 读者.读者号,姓名,图书号,借出日期FROM 读者LEFT JOIN 借阅ON 读者.读者号= 借阅.读者号WHERE 办公电话=‘88320701’或者用右连接表示为:SELECT 读者.读者号,姓名,图书号,借出日期FROM 借阅RIGHT JOIN 读者ON 借阅.读者号= 读者.读者号WHERE 办公电话=‘88320701’2、写出习题3第75页第7题的1)2)4)8)小题的SQL语句1)查询所有单价小于平均单价的图书号、书名、出版社SELECT 图书号,书名,出版社FROM 图书WHERE 单价< (SELECT A VG(单价)’平均单价’ FROM 图书)2)查询’科学出版社’的图书中单价比’机械工业出版社’最高单价还高的的图书书名、单价。
大学mysql实验报告(三)附答案
实验报告(三)专业:班级:学号:姓名:实验名称:数据库的简单查询实验报告内容:1、写出第182页实验3中的SQL语句(第5)7)11)13)16)18)19)20)21)题)。
5)查询全体学生的选课情况,其成绩列值都加5,并为各列设置中文的别名SELECT Sno '学号',Cno '课程号',Grade+5 '成绩' FROM Enrollment7)显示所有选课学生的学号,并去掉重复行。
SELECT DISTINCT Sno '学号' FROM Enrollment11)查询学生年龄不在20~30之间的学生学号、姓名、所在系。
SELECT Sno ,Sname,Sdept FROM Students WHERE Sage NOT BETWEEN 20 AND 30等价于:SELECT Sno ,Sname,Sdept FROM Students WHERE Sage<20 OR Sage>3013)查询既不是数学系、计算机系,也不是艺术系学生的学号、姓名。
SELECT Sno,Sname FROM StudentsWHERE Sdept NOT IN ('Math', 'Computer', 'Art')等价于:SELECT Sno,Sname FROM StudentsWHERE Sdept! ='Math' AND Sdept! = 'Computer' AND Sdept! = 'Art'16)查找姓名以S、D或J开头的所有学生的学号、姓名。
SELECT Sno,Sname FROM Students WHERE Sname LIKE '[SDJ]%'18)查询无考试成绩的学生的学号和相应的课程号。
SELECT Sno, Cno FROM Enrollment WHERE Grade IS NULL不等价于:SELECT Sno, Cno FROM Enrollment WHERE Grade =019)查询有考试成绩(即成绩不为空值)的学生的学号、课程号。
mysql测试题及答案
mysql测试题及答案MySQL测试题及答案一、选择题1. MySQL的默认端口号是什么?A. 22B. 3306C. 80D. 443答案:B2. 下列哪个SQL语句用于查询表中的所有记录?A. SELECT * FROM table_name WHERE condition;B. SELECT * FROM table_name;C. SELECT table_name.*;D. SELECT ALL FROM table_name;答案:B3. 在MySQL中,以下哪个命令用于创建新的数据库?A. CREATE DATABASE database_name;B. NEW DATABASE database_name;C. START DATABASE database_name;D. INIT DATABASE database_name;答案:A二、填空题4. 在MySQL中,使用____语句可以删除一个表。
答案:DROP TABLE5. 要查看当前MySQL服务器上所有数据库的名称,可以使用____命令。
答案:SHOW DATABASES;6. 以下SQL语句的作用是____:SELECT column1, column2 FROMtable_name WHERE column1 = value1 ORDER BY column2 DESC LIMIT 1;答案:查询表table_name中column1等于value1的记录,并按column2降序排列,返回第一条记录。
三、简答题7. 请简述主键(Primary Key)和外键(Foreign Key)的区别。
答案:主键是表中用于唯一标识每条记录的字段,一个表只能有一个主键,并且主键的值不能为NULL。
外键是表中用于与另一个表的主键建立链接的字段,用于维护两个表之间的数据一致性,一个表可以有多个外键。
8. 解释什么是事务(Transaction)以及它的特性。
MySQL数据库基础与实践实践与练习答案-第1章
实践与练习答案第1章1.选择题BBACA2.概念题1)数据库(Dstabase DB)是“按照某种数据结构对数据进行组织、存储和管理的容器”,简单的说就是用来存储、管理数据的容器。
数据库系统(Dstabase System,DBS)是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统、应用程序、数据库管理员组成。
数据库管理系统(Dstabase Management System,DBMS)是一个管理、控制数据库容器中各种数据库对象的系统软件。
2)使用关系模型对数据进行组织、存储和管理的数据库称为关系数据库,关系数据库系统是支持关系数据模型的数据库系统。
3)表1-1SQL功能及包含的主要动词4)数据库设计分为如下6个阶段:需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、数据库物理结构设计阶段、数据库实施阶段以及数据库运行于维护阶段。
各阶段内容(略)。
5)E-R图中的实体表示现实世界具有相同属性描述的事物的集合,不是某一个具体事物,而是一类事物的统称。
E-R图中的实体通常使用矩形表示。
E-R图中的属性通常表示实体的某种特征,也可以使用属性表示实体间关系的特征。
一个实体通常包含多个属性,每个属性由属性名唯一标记,画在椭圆内。
3.操作题(1)学生:学好、姓名、年龄、性别、班级名班级:班级名、班主任、班级人数(2)一个学生只能属于一个班级,一个班级可以有很多学生,多以班级和学生之间是1对多的关心,即1:n。
(3)拥有(4)E-R图如下:12 班班班班班班1n 班班班班班班班班班班班班班班班班班班班。
MYSQL数据查询和答案.doc
课堂实验数据查询实验名称:数据查询目的要求:掌握使用select语句杳询表中数据的方法,包括简单杳询、排序和统计。
实验内容:1、使用select语句实现以下查询:(1)查询info_student表中所有学生的学号、姓名和班级。
SELECT student_id,student_name,classFROM info_student(2)查找所有在周二上课的课程号和课程名。
SELECT courseAS "课程号",course_name AS"课程名"FROM info_courseWHERE Course_time LIKE"周二%"(3)查询每个班级的学生人数。
提示:需用到统计函数SELECT class AS "班级",COUNT(student_id) AS "学生人数" FROMinfo_studentGROUP BY class(4)查询每个班级的男,女生人数。
SELECT class,COUNT(CASE WHEN sex="男"THEN 1 END) AS "男生人数",COUNT(CASE WHEN sex="女"THEN 1 END) AS "女生人数" FROMinfo_studentGROUP BY class(5)查询选课空间最大的课程(即限选人数与选课人数之差最大)的课程号和课程名。
select Course」d,Course_namefrom info_coursewhere Capacity-CollectedMan=(select max(Capacity-CollectedMan) from info_course)(6)査询选修了“网络营销”课程的学生学号,学生姓名,课程号、课程名、主讲教师姓名及课程的成绩。
mysql09实训指导书(带答案)
MySQL 数据库原理与应用实训九操作指导书1、实训目标:1)使用order by 子句进行查询结果排序2)使用group by 子句进行查询结果分组计算2、实训任务:1)掌握order by 子句进行查询结果排序2)掌握group by 子句进行查询结果分组计算3、实训指导请大家上机写出相应SQL语句,复制粘贴到相应题目下。
以学号+姓名命名方式提交。
1)在数据库D_sample中查询course表中开课学期按照升序排列的课程信息。
use d_sample; select * from course order by 开课学期;2)在数据库D_sample中查询sc表中选修了“ 07003”课程的学生成绩,成绩按降序进行排序。
use d_sample;select * from scwhere 课程号='07003'order by 成绩desc;3)在数据库D_sample中统计student表中学生的男女人数。
use d_sample;select性别,cou nt(性别)as人数from studentgroup by 性别;4)在数据库D_sample中统计student表中每个民族的男女人数、总人数, 以及学生总人数。
Use d_sample;select民族,性别,count(*) as人数from studentgroup by 民族,性别with rollup;5)在数据库D_sample中查询sc表中平均成绩在85分以上的课程号select课程号,avg成绩)as平均成绩from scgroup by 课程号hav ing avg成绩)>=85;6) 在数据库D_sample中查询course表中课程学分为4的课程门数used_sample;select count(*) from course where 学分=4;7)在数据库D_sample中查询sc表,查询每位学生的学号、总成绩。
数据库原理及应用教程(MySQL版)-实验素材及答案
数据库原理及应用教程(MySQL版)- 实验素材及答案第一章数据库的基本概念实验素材•数据库系统是由数据库和数据库管理系统(DBMS)组成的,数据库是用于存储和管理数据的集合,而DBMS是用于管理数据库的软件。
•数据是描述事物的符号记录,可以是数字、文字、图像等形式。
•数据库的特点包括永久存储、面向用户的数据抽象、数据的共享与并发控制等。
•数据库的应用领域非常广泛,包括企业管理、电子商务、金融服务等。
实验答案1.数据库系统是由数据库和数据库管理系统组成的。
数据库是用于存储和管理数据的集合,而数据库管理系统是用于管理数据库的软件。
2.数据是描述事物的符号记录,可以是数字、文字、图像等形式。
3.数据库的特点包括永久存储、面向用户的数据抽象、数据的共享与并发控制等。
4.数据库的应用领域非常广泛,包括企业管理、电子商务、金融服务等。
第二章数据库的逻辑结构实验素材•数据库的逻辑结构包括三层模式,分别是外模式、概念模式和内模式。
•外模式是用户对数据库的视图,它描述了用户所需要的数据的逻辑结构。
•概念模式是全局的逻辑结构描述,它描述了整个数据库的逻辑结构,是数据库设计的产物。
•内模式是数据库在存储介质上的存储结构,它是数据库管理系统的内部表示,对用户不可见。
实验答案5.数据库的逻辑结构包括三层模式,分别是外模式、概念模式和内模式。
6.外模式是用户对数据库的视图,它描述了用户所需要的数据的逻辑结构。
7.概念模式是全局的逻辑结构描述,它描述了整个数据库的逻辑结构,是数据库设计的产物。
8.内模式是数据库在存储介质上的存储结构,它是数据库管理系统的内部表示,对用户不可见。
第三章数据库的物理结构实验素材•数据库的物理结构指的是数据在存储介质上的存储方式,包括存储单位、磁盘存储和索引结构等。
•存储单位是数据库管理系统分配存储空间的最小单元,通常是一个数据块。
•数据库的物理结构设计是为了提高数据库的访问效率,如磁盘存储可以减少磁盘I/O操作,索引结构可以加快数据的查找速度。
MySQL数据库应用-国家开放大学电大学习网形考作业题目答案
MySQL数据库应用实验1-1参见4.1节内容,完成MySQL数据库的安装与配置。
MySQL数据库的安装与配置。
下载后的MySQL安装文件是mysql-5.5.12-win32.msi,运行该程序可以进行MySQL安装,在安装完成后会显示如图4-2,在图4-2中选中Launch the MySQL Instance Configuration Wizard复选框,单击Finish按钮,进行配置,显示如图4-3所示的对话框。
选择使用哪种配置方式在图4-3中,选中Detailed Configuration进行详细配置,单击Next按钮,下一界面选中Developer Machine(开发者机器)单选按钮,单击Next按钮;继续选中Multifunctional Database(多功能数据库),单击Next按钮;选择InnoDB 表空间保存位置,单击Next按钮;下一界面中选择服务器并发访问人数;设置端口号和服务器SQL模式(MySQL使用的默认端口是3306,在安装时,可以修改为其他的,如3307,但是一般情况下,不要修改默认的端口号,除非3306端口已经被占用);选中Manual Selected Default Character Set/Collation(设置默认字符集编码为utf8),单击Next按钮,选中Install As Windows Service和Include Bin Directory in Windows PATH复选框,针对Windows系统设置,单击Next按钮,打开如图4-4所示的对话框;在图4-4中输入数据库的密码“111”,单击Next按钮(注意:在安装MySQL数据库时,一定要牢记在上述步骤中设置的默认用户root的密码,这是我们在访问MySQL数据库时必须使用的),打开如图4-5所示的对话框。
图4-4 输入数据库的密码图图4-5 确认配置对话框在图4-5中单击Execute按钮,执行前面进行的各项配置,配置完成后的效果如图4-6所示。
MySQL数据库实用教程(附微课)课后习题答案
一、单项选择题1~5 BBCAC 6~10 ABDBA二、填空题1. 逻辑独立性2. 1,多3. 记录/元组,字段/属性4. 205. root第2章一、单项选择题1~5 BCACA二、填空题1. 逻辑结构设计2. 需求分析3. 命名冲突,结构冲突4. 可由基本属性推导或计算得到的属性5. 3NF第3章一、单项选择题1~5 DADCD 6~10 BBACA 11~15 BDABB二、填空题1. TINYINT2. 二进制字符串3. CREATE TABLE student(sno CHAR(12), sname VARCHAR(50), address VARCHAR(100));4. ALTER TABLE student RENAME contact;5. CREATE TABLE contact2 LIKE contact;6. DROP TABLE contact2;7.外键8.SET NULL9. 检查10. 主键第4章一、单项选择题1~5 DCBCB 6~10 BCAAB二、填空题1. REPLACE2. 数据表定义的字段3. WHERE4. 外键5. CASCADE一、单项选择题1~5 CBCDA 6~10 ACDDC二、填空题1、表名.字段名称2、WHERE3、等值非等值4、别名5、GROUP BY第6章一、单项选择题1~5 DCBAD二、填空题1、定义数据2、一一对应3、表4、ALTER VIEW5、WHERE第7章一、单项选择题1~5 DAACD二、填空题1、排序2、一3、唯一4、CHAR VARCHAR5、被删除第8章一、单项选择题1~5 DBADA二、填空题1、ABXYZ2、RETURN3、FETCH4、BEFORE AFTER5、INOUT6、事件第9章一、单项选择题1~5 BBADC 6~10 CACCA1. InnoDB2. 原子性3. START TRANSACTION 或BEGIN WORK4. 脏读5. 可重复读第10章一、单项选择题1~5 BAADB 6~10 ABCAA二、填空题1. 请求核实阶段2. GRANT3. CREATE,INSERT4. SHOW BINARY LOGS5. RESET MASTER。
MySQL数据库技术及应用 课后习题答案 (6)[3页]
项目6一、选择题1、D2、D3、C4、D5、B6、D7、D8、D二、填空题1、数据库的备份恢复2、系统管理员定期或不定期地将数据库部分或全部内容复制或导出到另一个磁盘上保存起来3、热备份温备份冷备份4、完整备份差异备份增量备份5、把遭到破坏、丢失的数据或出现重大错误的数据库恢复到原来正常的状态备份6、数据库备份二进制日志文件数据库复制三、判断题1、对2、对3、对4、对四、简答题1、答:MySQL提供了以下几种数据库备份方式:(1)直接复制data目录,属于冷备份。
优点:操作简单。
缺点:必须在数据库停止运行的时候进行备份,只能提供到“某一时间点的上”的恢复,且不能用于InnoDB 存储引擎的表。
(2)使用mysqldump命令备份,属于热备份。
优点:可在服务器正常运行的情况下进行数据备份,使用方便。
缺点:备份文件较大,备份速度慢,不灵活,也只能恢复到最近完整备份文件的那一刻。
(3)使用二进制日志备份。
优点:备份更灵活,支持增量备份。
缺点:对存储引擎等有要求。
2、答:MySQL提供了以下几种数据库恢复语句:(1)使用mysql命令恢复数据库;(2)使用SOURCE命令恢复数据库。
(1)使用mysql命令恢复数据库的语法格式:mysql -h主机名-u用户名-p [数据库名]<[文件路径]文件主名.sql(2)使用SOURCE命令恢复数据库的语法格式:SOURCE [文件路径]文件主名.sql;3、答:先利用最近一次的(2020-7-31晚12点)全库备份恢复数据库;再按日期时间的先后顺序(2020-7-31日晚12点~2020-8-1日5:30)进行二进制日志备份的恢复。
4、答:在MySQL中,可以使用SELECT...INTO OUTFILE语句将从表中查询的结果记录导出到各种格式的文件中,如txt文件、xls文件、xml文件或html文件。
相应的,也可以使用LOAD DA TA INFILE语句将这些格式的文件导入到MySQL数据库中。
最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练1及3答案
最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练1及3答案最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练1及3答案盗传必究本课程分为形成性考核和终结性末考两种考核形式,形成性考核占50%(满分100分),末考为网络考试占50%(满分100),其中形成性考核为完成课程网站上的形考作业任务,形考作业均为主观题,包括四个实训:实训一:在MYSQL创建数据库和表,25分;实训二:数据查询操作,25分;实训三:数据增删改操作,25分;实训四:数据库系统维护,25分。
实验训练1 在MySQL中创建数据库和表答案:步骤:1、使用show 语句找出在服务器上当前存在什么数据库:mysqlshow databases; 2、创建一个数据库test :mysqlcreate database test; 3、选择你所创建的数据库:mysqluse test; 4 创建一个数据表:首先查看刚才创建的数据库中存在什么表:mysqlshow tables; (说明刚才创建的数据库中还没有数据库表)接着我们创建一个关于students 的数据表:包括学生的学号(id) ,姓名(name) ,性别(sex) ,年龄(age) 。
mysqlcreate table students(id int unsigned not null auto_increment primary key,name char(8) not null,sex char(4) not null,age tinyint unsigned not null,); 解释:以“id int unsigned not null auto_increment pri mary key“ 行进行介绍: “id“ 为列的名称; “int“ 指定该列的类型为int( 取值范围为-***-***** 到***-*****),在后面我们又用“unsigned“ 加以修饰, 表示该类型为无符号型, 此时该列的取值范围为0 到***-*****; “not null“ 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空; “auto_increment“ 需在整数列中使用, 其作用是在插入数据时若该列为NULL, MySQL 将自动产生一个比现存值更大的唯一标识符值。
mysql数据库练习题(含答案)
mysql数据库练习题(含答案)创建数据库1 DROP DATABASE IF EXISTS test1; #如果存在test1数据库删除test1数据库2 CREATE DATABASE test1; #创建test1数据库3 USE test1; #切换的test1数据库⾥创建部门表1 DROP IF EXISTS TABLE DEPT; #如果存在dept数据表,删除dept数据表.2 CREATE TABLE DEPT(3 DEPTNO int PRIMARY KEY, #部门编号4 DNAME VARCHAR(14) , #部门名称5 LOC VARCHAR(13) #部门地址6 ) ;向部门表插⼊数据1 INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');2 INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');3 INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');4 INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');创建员⼯表1 DROP IF EXISTS TABLE EMP; #如果存在emp数据表,删除emp数据表.2 CREATE TABLE EMP(3 EMPNO int PRIMARY KEY, #员⼯编号4 ENAME VARCHAR(10), #员⼯姓名5 JOB VARCHAR(9), #员⼯⼯作6 MGR int, #员⼯直属领导编号7 HIREDATE DATE, #⼊职时间8 SAL double, #⼯资9 COMM double, #奖⾦10 DEPTNO int #对应dept表的外键11 );添加部门和员⼯之间的主外键关系1 ALTER TABLE EMP ADD CONSTRAINT FOREIGN KEY EMP(DEPTNO) REFERENCES DEPT (DEPTNO); #加主键约束1.主键约束:要对⼀个列加主键约束的话,这列就必须要满⾜的条件就是分空因为主键约束:就是对⼀个列进⾏了约束,约束为(⾮空、不重复)以下是代码要对⼀个列加主键,列名为id,表名为emp格式为:alter table 表格名称 add constraint 约束名称增加的约束类型(列名)添加部门和员⼯1 INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7902,"1980-12-17",800,NULL,20);2 INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30); 3 INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30); 4 INSERT INTO EMPVALUES(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20); 5 INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30); 6 INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30); 7 INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10); 8 INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566,'1987-07-03',3000,NULL,20); 9 INSERT INTO EMPVALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10); 10 INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30); 11 INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788,'1987-07-13',1100,NULL,20); 12 INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30); 13 INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20); 14 INSERT INTO EMPVALUES(7934,'MILLER','CLERK',7782,'1981-01-23',1300,NULL,10);创建⼯资等级表1 DROP IF EXISTS TABLE SALGRADE; #如果存在salgrade数据表,删除salgrare数据表.2 CREATE TABLE SALGRADE(3 GRADE int, #等级4 LOSAL double, #最低⼯资5 HISAL double ); #最⾼⼯资6 INSERT INTO SALGRADE VALUES (1,700,1200);7 INSERT INTO SALGRADE VALUES (2,1201,1400);8 INSERT INTO SALGRADE VALUES (3,1401,2000);9 INSERT INTO SALGRADE VALUES (4,2001,3000); 10 INSERT INTO SALGRADE VALUES (5,3001,9999);单表查询题⽬及答案1 #1、查找部门30中员⼯的详细信息。
最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练2答案
最新国家开放大学电大《MySQL数据库应用》网络核心课实验训练2答案最新国家开放大学电大《MySQL数据库》网络核心课实验训练2答案盗传必究实验训练2:数据查询操作答案:实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符、函数、谓词,练习Select语句的操作方法。
实验内容: 1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。
分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。
(2)查询ID为1的订单。
分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。
【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。
分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。
【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。
(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。
分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。
【实验2.4】ORDERBY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。
分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDERBY语句,降序使用DESC关键字。
(2)查询今年新增的所有会员,结果按照用户名字排序。
分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDERBY【实验2.5】GROUPBY(1)查询每个用户的消费总金额(所有订单)。
大学mysql实验报告(四)附答案
⼤学mysql实验报告(四)附答案实验报告(四)专业:班级:学号:姓名:实验名称:数据库的多表连接查询实验报告内容:1、⽤SELECT语句完成第183页实验3的23)27)28)31)的查询语句23) 求选修了课程的学⽣⼈数SELECT COUNT(*)选课⼈数FROM Enrollment27)求选修每门课程的学⽣⼈数。
SELECT Cno AS '课程号', COUNT(Sno) AS '选修⼈数'FROM Enrollment GROUP BY Cno28)求每个学⽣的学号和各门课程的总成绩。
SELECT Sno '学号', Sum(grade) '总成绩' FROM Enrollment GROUP BY Sno31)查询选修了C1课程的学⽣的学号和成绩,查询结果按成绩降序排列。
SELECT Sno, Grade FROM Enrollment WHERE Cno='C1' ORDER BY Grade DESC32)查询全体学⽣信息,查询结果按所在系的系名升序排列,同⼀系的学⽣按年龄降序排列。
SELECT * FROM Students ORDER BY Sdept, Sage DESC2、⽤SELECT语句完成第183页实验4的2)3)4)6)的查询语句2)查询每个学⽣的学号、姓名、选修的课程名、成绩。
SELECT Students.Sno,Sname, Cname,GradeFROM Students,Courses,EnrollmentWHERE Students.Sno = Enrollment.Sno AND /doc/4b14113722.htmlo= /doc/4b14113722.htmlo3)查询选修了C2且成绩⼤于90分的学⽣的学号、姓名、成绩。
SELECT Students.Sno,Sname, GradeFROM Students, EnrollmentWHERE Students.Sno = Enrollment.Sno AND Cno='C2 ' AND Grade>904)求计算机系选修课程超过2门课的学⽣的学号、姓名、平均成绩, 并按平均成绩从⾼到低排序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一创建、修改数据库和表结构1、用create建立教学数据库的五个基本表:(1)学生表(学号,姓名,性别,年龄),student((Sno, sname,ssex,sage) ;(2)课程表(课程号,课程名,学分),Course (Cno, Cname, credit) ;(3)选课表(学号,课程号,成绩),SC (Sno,, Cno, grade ) ;(4) 教师表(教师号,姓名,性别,出生年月,系部,职称,地址),T(Tno,Tname,ssex,birthday,dept,title,address) ;(5) 工资表(教师号,基本工资,职务工资,合计),Salary(Tno,jbgz,zwgz,hj);Create Database Student default character set utf8 default COLLATE utf8_bin;Use Student;Create Table Student(SNo c har(20) primary key,SName char(20) ,SSex char(4) default '男',SAge int) ENGINE=InnoDB;Create Table Course(CNo c har(20) primary key,CName char(20) NOT NULL,CRedit f loat) ENGINE=InnoDB;Create Table SC(SNo c har(20) NOT NULL,CNo c har(20) NOT NULL,Grade float,Primary Key(SNo, CNo),Foreign Key(SNo) References Student(SNo) On Delete Cascade,Foreign Key(CNo) References Course(CNo))ENGINE=InnoD B;Create Table T(TNo c har(20) Primary Key,TName char(20) NOT NULL,TSex char(4) default '男',birthday DateTime,dept char(20),title char(20),address char(20))ENGINE=InnoDB;Create Table Salary(TNo c har(20) NOT NULL,jbgz float,zwgz float,hj float,Foreign Key(TNo) References T(TNo) On Delete Cascade)ENGINE=InnoDB;2、用alter修改基本表(1)在已存在的学生表student中增加一个sdept(系)的新的属性列;alter table Student add Dept char(20);(2)将学生表student中sname属性列的数据类型修改为变长字符串varchar(10)。
alter able Student modify colum sname varchar(10)3、建立一个临时表,然后将其删除Create Table temp (ANo c har(20) NOT NULL,B float, C char(10) )Drop table temp实验二建立与删除索引1、用create index在学生表student的学号sno上建立聚簇索引。
Create Clustered Index SNo_Index On Student(SNo);2、在学生表student中,为姓名sname建立非聚簇索引。
Create Index SName_Index On Student(SName);3、在课程表的课程号Cno上建立唯一索引。
Create Unique Index CNo_Index On Course(CNo);4、在选课表的学号sno、成绩Grade上建立复合索引,要求学号为升序,学号相同时成绩为降序。
Create Index SCNo_Index On SC(SNo ASC, Grade DESC);5、用drop删除学生表student的索引。
Drop Index ;6、增加学生表student中姓名唯一约束。
Alter Table Student Add Unique(SName);7、增加学生表student中性别‘男’、‘女’唯一约束。
Alter Table Student Add Constraint:SSex check(SSex = '男' or SSex = '女');8、增加学生表student中年龄18~25岁约束。
Alter Table Student Add Constraint:SAge check(SAge >= 18 And SAge <= 25);9、增加选课表SC中学号sno的外码约束。
Alter Table SC Add Foreign Key(SNo) references Student(SNo);-实验三数据的插入、更新及删除操作1、用insert输入数据。
学生表student的数据Insert Into Student Values('991201', '张三', '男', 22, '计算机科学与技术系');Insert Into Student Values('991202', '李四', '男', 21, '信息科学系');Insert Into Student Values('991101', '王五', '男', 23, '数理系');Insert Into Student Values('991102', '陈六', '男', 19, '计算机科学与技术系');Insert Into Student Values('991103', '吴七', '女', 24, '数理系');Insert Into Student Values('000101', '刘八', '女', 22, '信息科学系');课程表course的数据Insert Into Course Values('1', '数学', 5);Insert Into Course Values('2', '数据结构', 4); Insert Into Course Values('3', '程序设计', 2); Insert Into Course Values('4', '数据库原理', 3); Insert Into Course Values('5', '操作系统', 3);选课表SC的数据Insert Into SC Values('991201', '1', 90);Insert Into SC Values('991201', '5', 80);Insert Into SC Values('991201', '3', 85);Insert Into SC Values('991201', '4', 90);Insert Into SC Values('991102', '1', 85);Insert Into SC Values('991102', '2', 98);Insert Into SC Values('000101', '2', 91);基本表T的数据Insert Into T Values('0001', '张三', '男', '1968-10-10', '信息科学系', '副教授', '湘潭');Insert Into T Values('0002', '李四', '女', '1956-11-10', '信息科学系', '教授', '长沙');Insert Into T Values('1001', '王五', '男', '1973-07-20', '计算机科学与技术系', '讲师', '湘潭');Insert Into T Values('1008', '陈六', '男', '1970-08-20', '计算机科学与技术系', '副教授', '北京');基本表Salary的数据Insert Into Salary Values('0001', 1000, 300, 1300); Insert Into Salary Values('0002', 1500, 500, 2000); Insert Into Salary Values('1001', 800, 200, 1000);*/ 2、用delete删除数据记录(1)删除教师表T中教师号为0001的元组。
(2)删除教师表T中的全部数据。
update t set birthday='1961-10-04' where Tno ='0001'Delete From T;3、用 update更新数据记录(1)把0001号教师的基本工资加100。
(2)把所有教师的基本工资都加100。