MySQL5.7 库、表结构、表字段的查询、更改操作
1.查询所有数据库
SHOW DATABASES;
2.查询库中所有表
写法1:
① USE [DATABASE_NAME]; ② SHOW TABLES;
写法2:
SHOW TABLES FROM [DATABASE_NAME]
3. 查询表结构
写法1:
① USE [DATABASE_NAME]; ② SHOW CREATE TABLE [TABLE_NAME];
写法2:
SHOW CREATE TABLE [DATABASE_NAME.TABLE_NAME];
4. 查询表所有字段
写法1:
① USE [DATABASE_NAME]; ② SHOW COLUMNS FROM [TABLE_NAME];
写法2:
SHOW COLUMNS FROM [DATABASE_NAME.TABLE_NAME];
写法3:
① USE [DATABASE_NAME]; ② SHOW FIELDS FROM [TABLE_NAME];
写法4:
SHOW FIELDS FROM [DATABASE_NAME.TABLE_NAME];
扩展:MySQL安装完成后,一般会有mysql库、information_schema库、test库等,而infomation_schema库中有一个表为COLUMNS 的表,这个表记录了所有数据库所有表的字段信息,因此可以通过这个表查询某个表的字段信息,但这样查的话会查出所有同名的表
写法5:
SELECT COLUMN_NAME, COLUMN_TYPE from information_schema.COLUMNS WHERE TABLE_NAME = '[TABLE_NAME]';
因此还可以约束所在库,例如
写法6:
SELECT COLUMN_NAME, COLUMN_TYPE from information_schema.COLUMNS WHERE TABLE_SCHEMA = '[DATABASE_NAME]' AND TABLE_NAME = '[TABLE_NAME]';
5. 查询表所有字段及详细信息
写法1:
① USE [DATABASE_NAME]; ② SHOW FULL COLUMNS FROM [TABLE_NAME];
写法2:
SHOW FULL COLUMNS FROM [DATABASE_NAME.TABLE_NAME];
写法3:
① USE [DATABASE_NAME]; ② SHOW FULL FIELDS FROM [TABLE_NAME];
写法4:
SHOW FULL FIELDS FROM [DATABASE_NAME.TABLE_NAME];
6. 查询表中所有索引
写法1:
① USE [DATABASE_NAME]; ② SHOW INDEX FROM [TABLE_NAME];
写法2:
SHOW INDEX FROM [DATABASE_NAME.TABLE_NAME];
7. 查询MySQL系统环境变量
SHOW VARIABLES;
直接使用此语句查询结果非常多!
用此命令查询当前MySQL 默认编码集:进入MySQL后直接输入命令
SHOW VARIABLES LIKE 'CHARACTER_SET_DATABASE';
用此命令查询某个库的编码集:
① USE [DATABASE]; ② SHOW VARIABLES LIKE 'CHARACTER_SET_DATABASE';
8. 查看当前连接数,root账号可以看到所有连接,普通账号只能看到自己的连接
SHOW PROCESSLIST;
9. 查询用户权限
SHOW GRANTS FOR [USER];
10.删除默认值,反引号(`)可加可不加
ALTER TABLE myemployees.jobs ALTER `job_id` DROP DEFAULT;
11.设置默认值、如存在则覆盖默认值
ALTER TABLE myemployees.jobs ALTER `job_id` SET DEFAULT 0;
12.修改字段类型
ALTER TABLE myemployees.jobs MODIFY `job_id` INT(2);
ALTER TABLE myemployees.jobs CHANGE `job_id` `job_id` INT(2);
13.修改字段名字
ALTER TABLE myemployees.jobs CHANGE `job_id` `job_id_new` INT(2);
14.查看数据存放目录
show variables like '%datadir%';
15.查看当前数据库使用线程相关信息
show status like 'Threads%';
Thread_cached:The number of threads in the thread cache.
线程缓存中的线程数,代表mysql管理的线程池中还有多少可以被复用的资源
Thread_connected:The number of currently open connections.
当前打开的连接数,mysql当前连接数,等于show processlist
Thread_created:The number of threads created to handle connections.
为处理连接而创建的线程数,代表新创建的thread,如果thread_created增大迅速,需要适当调高thread_cache_size
Thread_running:The number of threads that are not sleeping.
未睡眠的线程数,即此时真正运行的线程数,如果是等于1的话,一般就是调用show status命令本身占用的线程
16.修改索引名称
ALTER TABLE table_name RENAME INDEX old_index_name TO new_index_name;
17.修改表的编码
ALTER TABLE `jobs` CONVERT TO CHARACTER SET utf8mb4;