DDL语言
DDL(Data Definition Language),数据定义语言,用来定义数据库对象(数据库,表,字段)关于数据库操作
1.创建数据库
语法:
create database 数据库名;
注意:数据库名需要满足命名规则
2.删除数据库
语法:
drop database 数据库名;
3.查询所有库
语法:
show databases;
4.切换数据库
语法:
use 数据库名;
关于表操作
1.创建表
语法:
create table 表名( 列名 数据类型, 列名 数据类型, ................. 列名 数据类型 );
注意一点:最后一列不需要逗号
MySQL常见的数据类型有哪些?
①varcahr(长度):表示可变的字符串,长度表示最多可以输入的内容个数。长度为0~65535
②char(长度):表示把不可变的字符串,长度是固定的,适合于固定长度的内容。长度为0~255
③text():文本字符串
④int:表示整数
⑤double:表示小数
⑥decimal(a,b):表示小数,a表示总长度包括整数位和小数位,b表示小数位
⑦date:表示日期类型
⑧datetime:表示日期时间类型
2.查看当前数据库有哪些表
语法:
show tables;
3.删除表
语法:
drop table 表名;
4.修改表结构
语法:
-- 删除表结构总指定的列 alter table 表名 drop column 列名; -- 添加指定的列 alter table 表名 add column 列名 数据类型; -- 修改列名 alter table 表名 change column 列名 新名 数据类型; -- 修改列的数据类型 alter table 表名 modify column 列名 新数据类型;
设计表的约束
约束代表列必须满足这个约束,才能添加数据
分类:
约束的添加有两种方式:
(1)在创建表时对列名添加对应的约束:
create table emp( id int primary key, -- 主键约束(值不能为空且值唯一) name varchar(4) unique, -- 唯一约束(值唯一不重复) birthday date not null , -- 非空约束(限制该字段的数据不能为null) age int check(age>0), -- 检查约束(值必须满足条件) gender char(2) default '男' -- 默认约束(未指定该字段的值,则采用默认值) )
(2)表结构构建好后添加约束
-- 添加唯一约束 alter table 表名 add constraint 约束名 unique(列名); -- 检查约束 alter table 表名 add constraint 约束名 check(列名); -- 非空约束 alter table 表名 modify 列名 数据类型 not null; -- 主键约束 alter table 表名 add constraint 约束名 primary key(列名);
外键约束
外键约束是让两张表的数据之间建立连接,保证数据的完整性
建立外键约束前需要理解表与表之间的关系:
(1)一对一的关系:
表示一张表A的一条记录只能对应另一张表B中的一条记录,而另外一张表B的记录也只能对应着表A中的一条记录。
比如:学生表和身份证
人类表 id name 1 张三 2 李四 身份证表 id 身份证号码 1 card1 2 card2
这里的一个人只能有一张身份证卡,而一张身份证卡只能对应一个人。
(2)一对多的关系:
表示一张表A的一条记录可以对应着另一张表B的多条数据,而另一张表B的记录只能对应表A中的一条记录。
比如:班级表和学生表
班级表 id class 1 一班 2 二班 学生表 id classno 1 一班 2 一班 3 二班 4 一班
这里的一个学生只能有一个班级,但是一个班级可以包含多个学生。
(3)多对多的关系
表示一张表A中的记录对应着另一张表B的多条记录,另一张表B中的记录也可以对应表A中的多条记录。
比如:学生表与老师表
学生表 id name teacherName 1 张三 李老师 2 李四 王老师 3 张三 崔老师 4 王五 王老师 班主任表 id name studentName 1 李老师 张三 2 王老师 王五 3 王老师 李四 4 崔老师 张三
这里一个学生表中的可以存在一个学生有多个老师记录,而老师表中一个老师可以有多个学生记录。
而多对多关系需要转成1对多的关系,只需要一张中间表来存放学生表里面的主键和老师表的主键,此时学生表与中间表之间形成一对多的关系,而老师表与中间表也形成一对多的关系。
外键的设置一般用于一对多的场景,多的一方增加一个外键列。
创建外键的语法:
alter table 表名 add contraint 约束名 foreign key (列名) references 参考的表名(列)
举个例子:
-- 老师表 create table if not exists class_teacher( class_teacher_id int primary key comment '老师号', teacher_name varchar(20) not null comment '姓名' )comment '班主任'; -- 班级表 create table if not exists class( class_no int primary key comment '班级号', type varchar(20) not null unique comment '类型', class_teacher_no int not null comment '班主任号' )comment '班级表'; 老师与班级表是一对多的关系,所以在班级表中设立外键列(class_teacher_no) 代码: alter table class add constraint fk_class_class_Teacher foreign key(class_teacher_no) references class_teacher(class_teacher_id);
标签:--,数据库,基础知识,表名,table,约束,class,列名 From: https://www.cnblogs.com/gzyhrc/p/17861579.html