MySQL数据库小实验

实验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 +--------+-------+

答案

时间: 2024-10-24 15:06:10

MySQL数据库小实验的相关文章

带你了解MySQL数据库小技巧

兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率.当然学习MySQL 5.6也不例外.本文列举37 个 MySQL 数据库小技巧,快来学习吧! 37 个 MySQL 数据库小技巧! 1.如何快速掌握MySQL? 培养兴趣 兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率.当然学习MySQL 5.6也不例外. 夯实基础 计算机领域的技术非常强调基础,刚开始学习可能还认识不到这一点,随着技术应用的深 入,只有有着扎实的基础功底,才能在技术的道路上走得更快.更远.对于M

python操作mysql数据库小程序,用户登陆验证

已经建立一个mysql数据库school,里面包含一个表userinfo,表里有3个字段,分别为user_id,username,passwd,即序号(自增字段),用户名,密码. 已经该数据库中存放了若干用户的帐户信息,现在要求用python编写一段小程序,实现由用户输入自己的用户名和密码,完成登陆验证,输入正确的帐号, 显示"welcome",非正确的帐号,显示"failed log in" import pymysql conn = pymysql.connec

MySQL数据库----------小知识点

MySQL数据库 常用数据类型: int                整数型            4个字节 Varchar           字符串型                          1个字是两个字符 bit                    bool型 datetime           日期时间型                      长度(字节):8 decimal             小数型 float   double      小数型 注: va

mysql触发器小实验

今天实验了一下mysql的触发器 mysql> use test; Database changed mysql> desc time; +-------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------------+------+-----+---------+-------+ | id |

flask 链接mysql数据库 小坑

#config.py MYSQL_NAME = 'root' MYSQL_PASSWORD = 'zyms90bdcs' MYSQL_HOST = 'xxxx' MYSQL_POST = '3306' MYSQL_DBNAME = 'flask_sql' MYSQL_CHARSET = 'utf8' # SQLALCHEMY_DATABASE_URI = 'mysql://{}:{}@{}:{}/{}?charset={}'.format(MYSQL_NAME,MYSQL_PASSWORD, #

配置mysql数据库的主从同步实验

mysql数据库的主从同步实验 一. 实验环境部署 主服务器(mysql  master) IP: 192.168.8.241  端口3306 从服务器(mysql  slave)  IP: 192.168.8.242  端口3306 虚拟机配置:内存2G,硬盘28G,2块网卡(1块网卡也可以),注意复制虚拟机 时候选择生成不同的MAC地址,虚拟机生成之后,网卡的的名称会变为eth2.eth3,修改/etc/udev/rules.d/70-persistent-net.rules文件,将无效的M

PHP链接Mysql数据库的小知识

1:在PHP写隔行变色有三种写法(但是最好的是用js+css) (1)CSS: tr:nth-child(even){             background: #cad9ea;         } even:代表偶数: ood:代表奇数:   (2)PHP: <?php                 if($n %2 == 0){            ?>            <tr style="background: #cad9ea"> <

mysql数据库与web主机分离实验

真正企业中的网站,为保证数据的安全,数据库是与网站主机分离的,今天用这个实验研究下这个效果是如何实现的. 先上拓扑图: 配置过程: 一.WEB端: 安装Apache: tar -vxf httpd-2.2.27.tar.gz cd httpd-2.2.27 ./configure --prefix=/usr/local/apache2 make && make install 2. 安装PHP: tar vxf php-5.3.29.tar.bz2 cd php-5.3.29 ./conf

MYSQL 数据库的主从同步实验

最近在学Linux 的应用技术 今天在虚拟机上尝试了MYSQL 数据库主从同步的实验,虽然事先百度了,看了别人的教程,但是自己在做的过程中还是出现了几个问题,在此记录下来,给需要的朋友借鉴一下,以后自己忘记了也可以回头看看. 两个虚拟机分别是: Red Hat Enterprise Linux Server release 6.3 (Santiago) 192.168.1.251 Red Hat Enterprise Linux Server release 5.6 (Tikanga) 192.