数据库查询操作练习

CREATE TABLE `student` (

`sno` varchar(20) NOT NULL COMMENT ‘学号‘,

`sname` varchar(20) NOT NULL COMMENT ‘学生姓名‘,

`ssex` varchar(20) NOT NULL COMMENT ‘学生性别‘,

`sbirthday` datetime DEFAULT NULL COMMENT ‘学生出生年月‘,

`class` varchar(20) DEFAULT NULL COMMENT ‘学生所在班级‘,

PRIMARY KEY (`sno`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `course` (

`cno` varchar(255) NOT NULL COMMENT ‘课程号‘,

`cname` varchar(255) NOT NULL COMMENT ‘课程名称‘,

`tno` varchar(255) NOT NULL COMMENT ‘教工编号‘,

PRIMARY KEY (`cno`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `score` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`sno` varchar(20) NOT NULL COMMENT ‘学号‘,

`cno` varchar(20) NOT NULL COMMENT ‘课程号‘,

`degree` decimal(4,1) DEFAULT NULL COMMENT ‘成绩‘,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

CREATE TABLE `teacher` (

`tno` varchar(20) NOT NULL DEFAULT ‘‘ COMMENT ‘教工编号‘,

`tname` varchar(20) NOT NULL DEFAULT ‘‘ COMMENT ‘教工姓名‘,

`tsex` varchar(20) NOT NULL DEFAULT ‘‘ COMMENT ‘教工性别‘,

`tbirthday` datetime DEFAULT NULL COMMENT ‘教工出生年月‘,

`prof` varchar(20) DEFAULT NULL COMMENT ‘职称‘,

`depart` varchar(20) NOT NULL COMMENT ‘教工所在部门‘,

PRIMARY KEY (`tno`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO student(sno,sname,ssex,sbirthday,class)VALUES

(‘101‘,‘李军‘,‘男‘,‘1977-09-01 00:00:00‘,‘95033‘),

(‘103‘,‘陆君‘,‘男‘,‘1977-09-01 00:00:00‘,‘95031‘),

(‘105‘,‘匡明‘,‘男‘,‘1977-09-01 00:00:00‘,‘95031‘),

(‘107‘,‘王丽‘,‘女‘,‘1977-09-01 00:00:00‘,‘95033‘),

(‘108‘,‘曾华‘,‘男‘,‘1977-09-01 00:00:00‘,‘95033‘),

(‘109‘,‘王芳‘,‘女‘,‘1977-09-01 00:00:00‘,‘95031‘);

INSERT INTO course(cno,cname,tno)VALUES

(‘3-105‘,‘计算机导论‘,‘825‘),

(‘3-245‘,‘操作系统‘,‘804‘),

(‘6-166‘,‘数学电路‘,‘856‘),

(‘9-888‘,‘高等数学‘,‘831‘);

INSERT INTO score(sno,cno,degree)VALUES

(‘103‘,‘3-245‘,‘86‘),

(‘105‘,‘3-245‘,‘75‘),

(‘109‘,‘3-245‘,‘68‘),

(‘103‘,‘3-105‘,‘92‘),

(‘105‘,‘3-105‘,‘88‘),

(‘109‘,‘3-105‘,‘76‘),

(‘101‘,‘3-105‘,‘64‘),

(‘107‘,‘3-105‘,‘91‘),

(‘108‘,‘3-105‘,‘78‘),

(‘101‘,‘6-166‘,‘85‘),

(‘107‘,‘6-166‘,‘79‘),

(‘108‘,‘6-166‘,‘81‘);

INSERT INTO teacher(tno,tname,tsex,tbirthday,prof,depart)VALUES

(‘804‘,‘李诚‘,‘男‘,‘1958-12-02 00:00:00‘,‘副教授‘,‘计算机系‘),

(‘825‘,‘王萍‘,‘女‘,‘1972-05-05 00:00:00‘,‘助教‘,‘计算机系‘),

(‘831‘,‘刘冰‘,‘女‘,‘1977-08-14 00:00:00‘,‘助教‘,‘电子工程系‘),

(‘856‘,‘张旭‘,‘男‘,‘1969-03-12 00:00:00‘,‘讲师‘,‘电子工程系‘);

SELECT sname,ssex,class FROM student;-- 1)查询Student表中的所有记录的Sname、Ssex和Class列。

SELECT DISTINCT depart FROM teacher;-- 2)查询教师所有的单位即不重复的Depart列。

SELECT student.* FROM student;-- 3)查询Student表的所有记录。

SELECT score.* FROM score WHERE degree BETWEEN 60 and 80;-- 4)查询Score表中成绩在60到80之间的所有记录。

SELECT score.* FROM score WHERE degree IN(‘85‘,‘86‘,‘88‘);-- 5)查询Score表中成绩为85,86或88的记录。

SELECT student.* FROM student WHERE class=‘95031‘ OR ssex=‘女‘;-- 6)查询Student表中“95031”班或性别为“女”的同学记录。

SELECT student.* FROM student ORDER BY class DESC;-- 7)以Class降序查询Student表的所有记录。

SELECT score.* FROM score ORDER BY cno ASC,degree DESC;-- 8)以Cno升序、Degree降序查询Score表的所有记录。(多个排序使用“,”逗号隔开)

SELECT score.sno,score.cno FROM score ORDER BY degree DESC LIMIT 0,1;-- 9)查询Score表中的最高分的学生学号和课程号。(排序后limit)

SELECT score.sno FROM score WHERE degree>70 AND degree<90;-- 10)查询分数大于70,小于90的Sno列。

SELECT student.sname,score.cno,score.degree FROM student INNER JOIN score WHERE student.sno=score.sno;-- 11)查询所有学生的Sname、Cno和Degree列。(多表查询)

SELECT score.sno,course.cname,score.degree FROM score INNER JOIN course WHERE score.cno=course.cno;-- 12)查询所有学生的Sno、Cname和Degree列。

SELECT student.sname,course.cname,score.degree FROM student INNER JOIN course INNER JOIN score WHERE student.sno=score.sno AND score.cno=course.cno;-- 13)查询所有学生的Sname、Cname和Degree列。

SELECT score.degree FROM score WHERE score.degree>(SELECT score.degree FROM score WHERE sno=‘109‘ AND cno=‘3-105‘);-- 14)查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。

SELECT student.sno,student.sname,student.sbirthday FROM student WHERE sbirthday=(SELECT student.sbirthday FROM student WHERE sno=‘108‘);-- 15)查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。

SELECT score.degree FROM score INNER JOIN course WHERE score.cno=course.cno AND course.cname=‘计算机导论‘;-- 16)查询考计算机导论的学生成绩

SELECT course.cname FROM course INNER JOIN teacher WHERE course.tno=teacher.tno AND teacher.tname=‘李诚‘;-- 17)查询李诚老师教的课程名称

SELECT teacher.depart FROM teacher INNER JOIN course WHERE teacher.tno=course.tno AND course.cname=‘高等数学‘;-- 18)教高等数学的老师是哪个系的

SELECT course.cno FROM course INNER JOIN score WHERE course.cno=score.cno AND score.degree>‘85‘;-- 19)查询成绩表中存在有85分以上成绩的课程Cno.

SELECT teacher.tname ‘姓名‘,teacher.tsex ‘性别‘,teacher.tbirthday ‘出生年月‘ FROM teacher UNION SELECT student.sname,student.ssex,student.sbirthday FROM student;-- 20)查询所有教师和同学的name、sex和birthday.

SELECT teacher.tname ‘姓名‘,teacher.tsex ‘性别‘,teacher.tbirthday ‘出生年月‘ FROM teacher WHERE teacher.tsex=‘女‘ UNION SELECT student.sname,student.ssex,student.sbirthday FROM student WHERE student.ssex=‘女‘;-- 21)查询所有“女”教师和“女”同学的name、sex和birthday.

SELECT teacher.tname,teacher.depart FROM teacher INNER JOIN course WHERE teacher.tno=course.tno;-- 22)查询所有任课教师的Tname和Depart.

SELECT student.* FROM student WHERE student.sname NOT LIKE ‘王%‘;-- 23)查询Student表中不姓“王”的同学记录。

SELECT student.* FROM student ORDER BY class DESC,sbirthday DESC;-- 24)以班号和年龄从大到小的顺序查询Student表中的全部记录。

SELECT teacher.tname,course.cname FROM teacher INNER JOIN course WHERE teacher.tno=course.tno AND teacher.tsex=‘男‘;-- 25)查询“男”教师及其所上的课程。

SELECT student.sname FROM student WHERE student.ssex=(SELECT student.ssex FROM student WHERE student.sname=‘李军‘)AND sname<>‘李军‘;-- 26)查询和“李军”同性别的所有同学的Sname.

原文地址:https://www.cnblogs.com/javawen/p/10802769.html

时间: 2024-11-09 09:46:20

数据库查询操作练习的相关文章

数据库查询操作(fetchone,fetchall)

数据库查询操作 Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据. fetchone(): 该方法获取下一个查询结果集.结果集是一个对象 fetchall():接收全部的返回结果行. rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数. fetchone() : 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None fetchall() : 返回多个元组,即返回多个记录(row

DDL数据库查询操作学习

一 数据库初识 l SQL是Structured Query Language(结构化查询语言)的缩写. l SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言. 在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的. 二 数据库的组成 l 1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义. l 2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项. l 3.一个表或者是一个基本表或者是一个视图.基本表是实际存储在数据

数据库查询操作

1.distinct 消除取值相同的行. 2. in    列名 [not] in   (常量1, 常量2...) 确定某个属性的值是否在一个集合范围内. 3.字符串匹配. like    :  列名 [not] like  < 匹配串> 匹配字符串可以包含字符常量,也可以包含如下四种通配符. ① _ : 匹配任意一个字符. ②%:匹配0个或多个字符. ③[ ]:匹配"[ ] " 中的任意一个字符.如[acdg]表示匹配a.c.d.g中的任何一个.对于连续字母的匹配,例如[

简单的数据库查询操作

格式: select <目标列名序列>    ---需要哪些列from <表名>        ---来自于哪些表where <行选择条件>    ---根据什么条件group by <分组依据列>having <组选择条件>order by <排序依据列> select * from student select * from student where sno = '1' select * from student s,cours

mysql数据库查询操作

数据查询语言 SELECT 列名1,列名2...FROM 表名 [WHERE条件] 查询所有字段用* 不带where条件就把表的所有记录查出来 =    //赋值和判断都是 !=   <> //两种不等于 <  >   <=    >= OR 或者 || AND 且 && BETWEEN 5 AND 10 IN NOT IN LIKE  '%值%' 一些简单的查询,以user表为例,sex->0表示男,1表示女 查询所有 sleect * from

Python操作mysql数据库查询操作时提示“unread-result-found”

原因描述: 当Windows操作系统损坏时,会出现"unread-result-found"错误,比如启动程序将会变慢,响应时间将会延迟.当运行多个应用程序时,可能会遇到崩溃和死机.这个错误可能有很多原因,包括过多的启动条目.注册表错误.硬件/RAM下降.碎片文件.不必要的或冗余的程序安装等等. 解决方法: 为了解决刚才提到的问题,您可以显著地提高机器的速度.为了修复错误和提高PC速度,建议您下载' mysql .connect .error .internalerror Unread

5- MySQL数据库查询操作

复习: 数据类型: 数值型:整数(int,tinyint,smallint,bigint,mediumint) 浮点型(float ,double,decimal) 字符型:char ,varchar,text. 日期时间,date,time,datetime,timestamp. 创建表:create table表名 原文地址:https://www.cnblogs.com/Chamberlain/p/10970786.html

数据库表的查询操作实践演练(实验三),数据库演练

继前两次的实验,本次实验以熟练掌握利用select语句进行各种查询操作:单表查询.多表连接及查询.嵌套查询.集合查询等,巩固数据库查询操作.下面就跟着小编一起练习吧!在实验一创建并插入数据的表(Student, Course,SC,Teacher,TC)的基础上,完成以下操作.(1)将教师‘罗莉'的名字改为‘罗莉莉'.复制代码 代码如下:update Teacher set tname='罗莉莉' where tname='罗莉'(2)将两个同学(数据自己临时设置,用后即删除)的两门课程的成绩以

bottle框架学习(八)之Mysql数据库的操作

MySQLdb 是用于Python连接Mysql数据库的接口. 安装MySQLdb [[email protected] bottle]# yum install MySQL-python –y 如果使用编译安装请到这里下载安装包https://pypi.python.org/pypi/MySQL-python并执行以下命令 [[email protected] bottle]# gunzip  MySQL-python-1.2.3.tar.gz [[email protected] bottl