MySQL数据库管理
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;ALTER TABLE 表名 ADD 字段名 数据类型 [约束];4.删除 skip-grant-tables 并重启 MySQL。精确数值类型,p=总长度,s=小数位 55555.000。ALTER TABLE 旧表名 RENAME 新表名;
目录
1.数据库基本操作
1.1 查看数据库信息
show databases;
1.2 切换数据库
USE 数据库名;
1.3 查看数据库中的表
SHOW TABLES;
SHOW TABLES IN 数据库名;
1.4 查看表结构
DESCRIBE 表名;
- 输出说明:
- Field:字段名称
- Type:字段类型
- Null:是否允许为空
- Key:是否是主键(PRI)、唯一键(UNI)或索引(MUL)
- Default:默认值
- Extra:额外属性(如 auto_increment)
2.常用数据类型
|
类型 |
说明 |
示例 |
|
INT |
整型,存储整数 |
id INT |
|
FLOAT |
单精度浮点,4 字节,可表示小数 |
score FLOAT |
|
DOUBLE |
双精度浮点,8 字节 |
price DOUBLE |
|
CHAR(n) |
固定长度字符类型,长度 n,不够补空格 |
name CHAR(10) |
|
VARCHAR(n) |
可变长度字符类型,最大 n 个字符 |
address VARCHAR(50) |
|
TEXT |
文本类型 |
description TEXT |
|
IMAGE |
图片类型 |
photo IMAGE |
|
DECIMAL(p,s) |
精确数值类型,p=总长度,s=小数位 55555.000 |
salary DECIMAL(5,2) |
注意事项:
- CHAR 存入长度不足时补空格,超出指定长度低版本截取,高版本报错。
- 主键唯一,可由多个字段组成(联合主键)。
3. 数据库文件存储结构
- MySQL 数据目录:/usr/local/mysql/data
- 每个数据库对应一个子目录,每个表对应若干文件:
- MyISAM:.frm(表结构)、.MYD(数据)、.MYI(索引)
- InnoDB:
- 独享表空间:.ibd 文件(每表一个文件)
- 共享表空间:ibdata 文件(多个表共用)
4. SQL 语句分类
|
分类 |
功能 |
常用语句 |
|
DDL(数据定义语言) |
创建/修改/删除数据库对 象 |
CREATE, DROP, ALTER |
|
DML(数据操纵语 言) |
增删改表数据 |
INSERT, UPDATE, DELETE |
|
DQL(数据查询语言) |
查询数据 |
SELECT |
|
DCL(数据控制语言) |
用户权限管理 |
GRANT, REVOKE, COMMIT, ROLLBACK |
5. DDL 操作(数据库和表管理)
5.1 创建数据库
CREATE DATABASE 数据库名;
5.2 创建数据表
CREATE TABLE 表名 (
字段1 数据类型 [约束条件],
字段2 数据类型 [约束条件],
...
PRIMARY KEY (主键字段)
);
字段约束:
- NOT NULL:不能为空
- DEFAULT:默认值
- PRIMARY KEY:主键
- UNIQUE KEY:唯一键
- AUTO_INCREMENT:自增长字段
5.3 删除表
DROP TABLE 表名;
DROP TABLE 数据库名.表名; -- 不切换数据库时使用
5.4 删除数据库
DROP DATABASE 数据库名;
5.5 修改表结构(ALTER)
-- 修改表名
ALTER TABLE 旧表名 RENAME 新表名;
-- 增加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [约束];
-- 修改字段
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;
-- 删除字段
ALTER TABLE 表名 DROP 字段名;
6. DML 操作(表数据管理)
6.1 插入数据
INSERT INTO 表名(字段1,字段2,...) VALUES (值1, 值2, ...);
6.2 更新数据
UPDATE 表名 SET 字段1=值1[,字段2=值2] WHERE 条件;
6.3 删除数据
DELETE FROM 表名 WHERE 条件;
6.4 清空表
1.DELETE FROM 表名;
2.TRUNCATE TABLE 表名;
- DELETE 可带 WHERE 条件,可回滚,速度慢
- TRUNCATE 不可回滚,速度快,ID 自增重置
7. DQL 操作(数据查询)
7.1 查询数据
SELECT 字段1,字段2 FROM 表名 WHERE 条件;
SELECT * FROM 表名; -- 查询所有字段
7.2 限制查询结果
SELECT * FROM 表名 LIMIT 起始行, 查询条数;
7.3 竖向显示结果
SELECT * FROM 表名\G
8. 表高级操作
8.1 临时表
CREATE TEMPORARY TABLE 表名 (...);
- 临时表只存在于当前连接,会在连接关闭时自动销毁
- 可进行增删改查操作
8.2 克隆表
CREATE TABLE 新表 LIKE 旧表; --仅复制表结构
在加上数据表中的数据,需要做插入
例如:
insert into 新表 select * from 旧表;
--复制表结构和数据
CREATE TABLE 新表 AS SELECT * FROM 旧表;
9. 用户管理
9.1 创建用户
CREATE USER '用户名'@'来源地址' IDENTIFIED BY '密码';
- localhost:本地登录
- %:允许任意 IP 登录
- 密码可使用明文或加密方式
9.2 查看用户
USE mysql;
SELECT User, Host, authentication_string FROM user;
9.3 删除用户
DROP USER '用户名'@'来源地址';
9.4 修改密码
SET PASSWORD = PASSWORD('新密码'); -- 当前用户
SET PASSWORD FOR '用户'@'来源地址' = PASSWORD('新密码'); -- 其他用户
9.5 忘记 root 密码处理
1. 修改 vim /etc/my.cnf 添加:
[mysqld]
skip-grant-tables
2.重启 MySQL 服务并直接登录
3. 修改密码:
UPDATE mysql.user SET AUTHENTICATION_STRING=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;
4.删除 skip-grant-tables 并重启 MySQL
10. 用户授权管理
10.1 授权用户
GRANT 权限列表 ON 数据库.表 TO '用户名'@'来源地址' IDENTIFIED BY '密码';
- 权限示例:SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE, ALL
- *.* 表示所有数据库和表
10.2 查看授权
SHOW GRANTS FOR '用户名'@'来源地址';
10.3 撤销权限
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'来源地址';
REVOKE ALL ON *.* FROM 'lisi'@'%';
11. 权限说明
|
权限 |
功能 |
|
SELECT |
查询数据 |
|
INSERT |
插入数据 |
|
UPDATE |
修改数据 |
|
DELETE |
删除数据 |
|
CREATE |
创建数据库/表 |
|
DROP |
删除数据库/表 |
|
INDEX |
建立索引 |
|
ALTER |
修改表结构 |
|
EXECUTE |
执行存储过程 |
|
CREATE VIEW |
创建视图 |
|
SHOW VIEW |
查看视图 |
|
CREATE ROUTINE |
创建存储过程 |
|
ALTER ROUTINE |
修改存储过程 |
|
EVENT |
创建事件 |
|
TRIGGER |
创建触发器 |
|
ALL PRIVILEGES |
所有权限 |
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)