MySQL基础
一、简单操作数据库
1.1 创建数据库
CREATE DATABASE IF NOT EXISTS test;
1.2 删除数据库
DROP DATABASE IF EXISTS test
1.3 使用数据库
USE test
1.4 查看数据库
SHOW DATABASES --查看所有的数据库
二、数据库的数据类型
2.1 数值
类型 | 描述 | 所占字节 | 用途 |
---|---|---|---|
tinyint | 十分小的数据 | 1 个字节 | 一般用来当布尔值用 |
smallint | 较小的数据 | 2 个字节 | 少用 |
mediumint | 中等的数据 | 3 个字节 | 少用 |
int | 标准整数 | 4 个字节 | 常用,一般都用 int |
bigint | 较大的整数 | 8 个字节 | 少用 |
float | 单浮点数/单精度小数 | 4 个字节 | 少用 |
double | 双浮点数/双精度小数 | 4 个字节 | 少用 有精度问题 |
decimal | 字符串形式的浮点数 | 不一定 | 精度要求高用 decimal (金融计算) |
2.2 字符串
类型 | 描述 | 用途 |
---|---|---|
char | 固定大小 0~255,不可变长度 | 存手机号等固定长度 |
varchar | 可变字符串 0~65535 | 存可变字符串 存变量 |
tinytext | 微型文本 2^8-1 | 能用 text 就别用这个 |
text | 文本串 2^16-1 | 保存大文本 |
2.3 时间日期
类型 | 描述 | 用途 |
---|---|---|
date | YYYY-MM-DD 日期 | 存日期 |
time | HH:mm:ss 时间 | 存 |
datetime | YYYY-MM-DD HH:mm:ss | 最常用的时间格式 |
timestamp | 时间戳形式 1970.1.1 8:00:00 到现在的毫秒数 | 但会有 2038 年问题 |
2.4 NULL
不要用 NULL 进行运算,结果为 NULL
2.5 字段类型
字段类似 | 描述 | 用途 | |
---|---|---|---|
Unsigned | 无符号整数 | 该列不能声明为负数 | |
zerofill | 用 0 填充 | 不足的位数 用 0 来填充 | |
自增 | 自动在上一条记录+1 (默认,可设置自增大小) | 设置唯一的主键 如 id | |
非空 | not null | 该字段不能为 NULL | |
默认 | 默认值 | 不指定 则默认值 |
三、操作表
表名与字段,尽量用``括起来(你永远不知道,你的字段名会不会和关键字重名!)
3.1 创建表
create table test.t_sys_user
(
id int auto_increment comment '主键',
version int default 0 not null comment '乐观锁',
user_id varchar(32) not null comment '用户唯一编号',
username varchar(64) not null comment '用户名称',
user_account varchar(64) not null comment '用户登录账号',
password varchar(128) not null comment '密码',
email varchar(32) not null comment '邮箱',
phone varchar(32) default '' not null comment '手机号码',
user_type varchar(2) not null comment '用户类别:内部员工、外部用户',
organization_id int not null comment '所属机构',
gender varchar(2) not null comment '用户性别 1:男 0:女',
status varchar(2) not null comment '用户状态',
remarks varchar(512) default '' not null comment '备注',
create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间',
create_by varchar(128) not null comment '创建人',
update_time datetime default (now()) null on update CURRENT_TIMESTAMP comment '更新时间',
update_by varchar(128) default '' not null comment '更新人',
PRIMARY KEY (id),
KEY `idx_create_time` (`create_time`),
KEY `idx_username` (`username`),
unique `idx_unique_email` (`email`),
unique `idx_unique_user_account` (`user_account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
通过上面的手动通过 sql 语句创建表,对已创建的表可通过
-
SHOW CREATE DATABASE 数据库名
查看数据库的定义语句,也就是输出创建数据库的 sql 语句 -
SHOW CREATE TABLE 表名
查看表的定义语句,也就是输出创建表的 sql 语句 -
DESC 表名
–显示表的结构 (desc 是 describe 的缩写)
3.2 修改表
--将表名user修改为account
ALTER TABLE t_sys_user RENAME AS account
--添加字段 age
ALTER TABLE t_sys_user ADD age INT(10)
--修改字段 (修改类型与约束)
ALTER TABLE t_sys_user MODIFY age VARCHAR(10)
--修改字段 (修改字段名)
ALTER TABLE t_sys_user CHANGE age age1 INT(10)
--删除字段
ALTER TABLE t_sys_user DROP age
3.3 删除表
DROP TABLE IF RXISTS t_sys_user
四、MySQL 数据管理
4.1 DML 语言
数据库意义:数据存储,数据管理
DML:数据库操作语言
- INSERT
- UPDATE
- DELETE
4.1.1 添加(insert)
--语法
INSERT INTO 表名([字段1,字段2,字段3]) VALUES ('值1'),('值2'),('值3');
-- 插入数据
INSERT INTO `表名`(`字段`) VALUES ('X');
-- 插入多个数据
INSERT INTO `表名`(`字段`) VALUES ('X'),('X'),('X');