MySQL视图索引基础练习

这篇具有很好参考价值的文章主要介绍了MySQL视图索引基础练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

表定义

学生表:Student (Sno, Sname, Ssex , Sage, Sdept)
学号,姓名,性别,年龄,所在系 Sno为主键

课程表:Course (Cno, Cname,)
课程号,课程名 Cno为主键

学生选课表:SC (Sno, Cno, Score)
学号,课程号,成绩 Sno,Cno为主键

练习

1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。

mysql> create table Student(
    -> Sno int primary key comment '学号',
    -> Sname varchar(50) unique comment '姓名',
    -> Ssex enum('男','女') comment '性别',
    -> Sage int comment '年龄',
    -> Sdept varchar(50) default '计算机' comment '所在系'
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> desc Student;
+-------+-------------------+------+-----+-----------+-------+
| Field | Type              | Null | Key | Default   | Extra |
+-------+-------------------+------+-----+-----------+-------+
| Sno   | int               | NO   | PRI | NULL      |       |
| Sname | varchar(50)       | YES  | UNI | NULL      |       |
| Ssex  | enum('男','女')    | YES  |     | NULL      |       |
| Sage  | int               | YES  |     | NULL      |       |
| Sdept | varchar(50)       | YES  |     | 计算机    |       |
+-------+-------------------+------+-----+-----------+-------+
5 rows in set (0.04 sec)

MySQL视图索引基础练习,mysql,数据库,视图,索引

2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。

mysql> alter table Student modify Sage smallint;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc Student;
+-------+-------------------+------+-----+-----------+-------+
| Field | Type              | Null | Key | Default   | Extra |
+-------+-------------------+------+-----+-----------+-------+
| Sno   | int               | NO   | PRI | NULL      |       |
| Sname | varchar(50)       | YES  | UNI | NULL      |       |
| Ssex  | enum('男','女')    | YES  |     | NULL      |       |
| Sage  | smallint          | YES  |     | NULL      |       |
| Sdept | varchar(50)       | YES  |     | 计算机    |       |
+-------+-------------------+------+-----+-----------+-------+
5 rows in set (0.00 sec)

MySQL视图索引基础练习,mysql,数据库,视图,索引

3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。

mysql> create table SC(
    -> Sno int comment '学号',
    -> Cno int comment '课程号',
	-> Score int comment '成绩',
    -> primary key SC_INDEX(Sno,Cno)
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> desc SC;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| Sno   | int  | NO   | PRI | NULL    |       |
| Cno   | int  | NO   | PRI | NULL    |       |
| Score | int  | YES  |     | NULL    |       |
+-------+------+------+-----+---------+-------+
3 rows in set (0.00 sec)

MySQL视图索引基础练习,mysql,数据库,视图,索引

4.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

(1)创建课程表:

mysql> create table Course(
    -> Con int comment '课程号',
    -> Cname varchar(50) comment '课程名'
    -> );
Query OK, 0 rows affected (0.05 sec)

mysql> desc Course;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Con   | int         | YES  |     | NULL    |       |
| Cname | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

MySQL视图索引基础练习,mysql,数据库,视图,索引

(2)给学生表、课程表、学生选课表插入数据

a.学生表(Student)
mysql> insert into Student values 
    -> (1, '张三', '男', 20, '计算机'),
    -> (2, '李四', '女', 22, '计算机'),
    -> (3, '王五', '男', 21, '数学'),
    -> (4, '赵六', '女', 23, '数学'),
    -> (5, '孙七', '男', 24, '英语');
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0\

mysql> select * from Student;
+-----+--------+------+------+-----------+
| Sno | Sname  | Ssex | Sage | Sdept     |
+-----+--------+------+------+-----------+
|   1 | 张三   ||   20  | 计算机     |
|   2 | 李四   ||   22  | 计算机     |
|   3 | 王五   ||   21  | 数学       |
|   4 | 赵六   ||   23  | 数学       |
|   5 | 孙七   ||   24  | 英语       |
+-----+--------+------+------+-----------+
5 rows in set (0.00 sec)

MySQL视图索引基础练习,mysql,数据库,视图,索引

b.课程表(Course)
mysql> insert into Course values (1, '云原生'),(1, '云原生'),(2, '高等数学'),(2, '高等数学'),(3, '英语');
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from Course;
+------+--------------+
| Con  | Cname        |
+------+--------------+
|    1 | 云原生        |
|    1 | 云原生        |
|    2 | 高等数学      |
|    2 | 高等数学      |
|    3 | 英语         |
+------+--------------+
5 rows in set (0.01 sec)

MySQL视图索引基础练习,mysql,数据库,视图,索引

c.学生选课(SC)
mysql> insert into SC values (1, 1, 90),(2, 1, 85),(3, 2, 92),(4, 2, 88),(5, 3, 95);
Query OK, 5 rows affected (0.03 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from SC;
+-----+-----+-------+
| Sno | Cno | Score |
+-----+-----+-------+
|   1 |   1 |    90 |
|   2 |   1 |    85 |
|   3 |   2 |    92 |
|   4 |   2 |    88 |
|   5 |   3 |    95 |
+-----+-----+-------+
5 rows in set (0.00 sec)

MySQL视图索引基础练习,mysql,数据库,视图,索引

(3)创建stu_info视图。

mysql> create view v_S_SC_C as 
    -> select distinct Sname 姓名,Ssex 性别,Cname 课程名,Score 成绩 from Student S 
    -> inner join SC on S.Sno = SC.Sno 
    -> inner join Course C on SC.Cno = C.Con;
Query OK, 0 rows affected (0.04 sec)

mysql> desc v_S_SC_C;
+-----------+-------------------+------+-----+---------+-------+
| Field     | Type              | Null | Key | Default | Extra |
+-----------+-------------------+------+-----+---------+-------+
| 姓名      | varchar(50)       | YES  |     | NULL    |       |
| 性别      | enum('男','女')   | YES  |     | NULL    |       |
| 课程名    | varchar(50)       | YES  |     | NULL    |       |
| 成绩      | int               | YES  |     | NULL    |       |
+-----------+-------------------+------+-----+---------+-------+
4 rows in set (0.03 sec)

mysql> select * from v_S_SC_C;
+--------+--------+--------------+--------+
| 姓名   | 性别   | 课程名       | 成绩   |
+--------+--------+--------------+--------+
| 张三   || 云原生       |     90 |
| 李四   || 云原生       |     85 |
| 王五   || 高等数学     |     92 |
| 赵六   || 高等数学     |     88 |
| 孙七   || 英语         |     95 |
+--------+--------+--------------+--------+
5 rows in set (0.00 sec)

MySQL视图索引基础练习,mysql,数据库,视图,索引文章来源地址https://www.toymoban.com/news/detail-795948.html

到了这里,关于MySQL视图索引基础练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL备份与还原、索引、视图】练习

    1、使用mysqldump命令备份数据库中的所有表 2、备份booksDB数据库中的books表 3、使用mysqldump备份booksDB和test数据库 4、使用mysqldump备份服务器中的所有数据库 5、使用mysql命令还原第二题导出的books表 先删除table 查看 6、进入数据库使用source命令还原第二题导出的books表 3、删除 g

    2024年02月16日
    浏览(41)
  • MySQL数据库——MySQL创建视图(CREATE VIEW)

    创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。 可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: 语法说明如下。 视图名 : 指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 SEL

    2024年02月02日
    浏览(59)
  • 玩转MYSQL数据库之--视图详解

    从今天开始本系列文章就带各位小伙伴学习数据库技术。 数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。 全文大约 【1297】字 ,不说废话,只讲可以让你学到技术、

    2024年02月05日
    浏览(104)
  • mysql数据库实验实训6,数据视图(详细)

    1、掌握视图功能和作用 2、掌握视图创建和管理办法 对YGGL数据库完成以下视图操作: 1、在员工管理数据库YGGL中创建视图Emp_view1,包含所有男员工的员工编号、姓名、工作年限和学历: 代码: mysql create or replace view Emp_view1 - as select 员工编号,姓名,工作年限,学历 - from employee

    2024年02月07日
    浏览(68)
  • 【MySQL数据库】看完还有谁学不会 MySQL 中的视图?

    在MySQL中,视图是一种虚拟表,它是由一个或多个基本表的行或列组成的。视图并不实际存储数据,而是根据定义的查询语句动态生成结果集。视图可以简化复杂的查询操作,提高查询效率,同时也可以保护数据的安全性,隐藏敏感数据。 视图是一种虚拟表,它是由一个或多

    2024年02月10日
    浏览(57)
  • MySQL数据库:索引

            索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。         相当于是给数据库中的数据建立了一个目录,通过目录可以知道数据所在位置,然后到指定位置

    2023年04月17日
    浏览(80)
  • 【MySql】数据库索引

    可以简单理解为一本书的目录信息,是为了提升查找效率而建立的 1、在创建一个主键、唯一键、外键时候,数据库会自动地针对查找字段设置索引; 2、在创建表时侯,使用 index 进行普通索引的声明 3、修改表结构,给指定的字段添加索引 alter table 表名 add index 索引名

    2024年02月03日
    浏览(65)
  • MySQL数据库索引机制

    MySQL是一款有客户端和服务端的网络应用,mysql是它的客户端,mysqld是它的服务端。服务端本质就是一个进程,它存在于内存当中。而我们存储在MySQL中的数据是保存在磁盘上的,当我们对MySQL中数据进行增删查改操作时,不可能是直接在磁盘上进行操作,而是将对应的数据加

    2024年02月12日
    浏览(78)
  • MySQL数据库唯一索引

    创建索引是指在某个表的一列或多列上建立一个索引,以便提高对表的访问速度。创建索引有3种方式,分别是1.创建表的时候创建索引、2.在已经存在的表上创建索引和使用3.ALTER TABLE语句来创建索引。 本文福利, 莬 费领取Qt开发学习资料包、技术视频,内容包括(C++语言基

    2024年02月08日
    浏览(67)
  • 数据库之MySQL数据操作练习

    目录 练习内容 worker表要求 创建的表的表结构 表中的数据内容 对数据的操作 1.显示所有职工的基本信息 2.查询所有职工所属部门的部门号,不显示重复的部门号 3.求出所有职工的人数 4.列出最高工和最低工资 5.列出职工的平均工资和总工资 6.创建一个只有职工号、姓名和参

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包