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