mysql视图数据迁移到表_mysql笔记(⼀):简单的过程视图表状态导⼊导出数据到⽂本导。。。
过程/函数:
//显⽰数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程
show procedure/function status [like 'pattern']
//从系统表中查询某⼀存储过程的相关信息
select * from mysql.proc where name = 'procedure_name'
//创建过程
create procedure count_user() select count(*) as user_number from mysql.user;
//调⽤过程
call count_user();
//删除过程
drop procedure procedure_name
//指定的存储过程的创建信息
show create procedure procedure_name
视图:视图作为⼀张表的查询封装,可以很好的起到中间组件的作⽤,其实视图也是⼀张表,虚拟表
//创建视图
create view user_view as select host, user from mysql.user;
//使⽤视图
select * from user_view []
github网站//删除视图
drop view user_view
//查看视图
/
/show table status 会罗列出当前数据库所有的表的状态,视图作为⼀张特殊表也会被列出来且comment="view"
show table status where comment='view'
颜的英文简称//查看视图创建信息
show create view view_name
查看存储过程/函数/触发器/事件/视图
show procedure status
show function status
show triggers
show events
show table status [from dbname] [like 'pattern'] where comment="view"
查看表状态:查看当前数据库或指定数据库的所有表的状态信息
show table status [from dbname] [like 'pattern']
查看数据库使⽤量
//每个数据库的信息图表
use information_schema;
//查看所有数据库的总⼤⼩
select concat(round(sum(data_length/1024/1024),2),'MB') as data_size from tables;
//查看某⼀数据库的⼤⼩table_schema
select concat(round(sum(data_length/1024/1024),2),'MB') as data_size from tables where table_schema='dbname';
//查看某⼀表的⼤⼩
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='dbname' and table_name
what怎么读导出数据到⽂件 into outfile 'file_path_name'
select * FROM test.table into outfile '/' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINAT
导⼊mysql服务器端数据到数据库 load data infile 'file_path_name'mysql查看所有存储过程
LOAD DATA INFILE '/' INTO TABLE test.table_same_create_info FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSE
导⼊客户端上的数据到数据库 load data local infile 'file_path_name'
c语言1取余LOAD DATA LOCAL INFILE '/' INTO TABLE test.table_same_create_info FIELDS TERMINATED BY ',' OPTIONALLY E
FIELDS TERMINATED BY ',' 字段间分割符
OPTIONALLY ENCLOSED BY '"' 将字段包围 对数值型⽆效
LINES TERMINATED BY '\n' 换⾏符
mysql
1、导出数据 mysql -e "command" [--skip-colunm-names] dbName
--e: 执⾏某命令并退出
--skip-colunm-names: 导出数据时不携带列名,只有数据
mysql -u root -p -e "select * from tableName" --skip-column-names dbName > data.sql
如同登录mysql后的
select * from tableName into outfile 'data.sql'
2、导⼊数据 mysql -u root -p --default-character-set=utf8 -P 3306 < data.sql
mysqldump
-A 全库备份
--routines 备份存储过程和函数
--default-character-set=utf8 设置字符集
--lock-all-tables 全局⼀致性锁
--add-drop-database 在每次执⾏建表语句之前,先执⾏DROP TABLE IF EXIST语句
--no-create-db 不输出CREATE DATABASE语句
--no-create-info 不输出CREATE TABLE语句
--databases 将后⾯的参数都解析为库名
--tables 第⼀个参数为库名 后续为表名
导出
ifrow函数的使用方法
导出全库备份到本地的⽬录mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --lock-all-tables --add-drop-database -A > db.all.sql
导出指定库到本地的⽬录(例如mysql库)mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases mysql > db.sql
导出某个库的表到本地的⽬录(例如mysql库的user表)mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --tables mysql user> db.table.sql
导出指定库的表(仅数据)到本地的⽬录(例如mysql库的user表,带过滤条件)mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-create-db --no-create-info --tables mysql user --
where="host='localhost'"> db.table.sql
导出某个库的所有表结构mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-data --databases mysql > db.nodata.sql
导出某个查询sql的数据为txt格式⽂件到本地的⽬录(各数据值之间⽤"制表符"分隔)
例如sql为'select user,host,password from mysql.user;'mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 --skip-column-names -B -e 'select user,host,password from mysql.user;' >
导出某个查询sql的数据为txt格式⽂件到MySQL服务器.
登录MySQL,将默认的制表符换成逗号.(适应csv格式⽂件).
指定的路径,mysql要有写的权限.最好⽤tmp⽬录,⽂件⽤完之后,再删
除!SELECT user,host,password FROM mysql.user INTO OUTFILE '/tmp/mysql_user.csv' FIELDS TERMINATED BY ',';
导⼊
恢复全库数据到MySQL,因为包含mysql库的权限表,导⼊完成需要执⾏FLUSH PRIVILEGES;命令第⼀种⽅法:
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
第⼆种⽅法:
登录MySQL,执⾏source命令,后⾯的⽂件名要⽤绝对路径.
......
mysql> source /tmp/db.all.sql;
恢复某个库的数据(mysql库的user表)第⼀种⽅法:
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 mysql
第⼆种⽅法:
登录MySQL,执⾏source命令,后⾯的⽂件名要⽤绝对路径.
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
mysql> source /tmp/db.table.sql;
恢复MySQL服务器上⾯的txt格式⽂件(需要FILE权限,各数据值之间⽤"制表符"分隔)mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
mysql> LOAD DATA INFILE '/tmp/' INTO TABLE user ;
恢复MySQL服务器上⾯的csv格式⽂件(需要FILE权限,各数据值之间⽤"逗号"分隔)mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
mysql> LOAD DATA INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
恢复本地的txt或csv⽂件到MySQLmysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
.
.....
mysql> use mysql;
# txt
mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user;
# csv
mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
注意事项
关于MySQL连接
-u$USER ⽤户名
-p$PASSWD 密码
-h127.0.0.1 如果连接远程服务器,请⽤对应的主机名或者IP地址替换
-P3306 端⼝
--default-character-set=utf8 指定字符集
关于mysql参数
--skip-column-names 不显⽰数据列的名字
-B 以批处理的⽅式运⾏mysql程序.查询结果将显⽰为制表符间隔格式.
-e 执⾏命令后,退出
关于mysqldump参数
-A 全库备份
--routines 备份存储过程和函数
--default-character-set=utf8 设置字符集
--lock-all-tables 全局⼀致性锁
-
-add-drop-database 在每次执⾏建表语句之前,先执⾏DROP TABLE IF EXIST语句
--no-create-db 不输出CREATE DATABASE语句
--no-create-info 不输出CREATE TABLE语句
--databases 将后⾯的参数都解析为库名
--tables 第⼀个参数为库名 后续为表名
关于LOAD DATA语法
如果LOAD DATA语句不带LOCAL关键字,就在MySQL的服务器上直接读取⽂件,且要具有FILE权限.如果带LOCAL关键字,就在客户端本地读取数据⽂件,通过⽹络传到MySQL.
LOAD DATA语句,同样被记录到binlog,不过是内部的机制.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论