文章目录
- [一、 数据库基本操作](#一、 数据库基本操作)
- [二、DDL 操作(数据库和表管理)](#二、DDL 操作(数据库和表管理))
-
- 2.1创建数据库
- [2.2 创建数据表](#2.2 创建数据表)
- [2.2 删除表](#2.2 删除表)
- [2.3 删除数据库](#2.3 删除数据库)
- 2.4修改表结构(ALTER)
- [二、DML 操作(表数据管理)](#二、DML 操作(表数据管理))
- [三、DQL 操作(数据查询)](#三、DQL 操作(数据查询))
-
- 3.1查询数据
- [3.2 表的高级操作](#3.2 表的高级操作)
-
- [3.2.1 临时表](#3.2.1 临时表)
- [3.2.2 克隆表](#3.2.2 克隆表)
- 四、用户管理
- 五、用户授权管理
一、 数据库基本操作
1、用于显示当前MYSQL服务器上所有数据库列表。
bash
SHOW DATABASES;
2、 切换当前操作的数据库
bash
USE 数据库名;
3、 查看数据库中的表
bash
SHOW TABLES;
SHOW TABLES IN 数据库名;
4、查看表结构
bash
DESCRIBE 表名;
二、DDL 操作(数据库和表管理)
2.1创建数据库
create database 数据库名;
2.2 创建数据表
- 字段约束:
not null:非空
default:默认值
primary key:主键
unique key:唯一键
auto_increment:自增长字段
bash
CREATE TABLE 表名 (
字段1 数据类型 [约束条件],
字段2 数据类型 [约束条件],
...
PRIMARY KEY (主键字段)
);
例如1

查看用desc yjs12;
2.2 删除表
bash
DROP TABLE 表名;
DROP TABLE 数据库名.表名; -- 不切换数据库时使用
2.3 删除数据库
bash
DROP DATABASE 数据库名;
2.4修改表结构(ALTER)
bash
--修改表名
ALTER TABLE 旧表名 RENAME 新表名;
--增加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [约束];
--修改字段
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;
--删除字段
ALTER TABLE 表名 DROP 字段名;
案例1:修改表名称


案例2:添加字段


案例3:删除表中字段

案例4:修改字段名称,并修改它的数据类型
(一种modify修改字段数据类型,一种change更改字段名和字段数据类型 )
bash
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];

bash
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;

二、DML 操作(表数据管理)
2.1插入数据
bash
INSERT INTO 表名(字段1,字段2,...) VALUES (值1, 值2, ...);

2.2更新数据
bash
UPDATE 表名 SET 字段1=值1[,字段2=值2] WHERE 条件;

2.3删除数据
bash
DELETE FROM 表名 WHERE 条件;

2.4 清空表
DELETE 可带 WHERE 条件,可回滚,速度慢
TRUNCATE 不可回滚,速度快,ID 自增重置
bash
-- 方法1: DELETE
DELETE FROM 表名;
-- 方法2: TRUNCATE
TRUNCATE TABLE 表名;
三、DQL 操作(数据查询)
3.1查询数据
1、 查询数据
bash
SELECT 字段1,字段2 FROM 表名 WHERE 条件;
SELECT * FROM 表名; -- 查询所有字段

2、限制查询结果
bash
SELECT * FROM 表名 LIMIT 起始行, 查询条数;
SELECT * FROM 表名 LIMIT 2; -- 显示前2行
SELECT * FROM 表名 LIMIT 2,3; -- 从第2行开始显示3行

3、竖向显示结果

3.2 表的高级操作
3.2.1 临时表
- 临时表只存在于当前连接,会在连接关闭时自动销毁
- 可进行增删改查操作
bash
CREATE TEMPORARY TABLE 表名 (...);

3.2.2 克隆表
- 仅复制表结构(需要添加数据)
- CREATE TABLE 新表 LIKE 旧表;

- 复制表结构和数据
复制过来的表结构缺少主键;

四、用户管理
1、创建用户
localhost :本地登录
% :允许任意 IP 登录
密码可使用明文或加密方式
bash
CREATE USER '用户名'@'来源地址' IDENTIFIED BY '密码';

查看用户

2、删除用户
DROP USER '用户名'@'来源地址';
3、修改密码
bash
SET PASSWORD = PASSWORD('新密码'); -- 当前用户
SET PASSWORD FOR '用户'@'来源地址' = PASSWORD('新密码'); -- 其他用户
4、忘记 root 密码处理
跳过密码直接登录mysql
修改 /etc/my.cnf 添加:
bash
[mysqld]
skip-grant-tables
- 重启 MySQL 服务并直接登录
- 修改密码:
bash
UPDATE mysql.user SET AUTHENTICATION_STRING=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;
3、删除 skip-grant-tables 并重启 MySQL
五、用户授权管理
5.1授权用户
bash
GRANT 权限列表 ON 数据库.表 TO '用户名'@'来源地址' IDENTIFIED BY '密码';
- 权限示例:SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE,
ALL - . 表示所有数据库和表
bash
GRANT SELECT ON school.* TO 'zhangsan'@'localhost' IDENTIFIED BY 'abc123';
bash
GRANT ALL PRIVILEGES ON *.* TO 'lisi'@'%' IDENTIFIED BY '123456';
如果没有生效,需要刷新权限。
FLUSH PRIVILEGES #刷新权限
5.2查看授权
bash
show GRANTS FOR '用户名'@'来源地址';
5.3 撤销权限
bash
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'来源地址';
REVOKE ALL ON *.* FROM 'lisi'@'%';