码迷,mamicode.com
首页 > 数据库 > 详细

MySQL数据库小实验

时间:2016-08-19 00:41:40      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:

实验1

1、创建数据表

技术分享
1 CREATE TABLE guest(
2     Accounts  VARCHAR(20)  NOT  NULL,
3     Details  VARCHAR(20)  NOT  NULL,
4     Date  VARCHAR(20)  NOT  NULL,
5     Money  DECIMAL(8,2),
6     Class  SMALLINT  UNSIGNED
7     );
创建数据表

2、向数据表中插入数据

技术分享
 1 INSERT  guest  VALUES("S001","房费","2010-01-01",280,001);
 2 INSERT  guest  VALUES("S001","酒水","2010-01-02",120,001);
 3 
 4 INSERT  guest  VALUES("S001","酒水","2010-01-08",300,003);
 5 
 6 INSERT  guest(Accounts,Details,Date,Money)  VALUES("S002","酒水","2010-01-29",50);
 7 
 8 INSERT  guest  VALUES("S004","房费","2010-02-01",230,001);
 9 
10 INSERT  guest(Accounts,Details,Date,Money)  VALUES("S005","酒水","2010-02-01",100);
11 
12 INSERT  guest  VALUES("S005","房费","2010-02-02",128,001);
向数据表中插入数据

那么问题来了,

①查出房费大于200的账号?

②将消费不是房费的班次都改为001

③查询出房费都大于100的账号(查询结果不能重复)

④查出1月份每个账号酒水和房费总金额

3、答案在这

技术分享
 1 查出房费大于200的账号?
 2 
 3 SELECT Accounts,Details,Money FROM guest WHERE Details="房费" and Money>200;
 4 
 5 将消费不是房费的班次都改为001
 6 
 7 UPDATE guest SET Class=001 WHERE Details!="房费";
 8 
 9 查询出房费都大于100的账号(查询结果不能重复)
10 
11 SELECT Accounts,Details,Money FROM guest WHERE Details="房费" GROUP BY 1 HAVING Money>100;
12 
13 查出一月份每个账号酒水和房费总金额
14 
15 SELECT Accounts,SUM(Money) FROM guest WHERE Date<2010-02-01 and Accounts=S001 GROUP BY 1;
答案

 实验2

技术分享

①创建两张表

②为两张表插入数据记录

③查询sutdent表的所有记录

④查询sutdent表的第2条到第4条记录

⑤从sutdent表查询所有学生的学号(id)、姓名(name)、和院系(department)的信息

⑥从sutdent表中查询计算机系和英语系的学生的信息

⑦从sutdent表中查询年龄在18-22岁的学生信息

⑧从sutdent表中查询每个院系有多少人

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

⑩查询李四的考试科目(c_name)和考试成绩(grade)

-------------------------参考答案---------------------

技术分享
  1 1.创建student和score表
  2 CREATE  TABLE  student (
  3 id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY  ,
  4 name  VARCHAR(20)  NOT NULL ,
  5 sex  VARCHAR(4)  ,
  6 birth  YEAR,
  7 department  VARCHAR(20) ,
  8 address  VARCHAR(50) 
  9 );
 10 创建score表。SQL代码如下:
 11 CREATE  TABLE  score (
 12 id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY  AUTO_INCREMENT ,
 13 stu_id  INT(10)  NOT NULL ,
 14 c_name  VARCHAR(20) ,
 15 grade  INT(10)
 16 );
 17 2.为student表和score表增加记录
 18 向student表插入记录的INSERT语句如下:
 19 INSERT INTO student VALUES( 901,张老大, ,1985,计算机系, 北京市海淀区);
 20 INSERT INTO student VALUES( 902,张老二, ,1986,中文系, 北京市昌平区);
 21 INSERT INTO student VALUES( 903,张三, ,1990,中文系, 湖南省永州市);
 22 INSERT INTO student VALUES( 904,李四, ,1990,英语系, 辽宁省阜新市);
 23 INSERT INTO student VALUES( 905,王五, ,1991,英语系, 福建省厦门市);
 24 INSERT INTO student VALUES( 906,王六, ,1988,计算机系, 湖南省衡阳市);
 25 向score表插入记录的INSERT语句如下:
 26 INSERT INTO score VALUES(NULL,901, 计算机,98);
 27 INSERT INTO score VALUES(NULL,901, 英语, 80);
 28 INSERT INTO score VALUES(NULL,902, 计算机,65);
 29 INSERT INTO score VALUES(NULL,902, 中文,88);
 30 INSERT INTO score VALUES(NULL,903, 中文,95);
 31 INSERT INTO score VALUES(NULL,904, 计算机,70);
 32 INSERT INTO score VALUES(NULL,904, 英语,92);
 33 INSERT INTO score VALUES(NULL,905, 英语,94);
 34 INSERT INTO score VALUES(NULL,906, 计算机,90);
 35 INSERT INTO score VALUES(NULL,906, 英语,85);
 36  
 37 3.查询student表的所有记录
 38 mysql> SELECT * FROM student;
 39 +-----+--------+------+-------+------------+--------------+
 40 | id  | name   | sex  | birth | department | address      |
 41 +-----+--------+------+-------+------------+--------------+
 42 | 901 | 张老大 ||  1985 | 计算机系   | 北京市海淀区 |
 43 | 902 | 张老二 ||  1986 | 中文系     | 北京市昌平区 |
 44 | 903 | 张三   ||  1990 | 中文系     | 湖南省永州市 |
 45 | 904 | 李四   ||  1990 | 英语系     | 辽宁省阜新市 |
 46 | 905 | 王五   ||  1991 | 英语系     | 福建省厦门市 |
 47 | 906 | 王六   ||  1988 | 计算机系   | 湖南省衡阳市 |
 48 +-----+--------+------+-------+------------+--------------+
 49  
 50 4.查询student表的第2条到4条记录
 51 mysql> SELECT * FROM student LIMIT 1,3;
 52 +-----+--------+------+-------+------------+--------------+
 53 | id  | name   | sex  | birth | department | address      |
 54 +-----+--------+------+-------+------------+--------------+
 55 | 902 | 张老二 ||  1986 | 中文系     | 北京市昌平区 |
 56 | 903 | 张三   ||  1990 | 中文系     | 湖南省永州市 |
 57 | 904 | 李四   ||  1990 | 英语系     | 辽宁省阜新市 |
 58 +-----+--------+------+-------+------------+--------------+
 59  
 60 5.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息
 61 mysql> SELECT id,name,department FROM student;
 62 +-----+--------+------------+
 63 | id  | name   | department |
 64 +-----+--------+------------+
 65 | 901 | 张老大 | 计算机系   |
 66 | 902 | 张老二 | 中文系     |
 67 | 903 | 张三   | 中文系     |
 68 | 904 | 李四   | 英语系     |
 69 | 905 | 王五   | 英语系     |
 70 | 906 | 王六   | 计算机系   |
 71 +-----+--------+------------+
 72  
 73 6.从student表中查询计算机系和英语系的学生的信息
 74 mysql> SELECT * FROM student WHERE department IN (计算机系,英语系);
 75 +-----+--------+------+-------+------------+--------------+
 76 | id  | name   | sex  | birth | department | address      |
 77 +-----+--------+------+-------+------------+--------------+
 78 | 901 | 张老大 ||  1985 | 计算机系   | 北京市海淀区 |
 79 | 904 | 李四   ||  1990 | 英语系     | 辽宁省阜新市 |
 80 | 905 | 王五   ||  1991 | 英语系     | 福建省厦门市 |
 81 | 906 | 王六   ||  1988 | 计算机系   | 湖南省衡阳市 |
 82 +-----+--------+------+-------+------------+--------------+
 83  
 84 7.从student表中查询年龄18~22岁的学生信息
 85 mysql> SELECT id,name,sex,2013-birth AS age,department,address
 86     -> FROM student
 87     -> WHERE 2013-birth BETWEEN  18 AND 22;
 88 +-----+------+------+------+------------+--------------+
 89 | id  | name | sex  | age  | department | address      |
 90 +-----+------+------+------+------------+--------------+
 91 | 905 | 王五 ||   22 | 英语系     | 福建省厦门市 |
 92 +-----+------+------+------+------------+--------------+
 93 mysql> SELECT id,name,sex,2013-birth AS age,department,address
 94     -> FROM student
 95     -> WHERE 2013-birth>=18 AND 2013-birth<=22;
 96 +-----+------+------+------+------------+--------------+
 97 | id  | name | sex  | age  | department | address      |
 98 +-----+------+------+------+------------+--------------+
 99 | 905 | 王五 ||   22 | 英语系     | 福建省厦门市 |
100 +-----+------+------+------+------------+--------------+
101  
102 8.从student表中查询每个院系有多少人 
103 mysql> SELECT department, COUNT(id) FROM student GROUP BY department;
104 +------------+-----------+
105 | department | COUNT(id) |
106 +------------+-----------+
107 | 计算机系   |         2 |
108 | 英语系     |         2 |
109 | 中文系     |         2 |
110 +------------+-----------+
111 9.从score表中查询每个科目的最高分
112 mysql> SELECT c_name,MAX(grade) FROM score GROUP BY c_name;
113 +--------+------------+
114 | c_name | MAX(grade) |
115 +--------+------------+
116 | 计算机 |         98 |
117 | 英语   |         94 |
118 | 中文   |         95 |
119 +--------+------------+
120  
121 10.查询李四的考试科目(c_name)和考试成绩(grade)
122 mysql> SELECT c_name, grade
123     ->      FROM score WHERE stu_id=
124     ->  (SELECT id FROM student
125     ->    WHERE name= 李四 );
126 +--------+-------+
127 | c_name | grade |
128 +--------+-------+
129 | 计算机 |    70 |
130 | 英语   |    92 |
131 +--------+-------+
答案

 

MySQL数据库小实验

标签:

原文地址:http://www.cnblogs.com/zhangjianghua/p/5785551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!