MySQL的DDL操作表

2022-11-27  本文已影响0人  程序员丶星霖

一、DDL操作表

1.1 创建表

1.1.1 语法

create table 表名(
    列名  类型 [约束],
    列名  类型 [约束]
    ...
);

1.1.2 类型

1.1.2.1 数值类型

int(M),必须和unsigned zerofill一起使用才有意义。

整数类型 字节 取值范围 (有符号、无符号)
TINYINT 1 -128~1270~255
SMALLINT 2 -32768~327670~65535
MEDIUMINT 3 -8388608~83886070~1677215
INT、INTEGER 4 -2147483648~21474836470~4294967295
BIGINT 8 -9223372036854775808~92233720368547758070~18446744073709551615

double(M,D):表示最长为M位,其中小数点后D位。

decimal(M,D):表示最长为M位,其中小数点后D位

用来存储二进制数。对于位字段,直接使用select命令将不会看到结果。可以使用bit()或hex()函数进行读取。插入bit类型字段时,使用bit()函数转为二进制值再插入,因为二进制码是"01"。

1.1.2.2 日期时间类型

日期时间类型:year,date,datetime,timestamp

类型 说明 标准格式 范围
date 日期 YYYY-MM-DD 1000-01-01到9999-12-31
time 时间 HH:MM:SS -838:59:59和838:59:59
datetime 日期时间 YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00到9999-12-31 23:59:59
year 年份类型 YYYY 和 YY(不推荐) 1901到2155
timestamp 时间戳 YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01到2038-01-19 03:14:07

timestamp和datetime区别:

1.1.2.3 字符串类型

MySQL中提供了多种对字符数据的存储类型,不同的版本可能有所差异。常见的有:
char,varchar,xxtext,binary,varbinary,xxblob,enum,set等等

字符串类型 描述
char(M) M为0~255,允许0~255个字符,char默认char(1)
varchar(M) M为0~65535,允许0~65535个字符,varchar必须指定(M),实际长度=值得长度+1个字节
binary(M) M为0~255,允许0~255个定长字节字符串
varbinary(M) M为0~65535,允许0~65535个变长字节字符串,实际长度=值得长度+1个字节
tinyblob 允许0~255字节,实际长度=值得长度+1个字节
blob 允许0~65535个字节,实际长度=值的长度+2个字节
mediumblob 允许0~167772150个字节,实际长度=值的长度+3个字节
longblob 允许0~4294967295个字节,实际长度=值的长度+4个字节
tinytext 允许0~255个字节,实际长度=指的长度+2个字节
text 允许0~65535个字节,实际长度=值的长度+2个字节
mediumtext 允许0~167772150个字节,实际长度=值的长度+3个字节
longtext 允许0~4294967295个字节,实际长度=值的长度+4个字节

1.1.3 约束

约束 约束关键字 说明
主键 primary key 非空且唯一,并且一张表只能有一个主键
唯一 unique 唯一,当前列不能出现相同的数据
非空 not null 非空,当前列不能为null
默认 default 如果当前列没有数据,则指定默认数据
约束种类:

注意:

  1. 先设置了primary key,再能设置auto_increment
  2. 只有当设置了auto_increment才可以插入null,否则插入null会报错。

1.1.4 练习

-- 1.创建表
-- 创建一张学生表(含有id字段,姓名字段不能重复,性别字段不能为空。id为主键自动增长)
CREATE TABLE student(
    id INT PRIMARY KEY AUTO_INCREMENT, -- 主键自增长
    NAME VARCHAR(30) UNIQUE, -- 唯一约束
    gender CHAR(1) NOT NULL
);

1.2 查看表

1.2.1 查看所有的表

-- 2.查看某个数据库中的所有表
SHOW TABLES;

1.2.2 查看表的定义结构

-- 3.查看某张表的结构
DESC student;

1.3 修改表

-- 4.修改表结构的SQL语句
-- 4.1 添加一个字段
-- 给学生表增加一个grade字段,类型为varchar(20),不能为空
ALTER TABLE student  ADD grade VARCHAR(20)  NOT NULL;

-- 4.2 修改某个字段的类型和约束
-- 给学生表的gender字段改成int类型
ALTER TABLE student MODIFY gender INT NOT NULL DEFAULT 1;

-- 4.3 修改某个字段的名字
-- 给学生的grade字段修改成class字段
ALTER TABLE student CHANGE grade class VARCHAR(20)  NOT NULL;

-- 4.4 删除某个字段
-- 把class字段删除
ALTER TABLE student DROP class;

-- 4.5 修改表的名字
-- 把学生表修改成老师表
RENAME TABLE student TO teacher;

1.4 删除表

-- 5. 删除表
DROP TABLE teacher;

学海无涯苦作舟

上一篇 下一篇

猜你喜欢

热点阅读