目录
[四.SQL 语句分类](#四.SQL 语句分类)
[五.DDL 操作(数据库和表管理)](#五.DDL 操作(数据库和表管理))
[六.DML 操作(表数据管理)](#六.DML 操作(表数据管理))
[七.DQL 操作(数据查询)](#七.DQL 操作(数据查询))
[5.忘记 root 密码处理](#5.忘记 root 密码处理)
前言:
上次和读者们分享了关于数据库的相关概念以及编译安装操作,今天我将对数据库管理的相关命令和操作做一个讲解。
一.数据库基本操作
1.查看数据库信息
显示当前 MySQL 服务器上所有数据库列表
SHOW DATABASES;
2.切换数据库
切换当前操作的数据库
USE 数据库名 ;
3.查看数据库中的表
显示当前数据库或指定数据库的所有表
SHOW TABLES;
SHOW TABLES IN 数据库名 ;
4.查看表结构
DESCRIBE 表名 ;
输出结果:
Field :字段名称
Type :字段类型
Null :是否允许为空
Key :是否是主键( PRI )、唯一键( UNI )或索引( MUL )
Default :默认值
Extra :额外属性(如 auto_increment )
二.常用数据类型

注意事项 :
CHAR 存入长度不足时补空格,超出指定长度低版本截取,高版本报错
主键唯一,可由多个字段组成(联合主键)
三.数据库文件存储结构
MySQL 数据目录: /usr/local/mysql/data
每个数据库对应一个子目录,每个表对应若干文件:
MyISAM : .frm (表结构)、 .MYD (数据)、 MYI (索引)
InnoDB :
独享表空间: .ibd 文件(每表一个文件)
共享表空间: ibdata 文件(多个表共用)
四.SQL****语句分类

五.DDL****操作(数据库和表管理)
1.创建数据库
CREATE DATABASE 数据库名 ;
2.创建数据表
CREATE TABLE 表名 (
字段 1 数据类型 [ 约束条件 ],
字段 2 数据类型 [ 约束条件 ],
...
PRIMARY KEY ( 主键字段 )
);
create table zcx
示例:
CREATE DATABASE szsx_school;
USE szsx_school;
CREATE TABLE yjs0805 (
id INT NOT NULL ,
name CHAR ( 10 ) NOT NULL ,
score DECIMAL ( 5 , 2 ),
passwd CHAR ( 48 ) DEFAULT '' ,
PRIMARY KEY (id)
);
DESC yjs0805;
NOT NULL :不能为空
DEFAULT :默认值
PRIMARY KEY :主键
UNIQUE KEY :唯一键
AUTO_INCREMENT :自增长字段
3.删除表
DROP TABLE 表名 ;
DROP TABLE 数据库名 . 表名 ; -- 不切换数据库时使用
4.删除数据库
DROP DATABASE 数据库名 ;
5.修改表结构(ALTER)
-- 修改表名
ALTER TABLE 旧表名 RENAME 新表名 ;
-- 增加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [ 约束 ];
-- 修改字段
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [ 约束 ];
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 ;
-- 删除字段
ALTER TABLE 表名 DROP 字段名 ;
六.DML****操作(表数据管理)
1.插入数据
INSERT INTO 表名 ( 字段 1, 字段 2,...) VALUES ( 值 1, 值 2, ...);
2.更新数据
UPDATE 表名 SET 字段 1= 值 1[, 字段 2= 值 2] WHERE 条件 ;
3.删除数据
DELETE FROM 表名 WHERE 条件 ;
4.清空表
-- 方法 1: DELETE
DELETE FROM 表名 ;
-- 方法 2: TRUNCATE
TRUNCATE TABLE 表名 ;
DELETE 可带 WHERE 条件,可回滚,速度慢
TRUNCATE 不可回滚,速度快, ID 自增重置
七.DQL****操作(数据查询)
1.查询数据
SELECT 字段 1, 字段 2 FROM 表名 WHERE 条件 ;
SELECT * FROM 表名 ; -- 查询所有字段
2.限制查询结果
SELECT * FROM 表名 LIMIT 起始行 , 查询条数 ;
SELECT * FROM 表名 LIMIT 2 ; -- 显示前 2 行
SELECT * FROM 表名 LIMIT 2 , 3 ; -- 从第 2 行开始显示 3 行
**3.**竖向显示结果
SELECT * FROM 表名 \G
八.表高级操作
1.临时表
CREATE TEMPORARY TABLE 表名 (...);
临时表只存在于当前连接,会在连接关闭时自动销毁
可进行增删改查操作
2.克隆表
-- 仅复制表结构
CREATE TABLE 新表 LIKE 旧表 ;
-- 复制表结构和数据
CREATE TABLE 新表 AS SELECT * FROM 旧表 ;
九.用户管理
1.创建用户
CREATE USER ' 用户名 ' @ ' 来源地址 ' IDENTIFIED BY ' 密码 ' ;
localhost :本地登录
% :允许任意 IP 登录
密码可使用明文或加密方式
2.查看用户
USE mysql;
SELECT User, Host, authentication_string FROM user;
3.删除用户
DROP USER ' 用户名 ' @ ' 来源地址 ' ;
4.修改密码
SET PASSWORD = PASSWORD( ' 新密码 ' ); -- 当前用户
SET PASSWORD FOR ' 用户 ' @ ' 来源地址 ' = PASSWORD( ' 新密码 ' ); -- 其他用户
5.忘记root密码处理
修改 /etc/my.cnf 添加:
mysqld
skip-grant-tables
重启 MySQL 服务并直接登录
修改密码:
UPDATE mysql .user SET AUTHENTICATION_STRING=PASSWORD( ' 新密码 ' ) WHERE user= 'root' ;
FLUSH PRIVILEGES;
删除 skip - grant - tables 并重启 MySQL
十.用户授权管理
1.授权用户
GRANT 权限列表 ON 数据库 . 表 TO ' 用户名 ' @ ' 来源地址 ' IDENTIFIED BY ' 密码 ' ;
权限示例: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE,
ALL
*.* 表示所有数据库和表
示例 :
GRANT SELECT ON school.* TO 'zhangsan' @ 'localhost' IDENTIFIED BY 'abc123' ;
GRANT ALL PRIVILEGES ON *.* TO 'lisi' @ '%' IDENTIFIED BY '123456' ;
FLUSH PRIVILEGES # 刷新权限
2.查看授权
SHOW GRANTS FOR ' 用户名 ' @ ' 来源地址 ' ;
3.撤销权限
REVOKE 权限列表 ON 数据库 . 表 FROM ' 用户名 ' @ ' 来源地址 ' ;
REVOKE ALL ON *.* FROM 'lisi' @ '%' ;
十一.权限说明


总结:
今天我主要分享了一些数据库的管理操作,主要包含数据库/表增删查改,用户创建,授权等相关操作的相关语句,希望对读者们有所帮助!