MYSQL第四次作业

创建表
mysql> create database mydb15_indexstu;
Query OK, 1 row affected (0.05 sec)mysql> use mydb15_indexstu;
Database changed
mysql> create table student(-> Sno int primary key auto_increment,-> Sname varchar(30) not null unique,-> Ssex varchar(2) check (Ssex='男' or Ssex='女') not null,-> Sage int not null,-> Sdept varchar(10) default '计算机' not null );
Query OK, 0 rows affected (0.08 sec)mysql> create table course( Cno int primary key not null, Cname varchar(20) not null);
Query OK, 0 rows affected (0.04 sec)mysql> create table sc(Sno int not null,-> Cno varchar(10) primary key not null ,-> Score int not null );
Query OK, 0 rows affected (0.04 sec)1、修改student 表中年龄(sage)字段属性,数据类型由int 改变为smallint
mysql> desc student;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Sno | int | NO | PRI | NULL | auto_increment |
| Sname | varchar(30) | NO | UNI | NULL | |
| Ssex | varchar(2) | NO | | NULL | |
| Sage | int | NO | | NULL | |
| Sdept | varchar(10) | NO | | 计算机 | |
+-------+-------------+------+-----+---------+----------------+
5 rows in set (0.03 sec)mysql> alter table student modify Sage smallint;
Query OK, 0 rows affected (0.12 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> desc student;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Sno | int | NO | PRI | NULL | auto_increment |
| Sname | varchar(30) | NO | UNI | NULL | |
| Ssex | varchar(2) | NO | | NULL | |
| Sage | smallint | YES | | NULL | |
| Sdept | varchar(10) | NO | | 计算机 | |
+-------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)2、为Course表中Cno 课程号字段设置索引,并查看索引
mysql> create index index_cno on course(Cno);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> show index from course\G
*************************** 1. row ***************************Table: courseNon_unique: 0Key_name: PRIMARYSeq_in_index: 1Column_name: CnoCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull:Index_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
*************************** 2. row ***************************Table: courseNon_unique: 1Key_name: index_cnoSeq_in_index: 1Column_name: CnoCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull:Index_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
2 rows in set (0.02 sec)3、为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX
mysql> create unique index SC_INDEX ON sc(Sno,Cno asc);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> show index from sc\G
*************************** 1. row ***************************Table: scNon_unique: 0Key_name: PRIMARYSeq_in_index: 1Column_name: CnoCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull:Index_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
*************************** 2. row ***************************Table: scNon_unique: 0Key_name: SC_INDEXSeq_in_index: 1Column_name: SnoCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull:Index_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
*************************** 3. row ***************************Table: scNon_unique: 0Key_name: SC_INDEXSeq_in_index: 2Column_name: CnoCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull:Index_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
3 rows in set (0.02 sec)4、创建一视图 stu info,查询全体学生的姓名,性别,课程名,成绩
首先要先将三张表连到一起再进行视图创建
mysql> create or replace view stu_info as select Sname,Ssex,Cname,Score from student join sc on student.Sno=sc.Sno join course on sc.Cno=course.Cno;
Query OK, 0 rows affected (0.02 sec)mysql> show tables;
+---------------------------+
| Tables_in_mydb15_indexstu |
+---------------------------+
| course |
| sc |
| stu_info |
| student |
+---------------------------+
4 rows in set (0.01 sec)5、删除所有索引
mysql> drop index index_cno on course;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> drop index SC_INDEX on sc;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0