Mysql查看数据库对象(SQL命令总结)
数据的对象包括表,视图,触发器,等等(查看统计信息的必须进入information_schema 数据库)
举例查看表相关的信息,步骤如下
1、使用information_schema 数据库
use information_schema;
2、查询所有数据的大小(MB):
select
concat(round(
sum
(data_length/1024/1024),2),
'MB'
)
as
data_size
from
tables;
3、查看指定数据库(schema)的大小(MB):
select
concat(round(
sum
(data_length/1024/1024),2),
'MB'
)
as
DB_size
from
tables
where
table_schema=
'ehr'
;
4、查看指定数据库的指定表(table)的大小
select
concat(round(
sum
(data_length/1024/1024),2),
'MB'
)
as
table_size
from
tables
where
table_schema=
'ehr'
and
table_name=
'ehr_age'
;
实际生产环境:比逐条执行SQL查看统计信息更厉害的就是现在的UI界面,但是根本的还是SQL语句!
5、查询数据库中的存储过程和函数
select `name` from mysql.proc where db = 'xx' and `type` = 'PROCEDURE' //存储过程
select `name` from mysql.proc where db = 'xx' and `type` = 'FUNCTION' //函数
show procedure status; //存储过程
show function status; //函数
6、查看存储过程或函数的创建代码
show create procedure proc_name;
show create function func_name;
7、查看视图
SELECT * from information_schema.VIEWS //视图
SELECT * from information_schema.TABLES //表
8、查看触发器
SHOW TRIGGERS [FROM db_name] [LIKE expr]
SELECT * FROM triggers T WHERE trigger_name=”mytrigger”
9、查看事件
查看事件进程是否开启:show variables like 'event_scheduler';
开启事件进程:set global event_scheduler=on;或者set global event_scheduler=1;
查询 正在执行的事务:SELECT * FROM information_schema.INNODB_TRX
根据这个事务的线程ID(trx_mysql_thread_id):
可以使用mysql命令:kill 线程id 杀掉线程
10、指定字符集和排序方式创建数据库
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
导出数据库
mysqldump -u(username) -p(password) database > dump.sql
导出数据库结构
mysqldump -u(username) -p(password) -d(数据库名) sva_rec > e:\sva_rec.sql(生成目录文件)
导出数据库表
mysqldump -u(username) -p(password) (数据库名) (表名) > dump.sql(指生成的文件路径)
导出数据库表结构
mysqldump -u(username) -p(password) -d(database) (tablename) >dump.sql(生成的文件路径)
导出存储过程及函数
执行命令: mysqldump -hhostname -uusername -ppassword -ntd -R databasename > prorandfunc.sql
-d 结构(--no-data:不导出任何数据,只导出数据库表结构)
-t 数据(--no-create-info:只导出数据,而不添加CREATE TABLE 语句)
-n (--no-create-db:只导出数据,而不添加CREATE DATABASE 语句)
-R (--routines:导出存储过程以及自定义函数)
-E (--events:导出事件)
--triggers (默认导出触发器,使用--skip-triggers屏蔽导出)
-B (--databases:导出数据库列表,单个库时可省略)
--tables 表列表(单个表时可省略)
①同时导出结构以及数据时可同时省略-d和-t
②同时 不 导出结构和数据可使用-ntd
③只导出存储过程和函数可使用-R -ntd
④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出)
⑤只导出结构&函数&事件&触发器使用 -R -E -d
MySQL终端指定列的输出格式:
方法一
mysql> pager less -SFX;
PAGER set to 'less -SFX'
mysql> select * from user;
其实在终端显示的时候是2行的,使用键盘的左右方向键可以控制查看右边的隐藏列,esc可以退出查看。
方法二
select * from user \G
使用 \G , 比较推荐这个用法,把行转化成列显示
查询语句使用 \G 结尾,不需要 ;了