使用SQL语句对表的操作

学生表:Student (Sno, Sname, Ssex , Sage, Sdept)

学号,姓名,性别,年龄,所在系 Sno为主键

课程表:Course (Cno, Cname)

课程号,课程名 Cno为主键

学生选课表:SC (Sno, Cno, Score)

学号,课程号,成绩 Sno,Cno为主键

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

mysql8.0 [chap03]>create table stydent(
    -> son int primary key,
    -> sname char(30) unique,
    -> ssex char(1) check (ssex in ('F','M')),
    -> sage int,
    -> sdept char(20) default 'IT'
    -> );
Query OK, 0 rows affected (0.03 sec)
mysql8.0 [chap03]>desc student;
使用SQL语句对表的操作_第1张图片
  1. 修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。

mysql8.0 [chap03]>alter table student modify sage smallint;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
使用SQL语句对表的操作_第2张图片
  1. 为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。

mysql8.0 [chap03]>create index sc_index on sc (sno asc,cno asc);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql8.0 [chap03]>show index from sc;
使用SQL语句对表的操作_第3张图片
  1. 创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

mysql8.0 [chap03]>insert into student values (1,'xiaoming','M',18,'english'),(2,'xiaohong','F',19,'chinese'),(3,'xiaolan','F',17,'IT');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql8.0 [chap03]>select * from student;
使用SQL语句对表的操作_第4张图片
mysql8.0 [chap03]>insert into course values (1,'music'),(2,'history'),(3,'PE');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql8.0 [chap03]>select * from course;
使用SQL语句对表的操作_第5张图片
mysql8.0 [chap03]>insert into sc values (1,2,80),(1,3,15),(2,1,10),(2,2,59);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0
mysql8.0 [chap03]>create view stu_info as select st.sname,st.ssex,co.cname,sc.sc
ore from student st,course co,sc where st.son=sc.sno and co.cno=sc.cno;
Query OK, 0 rows affected (0.01 sec)

mysql8.0 [chap03]>select * from stu_info;
使用SQL语句对表的操作_第6张图片

你可能感兴趣的:(数据库,mysql,Linux)