MySQL第五天(索引视图)

目录

出现报错原因ERROR 1050 (42S01): Table 'student' already exists

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

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

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

ERROR:No query specified

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


当我们在使用MySQL时创建表格中

出现报错原因ERROR 1050 (42S01): Table 'student' already exists

表明:表格创建重复

我们可以使用:if not exists(如果不存在)来执行这个命令

mysql> create table if not exists student(
    -> Sno int primary key,
    -> Sname char(30) unique,
    -> Ssex char(10) check(Ssex in('M','F')),
    -> Sage int,Sdept char(30) default '计算机系'
    -> );

就可以成功创建表格

或者将表格删除重新创建

SQL语法:

drop table 表名;

或者是

drop table if exists 表名;

注意:

truncate只会清除表数据,drop不光清除表数据还要删除表结构。

学生表: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,
    -> Sname char(30) unique,
    -> Ssex char(10) check(Ssex in('M','F')),
    -> Sage int,Sdept char(30) default '计算机系'
    ->  );


2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。
mysql> alter table student modify Sage smallint;

3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。
create table Course(
Cno int primary key,
Cname char(20)
);

create table SC(
Sno int,
Cno int primary key,
Score char(10)
);

create unique index SC_INDEX on SC(Sno asc,Cno asc);

虽然成功查询除了数据,但报出如下错误的信息:

ERROR:
No query specified

\G表示Send command to mysql server, display result vertically.

\G既然表示结束SQL语句,那么:

 show create table student\G;

就相当于:

 show create table student ;;

第一个;的前面有一个查询,正常给出结果;

第二个;的前面什么都没有,Send command to mysql server后,会抛出一个ERROR提示:No query specified(没有指定查询)。

当然,这种对我们日常操作没有太大影响,不用过分担心。

但是也有解决方案。

既然\G;都代表一条SQL语句的结束,我们把;去掉即可。

4.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。
mysql> create view stu_info
    -> as
    -> select Sname,Ssex,Cname,Score from student,Course,SC
    -> where student.Sno=SC.Sno and SC.Cno=Course.Cno;

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值