如何使用shell命令行进行MySQL数据库的基本操作?
摘要:一、对数据库的基本操作 mysql -h127.0.0.1 -P3306 -uroot -p -A 登录数据库,-A参数指不预读数据库信息,否则如果数据表很多的话,执行use db_name;就会很慢。加-A参数连接,不去预读数据库信息
一、对数据库的基本操作
mysql -h127.0.0.1 -P3306 -uroot -p -A //登录数据库,-A参数指不预读数据库信息,否则如果数据表很多的话,执行use db_name;就会很慢。加-A参数连接,不去预读数据库信息。(注意:很多人会密码加在-p后面,但是这样密码会被系统指令执行记录日志给明文记录,会留下隐患,所以尽量不要把密码一并加在指令上去执行,而是单独输入)
mysql -h127.0.0.1 -P3306 -uroot -D dbname //-D参数指定连接某个数据库
show databases; //列出数据库
use database_name; //使用database_name数据库
create database data_name; //创建名为data_name的数据库
drop database data_name; //删除一个名为data_name的数据库
use dbname; status //查看数据库dbname的详细信息
alter database db_name character set utf8; //修改数据库编码
show variables like '%dir%'; // 查看mysql相关存放目录
mysql -uroot -proot -e "select * from test.item;" #在系统中使用mysql命令执行sql语句
二、对表的基本操作
查看数据表的建表语句。
SHOW CREATE TABLE table_name;
1、列出所有表
show tables;
1.1、查询数据库 yf_role 中有多少张表
SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'yf_role' GROUP BY table_schema;
1.2、获取某个数据库中每张表的基础信息
SELECT TABLE_NAME,ENGINE,TABLE_ROWS,TABLE_COLLATION,TABLE_COMMENT FROM information_schema.TABLES WHERE table_schema = 'yf_role';
2、查看表的详细信息:
show table status where name = 'table_name';
3、优化表格,将已删除的数据的空间释放出来(delete操作删除数据后,空间并没有释放,而是等待新数据去填充),仅对MyISAM, BDB和InnoDB引擎表起作用。语句执行过程中,MySQL会锁定表。
