MySQL02 DDL详解

        我们通常可以将 SQL 分为四类,分别是 DDL (数据定义语⾔)、 DML (数据操作语⾔)、 DQL (数据查询语⾔)和 DCL (数据控制语⾔)。 DDL 主要⽤于创建、删除、修改数据库中的对象⽐如创建、删除和修改⼆维表,核⼼的关键字包括 create drop alter DML 主要负责数据的插⼊、删除和更新,关键词包括insert 、 delete update DQL 负责数据查询,最重要的⼀个关键词是 select DCL 通常⽤于授予和召回权限,核⼼关键词是 grant revoke
说明 SQL 是不区分⼤⼩写的语⾔,有⼈会建议将关键字⼤写,其他部分⼩写。为了书写和识别⽅便,下⾯的 SQL 我都是使⽤⼩写字⺟进⾏书写的。 如果公司的 SQL 编程规范有强制规定,那么就按照公司的要求来,个⼈的喜好不应该凌驾于公司的编程规范之上,这⼀点对职业⼈来说应该是常识。

 建库建表

        下⾯我们来实现⼀个⾮常简单的学校选课系统的数据库。我们将数据库命名为 school ,四个关键的实体分别是学院、⽼师、学⽣和课程,其中,学⽣跟学院是从属关系,这个关系从数量上来讲是多对⼀关系,因为⼀个学院可以有多名学⽣,⽽⼀个学⽣通常只属于⼀个学院;同理,⽼师跟学院的从属关系也是多对⼀关系。⼀名⽼师可以讲授多⻔课程,⼀⻔课程如果只有⼀个授课⽼师的话,那么课程跟⽼师也是多对⼀关系;如果允许多个⽼师合作讲授⼀⻔课程,那么课程和⽼师就多对多关系。简单起⻅,我们将课程和⽼师设计为多对⼀关系。学⽣和课程是典型的多对多关系,为⼀个学⽣可以选择多⻔课程,⼀⻔课程也可以被多个学⽣选择,⽽关系型数据库需要借助中间表才能维持维持两个实体的多对多关系。最终,我们的学校选课系统⼀共有五张表,分别是学院表( tb_college )、学⽣表( tb_student )、教师表( tb_teacher )、课程表( tb_course )和选课记录表( tb_record ),其中选课记录表就是维持学⽣跟课程多对多关系的中间表。
-- 如果存在名为 school 的数据库就删除它
drop database if exists `school` ;
-- 创建名为 school 的数据库并设置默认的字符集和排序⽅式
create database `school` default character set utf8mb4 collate utf8mb4_general_ci;
-- 切换到 school 数据库上下⽂环境
use `school` ;
-- 创建学院表
create table `tb_college`
(
`col_id` int unsigned auto_increment comment ' 编号 ' ,
`col_name` varchar ( 50 ) not null comment ' 名称 ' ,
`col_intro` varchar ( 500 ) default '' comment ' 介绍 ' ,
primary key ( `col_id` )
) engine = innodb auto_increment = 1 comment &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值