【数据库】【MySQL】操作题 训练

打印 上一主题 下一主题

主题 1955|帖子 1955|积分 5865

前言-语法

创建表格的语法为:CREATE TABLE 表名(字段的界说,各字段用逗号分隔);
插入记录的语法为:INSERT INTO 表名 VALUES(插入的信息,各信息用逗号分隔);
查询所有记录的语法为:SELECT*FROM 表名;
查询部分记录的语法为(一):SELECT*FROM 表名 LIMIT 索引区间;
留意:索引区间从0开始。
查询部分记录的语法为(二):SELECT 字段名聚集,各字段用逗号分隔 FROM 表名;
说明:着实就是最后输出的字段列可选,不过假如想表现全部就用星号*。
查询指定信息的记录的语法为(三):SELECT * FROM 表名 WHERE 字段名 IN (字段包罗的信息聚集,各指定信息用逗号分隔);
查询指定区间信息的记录的语法为(四):SELECT * FROM 表名 WHERE 字段名 BETWEEN 左区间 AND 右区间;
字段重定名利用关键字:AS。
计算有多少(统计数据):关键字GROUP BY。语法:SELECT 字段聚集 FROM 表名 GROUP BY 要统计的那个字段名;
说明:一样平常会对字段聚会合的某字段进行COUNT或别的操作,关键字GROUP BY与关键字COUNT往往会并用。
对数值型记录可利用函数直接找出最大最小值:MAX(字段名),即可找出该字段中的最大值。
   数据库查询中,GROUP BY 子句通常与聚合函数一起利用,以便对一组数据进行汇总。聚合函数可以对一组值实行计算,并返回单个值。以下是一些常用的聚合函数及其用法:
  

  • COUNT:计算行数。比方:SELECT COUNT(*) FROM table_name; 计算表中的总行数。
  • SUM:计算数值列的总和。比方:SELECT SUM(column_name) FROM table_name; 计算某列的总和。
  • AVG:计算数值列的平均值。比方:SELECT AVG(column_name) FROM table_name; 计算某列的平均值。
  • MIN:找出数值列的最小值。比方:SELECT MIN(column_name) FROM table_name; 找出某列的最小值。
  • MAX:找出数值列的最大值。比方:SELECT MAX(column_name) FROM table_name; 找出某列的最大值。
  

开始训练



 1.创建student和score表

  1. CREATE TABLE student(
  2. id INT(10) NOT NULL UNIQUE PRIMARY KEY,
  3. name VARCHAR(20) NOT NULL,
  4. sex VARCHAR(20),
  5. birth YEAR,
  6. department VARCHAR(20) NOT NULL,
  7. address VARCHAR(50)
  8. );
  9. CREATE TABLE score(
  10. id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,
  11. stu_id INT(10) NOT NULL,
  12. c_name VARCHAR(20),
  13. grade INT(10)
  14. );
复制代码
2.为student和score表增长记录

  1. INSERT INTO student VALUES(901, '张老大', '男', 1985, '计算机系', '北京市海淀区');
  2. INSERT INTO student VALUES(902, '张老二', '男', 1986, '中文系', '北京市昌平区');
  3. INSERT INTO student VALUES(903,'张三', '女',1990,'中文系', '湖南省永州市');
  4. INSERT INTO student VALUES(904,'李四', '男',1990,'英语系', '辽宁省阜新市');
  5. INSERT INTO student VALUES(905,'王五', '女',1991,'英语系', '福建省厦门市');
  6. INSERT INTO student VALUES(906,'王六', '男',1988,'计算机系', '湖南省衡阳市');
  7. INSERT INTO score VALUES(NULL,901,'计算机',98);
  8. INSERT INTO score VALUES(NULL,901,'英语',80);
  9. INSERT INTO score VALUES(NULL,902,'计算机',65);
  10. INSERT INTO score VALUES(NULL,902,'中文',88);
  11. INSERT INTO score VALUES(NULL,903,'中文',95);
  12. INSERT INTO score VALUES(NULL,904,'计算机',70);
  13. INSERT INTO score VALUES(NULL,904,'英语',92);
  14. INSERT INTO score VALUES(NULL,905,'英语',94);
  15. INSERT INTO score VALUES(NULL,906,'计算机',90);
  16. INSERT INTO score VALUES(NULL,906,'英语',85);
复制代码
 3.查询student表的所有记录

  1. SELECT * FROM student;
复制代码


4.查询student表的第2条到第4条记录

留意:第一条记录的索引为0,以是第2条到第4条记录索引区间为1到3。
  1. SELECT * FROM student LIMIT 1,3;
复制代码


5.从student表查询所有门生的学号id、姓名name和院系department的信息

  1. SELECT id,name,department FROM student;
复制代码


6.从student表中查询计算机系和英语系的门生信息

  1. SELECT * FROM student WHERE department IN ('计算机系', '英语系')
复制代码

7.从student表中查询年龄18~22岁的门生信息

说明:2013-birth(2013减出生年份)表现计算每位门生在2013年时的年龄。
写法一:
  1. SELECT id,name,sex,2013-birth AS age,department,address FROM student WHERE 2013-birth BETWEEN 18 AND 22;
复制代码
写法二:
  1. SLECT id,name,sex,2013-birth AS sge,department,address FROM student WHERE 2013-birth>=18 AND 2013-birth<=22;
复制代码

8.从student表中查询每个院系有多少人

  1. SELECT department,COUNT(id) FROM student GROUP BY department;
复制代码

9.从score表中查询每个科目的最高分

  1. SELECT c_name,MAX(grade) FROM score GROUP BY c_name;
复制代码
说明:这里是函数MAX()和关键字GROUP BY 的并用。

10.查询李四的测验科目c_name和测验成绩grade

  1. SELECT c_name,grade FROM score WHERE stu_id=(SELECT id FROM student WHERE name='李四');
复制代码
说明:该语句的逻辑是

  • 子查询 (SELECT id FROM student WHERE name = '李四'):首先从student表中找出名为“李四”的门生的学号(id)。
  • 外层查询:利用子查询得到的门生学号,从score表中查询对应的测验科目(c_name)和成绩(grade)。

11.用连接的方式查询所有门生的信息和测验信息

  1. SELECT student.id,name,sex,birth,department,address,c_name,grade
  2. FROM student,score WHERE student.id=score.stu_id;
复制代码

12.计算每个门生的总成绩

  1. SELECT student.id,name,SUM(grade) FROM student,score
  2. WHERE student.id=score.stu_id GROUP BY id;
复制代码

13.计算每个测验科目的平均成绩

  1. SELECT c_name,AVG(grade) FROM score GROUP BY c_name;
复制代码

14.查询计算机成绩低于95的门生信息

  1. SELECT * FROM student WHERE id IN
  2. (SELECT stu_id FROM score WHERE c_name='计算机' and grade<95)
复制代码

15.查询同时参加计算机和英语测验的门生的信息


16.将计算机测验成绩按从高到低进行排序


17.从student表和score表中查询出门生的学号,然后合并查询结果


18.查询姓张或者姓王的同学的姓名、院系和测验科目及成绩


19.查询都是湖南的门生的姓名、年龄、院系和测验科目及成绩











免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表