MySQL-Table

创建数据表

CREATE TABLE 表名(
	列名 类型 [约束],
	列名 类型 [约束]
	... );

注意:在MySQL中,大小写不敏感,即关键字大写还是小写都是可以且效果是一样的

常用类型

数值型

名称 字节 说明
int 4
bigint 8
double double(M,D) double(M,D):表示最长为M位,其中小数点后D位 例如:double(5,2)表示的数据范围[-999.99,999.99],如果超过这个范围会报错。

字符型

名称 字节 说明
char char(M) 字符类型,且长度为M,不足M的,用空格填充 例如:char(11) char如果没有指定宽度,默认为1个字符
varchar varchar(M) 字符类型,最大长度为M,不足M的,按照实际的大小占用空间,例如:varchar(32) varchar

时间类型

名称 说明
date 日期类型 格式为 YYYY-MM-DD 例如:2021-05-10
time 时间类型 格式为 HH:MM:SS 例如:17:47:30
datetime 日期时间类型 是date 与time的结合 格式为 YYYY-MM-DD HH:mm:ss 例如: 2021-05-10 17:48:31

常用约束

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

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

举例

CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT, -- 主键自增长
	NAME VARCHAR(30) UNIQUE, -- 唯一约束
	gender CHAR(1) NOT NULL DEFAULT ‘男‘
);

查看所有的数据表

show tables;

查看表的定义结构

desc 表名;
-- 例如:
desc student;

修改表

增加一列

alter table [数据库名.]表名称 add [column] 字段名 数据类型;-- 添加到最后
alter table [数据库名.]表名称 add [column] 字段名 数据类型 first;-- 添加到第一列
alter table [数据库名.]表名称 add [column] 字段名 数据类型 after 另一个字段;-- 添加到某一列的前面

修改列的类型约束

alter table 表名 modify 字段 类型 约束 ;

修改列的名称,类型,约束

alter table 表名 change 旧列 新列 类型 约束;

删除一列

alter table 表名 drop 列名;

修改表名

rename table 旧表名 to 新表名;

删除表

drop tale 表名;

案例

  • 给学生表增加一个grade字段,类型为varchar(20),不能为空
ALTER TABLE student ADD grade VARCHAR(20) NOT NULL;
  • 给学生表的gender字段改成int类型,不能为空,默认值为1
alter table student modify gender varchar(20);
  • 给学生表的grade字段修改成class字段
ALTER TABLE student CHANGE grade class VARCHAR(20) NOT NULL;
  • 把class字段删除
ALTER TABLE student DROP class;
  • 把学生表修改成老师表
RENAME TABLE student TO teacher;
  • 把teacher表删除
drop table teacher;

MySQL-Table

上一篇:06 Spark SQL 及其DataFrame的基本操作


下一篇:MYSQL-用户管理