mysql视图练习

本文通过具体的SQL查询示例,展示了如何利用多个表进行复杂的数据联接操作,并进一步介绍了如何创建视图简化重复的查询过程。该示例涉及学生信息表与成绩表的联结,以及通过视图获取学生的年龄、计算机课程成绩和英语成绩。
摘要由CSDN通过智能技术生成
mysql> select * from student,score jisuanji,score yingyu where student.id=yingyu.stu_id and yingyu.stu_id=jisuanji.stu_id;
+-----+--------+------+-------+------------+--------------+----+--------+----------+-------+----+--------+----------+-------+
| id  | name   | sex  | birth | department | address      | ID | STU_ID | c_name   | grade | ID | STU_ID | c_name   | grade |
+-----+--------+------+-------+------------+--------------+----+--------+----------+-------+----+--------+----------+-------+
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  1 |    901 | 大学语文 |   100 |  1 |    901 | 大学语文 |   100 |
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  2 |    901 | 大学语文 |   100 |  1 |    901 | 大学语文 |   100 |
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  1 |    901 | 大学语文 |   100 |  2 |    901 | 大学语文 |   100 |
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  2 |    901 | 大学语文 |   100 |  2 |    901 | 大学语文 |   100 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  3 |    902 | 计算机   |    65 |  3 |    902 | 计算机   |    65 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  4 |    902 | 中文     |    88 |  3 |    902 | 计算机   |    65 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  3 |    902 | 计算机   |    65 |  4 |    902 | 中文     |    88 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  4 |    902 | 中文     |    88 |  4 |    902 | 中文     |    88 |
| 903 | 张三   | 女   |  1990 | 中文系     | 湖南省永州市 |  5 |    903 | 中文     |    95 |  5 |    903 | 中文     |    95 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  6 |    904 | 计算机   |    70 |  6 |    904 | 计算机   |    70 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  7 |    904 | 英语     |    92 |  6 |    904 | 计算机   |    70 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  6 |    904 | 计算机   |    70 |  7 |    904 | 英语     |    92 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  7 |    904 | 英语     |    92 |  7 |    904 | 英语     |    92 |
| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市 |  8 |    905 | 英语     |    94 |  8 |    905 | 英语     |    94 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |  9 |    906 | 计算机   |    90 |  9 |    906 | 计算机   |    90 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 10 |    906 | 英语     |    85 |  9 |    906 | 计算机   |    90 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |  9 |    906 | 计算机   |    90 | 10 |    906 | 英语     |    85 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 10 |    906 | 英语     |    85 | 10 |    906 | 英语     |    85 |
+-----+--------+------+-------+------------+--------------+----+--------+----------+-------+----+--------+----------+-------+
18 rows in set (0.00 sec)


mysql> select * from student,score jisuanji,score yingyu where student.id=yingyu.stu_id and yingyu.stu_id=jisuanji.stu_id and student.id=jis
uanji.stu_id;
+-----+--------+------+-------+------------+--------------+----+--------+----------+-------+----+--------+----------+-------+
| id  | name   | sex  | birth | department | address      | ID | STU_ID | c_name   | grade | ID | STU_ID | c_name   | grade |
+-----+--------+------+-------+------------+--------------+----+--------+----------+-------+----+--------+----------+-------+
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  1 |    901 | 大学语文 |   100 |  1 |    901 | 大学语文 |   100 |
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  2 |    901 | 大学语文 |   100 |  1 |    901 | 大学语文 |   100 |
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  1 |    901 | 大学语文 |   100 |  2 |    901 | 大学语文 |   100 |
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  2 |    901 | 大学语文 |   100 |  2 |    901 | 大学语文 |   100 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  3 |    902 | 计算机   |    65 |  3 |    902 | 计算机   |    65 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  4 |    902 | 中文     |    88 |  3 |    902 | 计算机   |    65 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  3 |    902 | 计算机   |    65 |  4 |    902 | 中文     |    88 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  4 |    902 | 中文     |    88 |  4 |    902 | 中文     |    88 |
| 903 | 张三   | 女   |  1990 | 中文系     | 湖南省永州市 |  5 |    903 | 中文     |    95 |  5 |    903 | 中文     |    95 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  6 |    904 | 计算机   |    70 |  6 |    904 | 计算机   |    70 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  7 |    904 | 英语     |    92 |  6 |    904 | 计算机   |    70 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  6 |    904 | 计算机   |    70 |  7 |    904 | 英语     |    92 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  7 |    904 | 英语     |    92 |  7 |    904 | 英语     |    92 |
| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市 |  8 |    905 | 英语     |    94 |  8 |    905 | 英语     |    94 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |  9 |    906 | 计算机   |    90 |  9 |    906 | 计算机   |    90 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 10 |    906 | 英语     |    85 |  9 |    906 | 计算机   |    90 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |  9 |    906 | 计算机   |    90 | 10 |    906 | 英语     |    85 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 10 |    906 | 英语     |    85 | 10 |    906 | 英语     |    85 |
+-----+--------+------+-------+------------+--------------+----+--------+----------+-------+----+--------+----------+-------+
18 rows in set (0.00 sec)


mysql> select * from student,score jisuanji,score yingyu where student.id=yingyu.stu_id and yingyu.stu_id=jisuanji.stu_id;
+-----+--------+------+-------+------------+--------------+----+--------+----------+-------+----+--------+----------+-------+
| id  | name   | sex  | birth | department | address      | ID | STU_ID | c_name   | grade | ID | STU_ID | c_name   | grade |
+-----+--------+------+-------+------------+--------------+----+--------+----------+-------+----+--------+----------+-------+
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  1 |    901 | 大学语文 |   100 |  1 |    901 | 大学语文 |   100 |
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  2 |    901 | 大学语文 |   100 |  1 |    901 | 大学语文 |   100 |
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  1 |    901 | 大学语文 |   100 |  2 |    901 | 大学语文 |   100 |
| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |  2 |    901 | 大学语文 |   100 |  2 |    901 | 大学语文 |   100 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  3 |    902 | 计算机   |    65 |  3 |    902 | 计算机   |    65 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  4 |    902 | 中文     |    88 |  3 |    902 | 计算机   |    65 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  3 |    902 | 计算机   |    65 |  4 |    902 | 中文     |    88 |
| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |  4 |    902 | 中文     |    88 |  4 |    902 | 中文     |    88 |
| 903 | 张三   | 女   |  1990 | 中文系     | 湖南省永州市 |  5 |    903 | 中文     |    95 |  5 |    903 | 中文     |    95 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  6 |    904 | 计算机   |    70 |  6 |    904 | 计算机   |    70 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  7 |    904 | 英语     |    92 |  6 |    904 | 计算机   |    70 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  6 |    904 | 计算机   |    70 |  7 |    904 | 英语     |    92 |
| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |  7 |    904 | 英语     |    92 |  7 |    904 | 英语     |    92 |
| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市 |  8 |    905 | 英语     |    94 |  8 |    905 | 英语     |    94 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |  9 |    906 | 计算机   |    90 |  9 |    906 | 计算机   |    90 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 10 |    906 | 英语     |    85 |  9 |    906 | 计算机   |    90 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |  9 |    906 | 计算机   |    90 | 10 |    906 | 英语     |    85 |
| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 10 |    906 | 英语     |    85 | 10 |    906 | 英语     |    85 |
+-----+--------+------+-------+------------+--------------+----+--------+----------+-------+----+--------+----------+-------+
18 rows in set (0.00 sec)




mysql> select * from student,score jisuanji,score yingyu where student.id=yingyu.stu_id and yingyu.stu_id=jisuanji.stu_id and yingyu.c_name=
'英语' and jisuanji.c_name='计算机';
+-----+------+------+-------+------------+--------------+----+--------+--------+-------+----+--------+--------+-------+
| id  | name | sex  | birth | department | address      | ID | STU_ID | c_name | grade | ID | STU_ID | c_name | grade |
+-----+------+------+-------+------------+--------------+----+--------+--------+-------+----+--------+--------+-------+
| 904 | 李四 | 男   |  1990 | 英语系     | 辽宁省阜新市 |  6 |    904 | 计算机 |    70 |  7 |    904 | 英语   |    92 |
| 906 | 王六 | 男   |  1988 | 计算机系   | 湖南省衡阳市 |  9 |    906 | 计算机 |    90 | 10 |    906 | 英语   |    85 |
+-----+------+------+-------+------------+--------------+----+--------+--------+-------+----+--------+--------+-------+
2 rows in set (0.00 sec)




mysql> select student.id 学号,name 姓名,year(now())-birth 年龄,address 地址 ,jisuanji.grade 计算机成绩,yingyu.grade 英语成绩  from student,s
core jisuanji,score yingyu where student.id=yingyu.stu_id and yingyu.stu_id=jisuanji.stu_id and yingyu.c_name='英语' and jisuanji.c_name='计
算机';
+------+------+------+--------------+------------+----------+
| 学号 | 姓名 | 年龄 | 地址         | 计算机成绩 | 英语成绩 |
+------+------+------+--------------+------------+----------+
|  904 | 李四 |   24 | 辽宁省阜新市 |         70 |       92 |
|  906 | 王六 |   26 | 湖南省衡阳市 |         90 |       85 |
+------+------+------+--------------+------------+----------+
2 rows in set (0.02 sec)


mysql> select student.id 学号,name 姓名,year(now())-birth 年龄,address 地址 ,jisuanji.grade 计算机成绩,yingyu.grade 英语成绩  from student,s
core jisuanji,score yingyu where student.id=yingyu.stu_id and yingyu.stu_id=jisuanji.stu_id and yingyu.c_name='英语' and jisuanji.c_name='计
算机';
+------+------+------+--------------+------------+----------+
| 学号 | 姓名 | 年龄 | 地址         | 计算机成绩 | 英语成绩 |
+------+------+------+--------------+------------+----------+
|  904 | 李四 |   24 | 辽宁省阜新市 |         70 |       92 |
|  906 | 王六 |   26 | 湖南省衡阳市 |         90 |       85 |
+------+------+------+--------------+------------+----------+
2 rows in set (0.00 sec)


mysql> create view vi_stu_sco
    -> as
    -> select student.id 学号,name 姓名,year(now())-birth 年龄,address 地址 ,jisuanji.grade 计算机成绩,yingyu.grade 英语成绩  from student,s
core jisuanji,score yingyu where student.id=yingyu.stu_id and yingyu.stu_id=jisuanji.stu_id and yingyu.c_name='英语' and jisuanji.c_name='计
算机';
Query OK, 0 rows affected (0.01 sec)


mysql> select * from vi_stu_sco;
+------+------+------+--------------+------------+----------+
| 学号 | 姓名 | 年龄 | 地址         | 计算机成绩 | 英语成绩 |
+------+------+------+--------------+------------+----------+
|  904 | 李四 |   24 | 辽宁省阜新市 |         70 |       92 |
|  906 | 王六 |   26 | 湖南省衡阳市 |         90 |       85 |
+------+------+------+--------------+------------+----------+
2 rows in set (0.00 sec)


mysql>www.itahz.pw
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值