Mysql语言之数据定义语言

数据定义语言:

库和表的管理:

  1. 库的管理
    1. 创建
    2. 删除
    3. 修改
  2. 表的管理
    1. 创建
    2. 删除
    3. 修改

创建:create

修改:alter

删除:drop

一、 库的管理:

# 库的管理
# 1. 库的创建
# 语法: create database [if not exists] 库名
# 例:创建库books
create database if not exists books;

# 2. 库的修改

# 更改库的字符集
alter database books character set 要更改成的字符集;

# 3. 库的删除
drop database if exists books;

二、 表的管理:

# 表的管理

# 1. 表的创建
/*
语法:
create table 表名(
	列名 列的类型[(长度) 约束]
	列名 列的类型[(长度) 约束]
	列名 列的类型[(长度) 约束]
	...
	列名 列的类型[(长度) 约束]
);
*/
# 例:创建表book
create table book(
	id int,# 编号
	bName varchar(20),# 书名
	price double,# 价格
	authorId int, # 作者
	publishdate datetime # 出版日期

);

create table author(
	id int,
	au_name varchar(20),
	nation varchar(10)
);

# 2. 表的修改
# alter table 表名 add|drop|modify|change column 列名 [列类型 约束];

# 修改列名
alter table book change [column] publishdate pudDate datetime;

# 修改列的类型或约束
alter table book modify column pubdate timestamp;

# 添加列
alter table author add column annual double;

# 删除列
alter table author drop column annual;

# 修改表名
alter table author rename to book_author;


# 3. 表的删除
drop table book_author;

# 通用的写法:
drop database if exists 旧库名;
create database 新库名;
drop table if exists 旧表名;
create table 表名();


# 4. 表的复制

# 1. 复制表的结构
create table copy like author;
# 2. 复制表的结构+数据
create table copy2
select * from author;
# 3. 只复制部分数据
create table copy3
select id , au_name
from author 
where nathon=‘中国‘;
# 4. 仅仅复制某些字段
create table copy4
select id,au_name
from author
where 0;

常见约束:

含义:一种限制,用于限制表中的数据,为了保证表中数据的准确和可靠性

分类:六大约束

  1. not null : 非空,保证该字段的值不能为空

    比如:姓名,学号等

  2. default : 默认,用于保证该字段有默认值

    比如: 性别

  3. primary key : 主键,用于保证该字段的值具有唯一性,并且非空

    比如:学号,员工编号等

  4. unique ;唯一,用于保证该字段的值具有唯一性,可以为空

    比如:座位号

  5. check : 检查约束 [ mysql中不支持 ]

    比如:年龄、性别

  6. foreign key : 外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值,再从表添加外键约束,用于引用主表中某列的值

    比如:学生表的专业编号,员工表的部门编号,员工标的工种编号

添加约束的时机:

  1. 创建表时
  2. 修改表时

约束的添加分类

  1. 列级约束

    六大约束语法上都支持,但外键约束没有效果

  2. 表级约束

    除了非空、默认、其他的都支持

# 一、创建表时添加约束
# 1. 添加列级约束
use students
create table stuinfo(
	id int primary key, # 主键
	stuName varchar(20) not null,#非空
	gender char(1) check(gender = ‘男‘ or gender = ‘女‘),# 检查
	seat int unique , # 唯一
	age int default 18 ,# 默认约束
	majorId int foreign key references major(id) # 外键
);
 

create table major(
	id int primary key,
	majorName varchar(20)
);

8.115.20

Mysql语言之数据定义语言

上一篇:maven项目连接数据库产生错误


下一篇:MyISAM与InnoDB 的区别