3-DDL(数据定义语言)

数据定义语言

一、 库和表的管理(重点必会)

创建、修改、删除命令

create、alter、drop

1-1、 创建库

create database if not exists 数据库名;

1-2、 修改库(一般不修改)

字符集修改:alter database 库名 character set 字符集;

1-3、 删除库

drop database if exists 库名;

2-1、 创建表

create table 表名(

列名 列的类型【(长度)约束】,

列名 列的类型【(长度)约束】,

)

2-2、 修改表

(1)修改列名:

alter  table 表名 change  column 旧列名  新列名 类型;

(2)修改列的类型和约束:

 alter  table 表名 mudify column 列名 新类型/约束;

(3)添加列

alter  table 表名 add column 列名  类型;

(4)删除列

alter  table 表名 drop  column  if  exists 列名;

(5)修改表名

alter  table 表名  rename  to 新表名;

2-3、删除表

drop table 表名;

2-4、显示库里所有表

show  tables;

2-5、复制表结构(可跨库)

create  table  复制的新表名  like  被复制表;

2-6、复制表结构和数据(可跨库)

create  table  复制的新表名  as(as可省略)  select  * 或具体字段  from 被赋值表 where 筛选条件;

二、 常见数据类型介绍(了解)

1、 数值型

(1)整型

tinyint、smallint,mediumint、int/integer、bigint

1 2 3 4 8  字节

特点:默认有符号,unsigned设置无符号

(2)小数

定点数:dec(M,D)、decimal(M,D)

浮点数:flout(M,D)、double(M,D)

float 、double

4 8    字节

特点:M数值总位数

D小数点后保留多少位,结果位数多则四舍五入

定点数精确度更高

原则:选择类型越简单越好,保存数值长度越短越好

2、 字符型

较短文本:char、varchar

较长文本:text、blob(较长的二进制数据)

特点

char(M) M省略默认为1 固定长度字符 耗费空间 效率高

varchar(M) M不能省略  可变长度字符 节省空间 效率低

3、日期型

date 4字节 年月日

datetime 8 年月日时分秒 1000-9999 不受时区影响

timestamp 4 时间戳 1970-2038 受时区影响

time 3 时分秒

year 2 年

三、 常见约束(重点必会)

1、目的:保证数据的准确和可靠性

六大约束

not null

default

primary  key

unique

check:mysql不支持

foreign  key

2、添加约束的时机:

创建表或修改表

3、约束的添加分类:

(1) 列级约束

(2) 表级约束

一、创建表时添加约束

例如:

create table 表名(

字段名  字段类型 列级约束,

字段名  字段类型,

表级约束

表级约束:(注意约束写法)

CONSTRAINT  pk  PRIMARY KEY(id),

CONSTRAINT  uq  UNIQUE(name)

CONSTRAINT  fk_name  forgien  key(外键)  references  关联表(关联表主键)

查看表级约束

show  index  from  表名;

主键和唯一对比

主键:内容唯一性  不能为空  列只能有一个  不推荐组合使用

唯一:内容唯一性  能为空 列可不唯一 不推荐组合使用

外键

1、 要求在从表设置外键关系

2、 从表的外键列的类型和主表的关联列类型一致或兼容

3、 主表的关联列一般是key(主键或唯一)

4、 插入数据先插入主表再插入从表,删除顺序相反

二、修改表时添加约束

1、添加非空约束

列级约束

ALTER TABLE 表名  MODIFY COLUMN 列名 类型  约束;

表级约束

ALTER TABLE 表名  ADD 约束(字段名);

添加外键

ALTER TABLE 表名  ADD  CONSTRAINT  fk_name  forgien  key(外键)  references  关联表(关联表主键)

四、 修改表时删除约束

1、 删除非空约束

alter  table 表名  modify  column  字段名 类型  null;

2、 删除默认约束

alter  table 表名  modify  column  字段名 类型;

3、 删除主键

alter  table 表名 drop  primary  key;

4、 删除唯一

alter  table 表名  drop  index  唯一键名;

5、 删除外键

alter  table 表名 drop  foreign  key  外键名;

标识列:auto_increment

自增长,不用手动插入,系统提供默认标识值

插入时直接写null或者不写

增长的步长默认为1,起始值默认为1

注意:至多有一个标识列;类型为数值型;

新建、修改表时设置标识列和删除标识列和约束类似;

你可能感兴趣的:(3-DDL(数据定义语言))