程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql常用經典操作

mysql常用經典操作

編輯:關於MYSQL數據庫
 .連接服務器
MySQL -u cnscn
-h 192.168.0.1
[-D dbname]
[-P 3306]
[--protocol=name] The protocol of connection (tcp,socket,pipe,memory)
[-S, --socket=name] 連接所用的套接字文件
[--character-sets-dir=name] 字符集所位於的目錄

[--default-character-set=name] 默認的字符集
[-E, --vertical] 垂直地打列出查詢輸出


.創建數據庫
MySQL>create database dbname;


.顯示數據庫列表
MySQL>show databases;


.顯示數據表列表
MySQL>show tables;

.查看MySQL設置參數
$MySQLadmin -u root -p variables;


.開啟服務器
$/etc/rc.d/init.d/MySQLd start

$mysqld_safe --user=MySQL &

$/etc/rc.d/init.d/MySQLd stop

$MySQLadmin shutdown -u root -p


.優化表
MySQL>optimize table tblA,tblB;
或 [進行優化並檢查修復任務]
$MySQLcheck -o dbname tblA tblB tblC -u root -p



.對表進行分析
MySQL>analyze table tblA;

$MySQLcheck -a dbname [tblA tblB tblC ] -u root -p


.對表進行檢查
MySQL>check table tblA,tblB,tblC;



.


.賦權
MySQL>grant all on dbname.* to username@ identifIEd by 'localhostpassWord'

刷新權限表
MySQL>flush privileges;


.從txt文本文件向數據庫導入文件
1)用select into做備份
select * from table where ... order... group by ...
into outfile '/tmp/data.dat'
[fIElds
[terminated by '\t']
[[optionally] enclosed by '']
[escaped by '\']
]
[lines terminated by '\n']
[ignore number lines]
[(col_name,...)]


MySQL>select * from tblName where id<10 int outfile 'a.dat' fIElds terminated by '|' lines terminated by '\n';


2)用load data恢復
load data [low_priority | concurrent]
[local]
infile 'a.dat'
[fIElds
[terminated by '\t']
[[optionally] enclosed by '']
[escaped by '\']
]
[lines terminated by '\n']
[ignore number lines]
[(col_name,...)]

MySQL>load data
infile 'a.dat'
into table tblName
fIElds terminated by '|'
lines terminated by '\n';

3)MySQLimport---load data的等價命令
MySQLimport
dbname
-u root
-h localhost
-passWord
[--fIElds-terminated-by=...]
[--fIElds-enclosed-by=...]
[--fIElds-optionally-enclosed-by=...]
[--fIElds-escaped-by=...]
[--lines-terminated-by=...]

[--port=3306]
[--socket=/path/to/socket]
[--character-sets-dir=name]
[-d,--delete] 輸入文件前,清空表
]-l,--lock-tables] 鎖定准備寫入的表
%MySQLimport dbname -u root -passWord a.dat

.導出成.sql語句
1)用MySQLdump備份
--add-locks 加上鎖表語句,建議使用,將加快速度,以加快insert時的速度
--add-drop-table 添加drop table
-A, --all-databases 導出所有的數據庫
--allow-keyWords 為避免不允許列名與關鍵字名不同,而在列名前加表
您正在看的MySQL教程是:MySQL常用經典操作。名
-c,--complete-insert 使用完整的插入語句
-C,--compress 壓縮數據
-B,--databases 存儲指定的幾個庫
-e,--extended-insert 利用多行insert方式使結果更緊湊,速度更快,因為索引緩存器只在每個insert命令後刷新
--fIElds-terminated-by=...
--fIElds-enclosed-by=...
--fIElds-optionally-enclosed-by=...
--fIElds-escaped-by=...
--lines-terminated-by=...
-h, --host=... 主機
-l,--lock-tables 鎖表
-K,--disable-keys 在insert前使索引無效,之後有效,使插入有效
--opt等效於--quick --add-drop-table --add-locks --extened-insert --lock-tables的組合 這是最快的恢復
--passWord 提示輸入密碼
-P portnumber,--port=portnumber 指明TCP/IP端口號
-q,--quick 不對表進行暫存,但直接存儲在stdout.用MySQL_use_result()去做,對於大的表,必須這樣做
-Q,--quote-names 把表和列的名放入單引號裡
-r,--result-file=... 輸出到指定文件.這在DOS中有用,因為它可以阻止UNIX的新行\n符被轉換成\n\r
-S /tmp/socket, 指定socket文件
--socket=/tmp/socket
-T,--tab=path-to-some-directory 為每一個表創建兩個文件tblname.sql, tblname.txt
-u username, 連接的用戶名
--user=username
-w,--where='where-condition' 導出的條件
-X,--xml 以符合方法的XML形式存儲數據庫
-O net_buffer_length=n 當創建多行插入語句時,該數創建行數的大小最多為n(-e或-opt參數,n必須小於16MB)



%MySQLdump
--where='id>5' #只備份id大於5的記錄
dbname
[tblname]
>/tmp/a.sql

2)導出到MySQL_db.XML
%mysqldump mysql -X > MySQL_db.XML

3)最快導出方式
%mysqldump MySQL --opt >msyql.sql


4)恢復用MySQLdump備份的數據庫
%MySQL dbname < /tmp/a.sql

MySQL>source /tmp/a.sql


.查詢參數
1) \g 在語句尾,同;
2) \G 在語句尾,使查詢結果以豎形輸出
3) \c 在語句尾,使當前語句不執行
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved