SQL笔记(以MySQL为例)

以下面这个数据库为例
这里写图片描述
图片来源
http://www.icourse163.org/learn/RUC-488001#/learn/content?type=detail&id=1003140480&sm=1

创建数据库

创建一个名为student_course的数据库:

CREATE database student_course;
/*MySQL中的数据库名称中不能有“-”,所以我们把数据库的名称命名为student_course*/

创建基本表

建立一个“学生”表Student:

CREATE TABLE Student (
Sno CHAR ( 9 ) PRIMARY KEY,/*列级完整性约束条件,Sno是主码*/
Sname CHAR ( 20 ) UNIQUE,/*Sname取唯一值*/
Ssex CHAR ( 2 ) NOT NULL,/*列级完整性约束条件,Ssex不能取空值*/
Sage SMALLINT,
Sdept CHAR ( 20 ) 
);

建立一个“课程表”Course:

CREATE TABLE Course (
Cno CHAR ( 4 ) PRIMARY KEY,/*列级完整性约束条件,Cno是主码*/
Cname CHAR ( 40 ) NOT NULL,/*列级完整性约束条件,Ssex不能取空值*/
Cpno CHAR ( 40 ),/*Cpno的含义是先修课*/
Ccredit SMALLINT,
FOREIGN KEY ( Cpno ) REFERENCES Course ( Cno )
/*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno*/
);
/*参照表和被参照表可以是同一个表*/

建立学生选课表SC:

CREATE TABLE SC (
Sno CHAR ( 9 ),
Cno CHAR ( 4 ),
Grade SMALLINT,
PRIMARY KEY ( Sno, Cno ),/*主码由两个属性构成,必须作为表级完整性进行定义*/
FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ),/*表级完整性约束条件,Sno是外码,被参照表是Student*/
FOREIGN KEY ( Cno ) REFERENCES Course ( Cno )/*表级完整性约束条件,Cno是外码,被参照表是Course*/
);

修改基本表

修改字段名

ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型;
将Student表中的字段Sage改名为age,类型为SMALLINT:

ALTER TABLE Student CHANGE Sage age SMALLINT;

修改字段类型

ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;
将年龄的数据类型改为INT:

ALTER TABLE Student MODIFY COLUMN Sage INT;

增加字段

ALTER TABLE Student ADD 字段名 数据类型;
向Student表增加“入学时间”列,其数据类型为字符型,长度为8:

ALTER TABLE Student ADD Sentrance CHAR ( 8 );

增加字段的约束条件

ALTER TABLE 表名 ADD 约束名(字段名);
增加课程名称必须取唯一值的约束条件:

ALTER TABLE Course ADD UNIQUE ( Cname );

索引

建立索引

CREATE UNIQUE INDEX 索引名 ON 表名(列名 次序,列名 次序…)
在Student表中按学号升序建唯一索引:

CREATE UNIQUE INDEX Stuno ON Student ( Sno  ASC);

删除索引

DROP INDEX 索引名 ON 表名;
删除Student表中的Stuno索引:

DROP INDEX Stuno ON Student;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值