一、数据库基本操作语法
1. 创建数据库
-- 创建数据库,如果不存在则创建,可指定字符编码和排序规则
create database [if not exists] 数据库名 [字符编码集] [排序规则];
1. 修改数据库
-- 修改数据库的字符编码集和排序规则
alter database 数据库名 [字符编码集] [排序规则];
1. 删除数据库
-- 删除数据库,如果存在则删除
drop database if exists 数据库名;
二、数据类型
1. 数值类型
- tinyint :长度1字节,类似Java的 byte ,可用于表示 bool 类型。
- int :长度4字节,对应Java的 int 。
- bigint :长度8字节,对应Java的 long 。
- decimal :长度不定,对应Java的 BigDecimal 。
2. 字符类型
- char(0 - 255) :长度固定。
- varchar(M) :长度可变, M 是字符的个数。
- TEXT :文本类型。
3. 日期类型
- datetime :日期 + 时间,格式为年月日 时分秒。
- date :日期,格式为年月日。
- time :时间,格式为时分秒。
三、表操作
1. 创建表
-- 创建表,如果不存在则创建
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (
field datatype [约束] [comment '注解内容'],
-- 多个字段定义,以逗号分隔
field datatype [约束] [comment '注解内容']...
) [engine 存储引擎] [character set 字符集] [collate 排序规则];
示例:
-- 创建用户表,包含用户编号、用户名、密码、生日字段
create table if not exists users (
id bigint comment '用户编号',
username varchar(32) comment '用户名',
password varchar(32) comment '密码',
birthday date comment '生日'
);
1. 查看表结构
-- 查看表结构,显示列名、数据类型、是否可为空、索引、默认值、扩展信息等
desc 表名;
示例:
desc users;
1. 修改表
-- 修改表结构
ALTER TABLE tbl_name [alter_option [, alter_option]...];
-- 新增一列
-- 在表中新增一列,可指定位置(FIRST或AFTER某列)
ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
-- 修改某一列
-- 修改列的数据类型等定义,可指定位置(FIRST或AFTER某列)
MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]
-- 删除某一列
-- 删除表中的一列
DROP [COLUMN] col_name
-- 重命名某一列
-- 将旧列名改为新列名
RENAME COLUMN old_col_name TO new_col_name
-- 修改表名
-- 将表名改为新表名
RENAME [TO | AS] new_tbl_name
示例:
-- 向users表新增一列gender
ALTER TABLE users ADD COLUMN gender tinyint(1) COMMENT '性别' AFTER username;
1. 删除表
-- 删除表,如果存在则删除,可用于临时表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name]...;
四、CRUD操作
1. Create(新增)
-- 插入数据到表中
INSERT [INTO] table_name [(column [, column]...)]
VALUES (value_list) [, (value_list)]...;
-- value_list格式:value [, value]...
示例:
-- 向users表插入一条记录,指定列插入
insert into users (id, name) values (1, '张三');
-- 向users表插入一条记录,全列插入(列顺序与表定义一致)
insert into users values (2, '李四', 'password', '2025-01-01');
-- 向users表插入多条记录
insert into users (id, name) values (3, '王五'), (4, '赵六');
1. Retrieve(检索)
-- 查询数据
SELECT
[DISTINCT]
select_expr [, select_expr]...
[FROM table_references]
[WHERE where_condition]
[GROUP BY {col_name | expr},...]
[HAVING where_condition]
[ORDER BY {col_name | expr} [ASC | DESC],...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}];
示例:
-- 查询users表所有记录
select * from users;
-- 查询users表中name列和id列
select name, id from users;
1. Update(更新)
语法示例:
-- 更新表中数据
UPDATE table_name
SET column1 = value1, column2 = value2,...
[WHERE condition];
1. Delete(删除)
注意数据库删除操作危险,语法示例:
-- 删除表中记录
DELETE FROM table_name [WHERE condition];