【MySQL】数据库操作基础笔记

来源:互联网 发布:d3.js 颜色渐变 编辑:程序博客网 时间:2024/06/05 19:18

一、基础知识。

总目录:http://www.cnblogs.com/nerxious/category/435239.html

分章节(只列出重要章节):

1、(索引)http://www.cnblogs.com/nerxious/archive/2012/12/29/2839134.html;

2、(连接查询)http://www.cnblogs.com/nerxious/archive/2012/12/29/2839397.html;

3、(数据备份与还原)http://www.cnblogs.com/nerxious/archive/2013/01/07/2849126.html;

二、其他数据库的操作。

2.1、查看数据库具体table的大小,以及条目总数。查看数据库_name = school table_name = student的条目总数+大小。

select table_name, data_length+index_length, table_rows from information_schema.tables where table_schema='school' AND table_name='student';
select table_name, concat(round((data_length+index_length)/1024/1024, 2), 'MB'), table_rows from information_schema.tables where table_schema='school' AND table_name='student';
下面的是带上单位的。且还计算了index的大小。

2.2、查看数据库的某个database的大小。

select SUM(DATA_LENGTH)+SUM(INDEX_LENGTH) from information_schema.tables where table_schema='school';
select concat(round((SUM(DATA_LENGTH)+SUM(INDEX_LENGTH))/1024/1024, 2), 'MB') from information_schema.tables where table_schema='school';

下面的是带上单位的SQL语句。可以计算出数据库的大小。


三、关于数据库备份的详细解释。

关于数据库备份,还要2篇自己总结的文章一并贴到下面:

SQLite数据库的导入和导出

>>导出
(1)整体的导出:

sqlite3 data.db >.output data.sql >.dump 
这样就将整个db文件导出成了sql文件。sql文件,是一系列sql语句,并有数据的插入。
或者是将data.db直接导出为data1.db:
sqlite3 data.db ".dump" |sqlite3 data1.db

这个实际上只是做了一个备份。


(2)单个表格的导出:

sqlite3 data.db "select * from data_txt_table" > data_txt_table.txt
将data.db中的表格data_txt_table导入到*.txt文件中去,下图就是导出的类似格式。
SQLite数据库的导入和导出 - 东九_西十二 - 东九_西十二的博客
sqlite3 -html data.db "select * from data_txt_table" > data_txt_table.html
就是将数据库中的表格导出为html格式的文件

<<导入
(1)整体的导入:
先创建一个新数据库,比如是mydb.db。然后将先前生成的sql文件全部导入进来。
sqlite3 mydb.db >.read dd.sql
(2)单个表格导入:
先判断导入文件的数据分割的格式,比如上面截图中所示,分割的格式是" | "
sqlite> .separator "|" sqlite> .import data_txt_table.txt data_txt_table
这样就成功导入了。
参考:
sqlite的数据导入 导出
SQLite表结构和数据的导入导出
基本的使用方法总结:


mysql数据库的备份笔记。
1 导出所有库
 系统命令行
 
mysqldump -uusername -ppassword --all-databases > all.sql

 2 导入所有库
 mysql命令行
 mysql>source all.sql;

 
 3 导出某些库
 系统命令行
mysqldump -uusername -ppassword --databases db1db2 > db1db2.sql

 
 4 导入某些库
 mysql命令行
 mysql>source db1db2.sql;

 
 5 导入某个库
 系统命令行
mysql -uusername -ppassword db1 < db1.sql;

 或mysql命令行
 
mysql>source db1.sql;


导入数据库时,也要注意编码问题,具体可以参考下面这个链接,数据库备份编码相关


备份的*.sql文件里使用的编码,要与数据库设置的编码完全一致。
 
 6 导出某些数据表
 系统命令行
 mysqldump -uusername -ppassword db1 table1 table2 > tb1tb2.sql


 7 导入某些数据表
 系统命令行
mysql -uusername -ppassword db1 < tb1tb2.sql


 或mysql命令行
 mysql> user db1; source tb1tb2.sql;

 
 8 mysqldump字符集设置
mysqldump -uusername -ppassword --default-character-set=gb2312 db1 table1 > tb1.sql





注意:


1)对于某些情况下,需要设置数据库的字符集,要不然会出现乱码;


2)一定分开处理正式运行环境的数据库,和test的数据库,最好是在test数据库上操作后,再去操作正式运行的数据库;


3)对于某些版本的mysql,上面3中的命令导出的*.sql文件里的内容的开头如下:


CREATE DATABASE /*!32312 IF NOT EXISTS*/ `g17_qc` /*!40100 DEFAULT CHARACTER SET utf8 */;
 
USE `g17_qc`;
 
--
-- Table structure for table `auth_group`
--


上面这个文件我是从g17_qc数据库导出的。如果再对该文件执行mysql -uusername -ppassword db1 < db1.sql;    实际上最后生成的


数据还是g17_qc。这个对于g17_qc的备份和还原,这个是合理的。


但是如果我是想把g17_qc完全复制到g17_qc_debug,那么我就必须要改上面*.sql文件开头中的g17_qc为g17_qc_debug,这样最后通过该sql文件导入的结果就是将g17_qc复制为g17_qc_debug了。


4)上面3)举的例子是备份一整个数据库,其实还可以针对某个表进行备份。


0 0
原创粉丝点击