mysql常用经典操作
2007-11-11 14:07:23 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佽鍨庨崘锝嗗瘱闂備胶顢婂▍鏇㈠箲閸ヮ剙鐏抽柡鍐ㄧ墕缁€鍐┿亜韫囧海顦﹀ù婊堢畺閺屻劌鈹戦崱娆忓毈缂備降鍔庣划顖炲Φ閸曨垰绠抽悗锝庝簽娴犻箖姊洪棃娑欐悙閻庢矮鍗抽悰顕€宕堕澶嬫櫖濠殿噯绲剧€笛囧箲閸ヮ剙钃熼柣鏂挎憸閻熷綊鏌涢…鎴濇灈妞ゎ剙鐗嗛—鍐Χ鎼粹€茬凹缂備緡鍠楅幐鎼佹偩閻戣棄纭€闁绘劕绉靛Λ鍐春閳ь剚銇勯幒鎴濐伀鐎规挷绀侀埞鎴︽偐閹绘帩浼€缂佹儳褰炵划娆撳蓟濞戞矮娌柟瑙勫姇椤ユ繈姊洪柅鐐茶嫰婢т即鏌熼搹顐e磳闁挎繄鍋涢埞鎴犫偓锝庘偓顓涙櫊閺屽秵娼幏灞藉帯闂佹眹鍊曢幊鎰閹惧瓨濯撮柛鎾村絻閸撳崬顪冮妶鍡楃仸闁荤啿鏅涢悾鐑藉Ψ瑜夐崑鎾绘晲鎼粹剝鐏嶉梺缁樻尰濞叉﹢濡甸崟顖氱疀闂傚牊绋愮花鑲╃磽娴h棄鐓愭慨妯稿妿濡叉劙骞樼拠鑼槰闂佸啿鎼崐濠毸囬弶搴撴斀妞ゆ梻銆嬪銉︺亜椤撶偛妲婚柣锝囧厴楠炴帡骞嬮弮鈧悗濠氭⒑鐟欏嫭鍎楅柛妯衡偓鐔插徍濠电姷鏁告慨鐑藉极閸涘﹥鍙忔い鎾卞灩绾惧鏌熼崜褏甯涢柍閿嬪灦閵囧嫰骞掗崱妞惧缂傚倷绀侀ˇ閬嶅极婵犳氨宓侀柛鈩冪⊕閸婄兘鏌涘┑鍡楊伀妞ゆ梹鍔曢埞鎴︽倻閸モ晝校闂佸憡鎸婚悷锔界┍婵犲洦鍤冮柍鍝勫暟閿涙粓姊鸿ぐ鎺戜喊闁告瑥楠搁埢鎾斥堪閸喓鍘搁柣蹇曞仧绾爼宕戦幘璇茬疀濞达絽鎲¢崐顖炴⒑绾懎浜归悶娑栧劦閸┾偓妞ゆ帒鍟惃娲煛娴e湱澧柍瑙勫灴閹瑩寮堕幋鐘辨闂備礁婀辨灙闁硅姤绮庨崚鎺楀籍閸喎浠虹紓浣割儓椤曟娊鏁冮崒娑氬幈闂佸搫娲㈤崝宀勬倶閻樼粯鐓曢柟鑸妼娴滄儳鈹戦敍鍕杭闁稿﹥鐗犲畷婵嬫晝閳ь剟鈥﹂崸妤€鐒垫い鎺嶈兌缁犲墽鈧厜鍋撳┑鐘辩窔閸嬫鈹戦纭烽練婵炲拑绲垮Σ鎰板箳閹冲磭鍠撻幏鐘绘嚑閼稿灚姣愰梻鍌氬€烽懗鑸电仚濠电偛顕崗妯侯嚕椤愩倖瀚氱€瑰壊鍠栧▓銊︾節閻㈤潧校缁炬澘绉瑰鏌ュ箵閹烘繄鍞甸柣鐘烘鐏忋劌顔忛妷褉鍋撶憴鍕碍婵☆偅绻傞~蹇涙惞閸︻厾锛滃┑鈽嗗灠閹碱偊锝炲鍥╃=濞达綁顥撻崝宥夋煙缁嬪灝鏆遍柣锝囧厴楠炲鏁冮埀顒傜不婵犳碍鍋i柛銉戝啰楠囬悗瑙勬尭缁夋挳鈥旈崘顔嘉ч柛鈩兠棄宥囩磽娴e壊鍎愰柛銊ュ缁顓兼径瀣偓閿嬨亜閹哄秶顦︾€殿喖鐏濋埞鎴﹀煡閸℃浠梺鍛婎焼閸曨収娲告俊銈忕到閸燁垶宕愰崹顐e弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�

核心提示:.连接服务器MySQL(和PHP搭配之最佳组合) -u cnscn -h 192.168.0.1 [-D dbname] [-P 3306] [--protocol=name] The protocol of connection (tcp,socket,pip
.连接服务器
MySQL(和PHP搭配之最佳组合) -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(和PHP搭配之最佳组合)>create database dbname;
.显示数据库列表
MySQL(和PHP搭配之最佳组合)>show databases;
.显示数据表列表
MySQL(和PHP搭配之最佳组合)>show tables;
.查看MySQL(和PHP搭配之最佳组合)设置参数
$MySQL(和PHP搭配之最佳组合)admin -u root -p variables;
.开启服务器
$/etc/rc.d/init.d/MySQL(和PHP搭配之最佳组合)d start
或
$MySQL(和PHP搭配之最佳组合)d_safe --user=MySQL(和PHP搭配之最佳组合) &
$/etc/rc.d/init.d/MySQL(和PHP搭配之最佳组合)d stop
或
$MySQL(和PHP搭配之最佳组合)admin shutdown -u root -p
.优化表
MySQL(和PHP搭配之最佳组合)>optimize table tblA,tblB;
或 [进行优化并检查修复任务]
$MySQL(和PHP搭配之最佳组合)check -o dbname tblA tblB tblC -u root -p
.对表进行分析
MySQL(和PHP搭配之最佳组合)>analyze table tblA;
或
$MySQL(和PHP搭配之最佳组合)check -a dbname [tblA tblB tblC ] -u root -p
.对表进行检查
MySQL(和PHP搭配之最佳组合)>check table tblA,tblB,tblC;
.
.赋权
MySQL(和PHP搭配之最佳组合)>grant all on dbname.* to username@ identified by 'localhostpassword'
刷新权限表
MySQL(和PHP搭配之最佳组合)>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(和PHP搭配之最佳组合)>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(和PHP搭配之最佳组合)>load data
infile 'a.dat'
into table tblName
fields terminated by '|'
lines terminated by '\n';
3)MySQL(和PHP搭配之最佳组合)import---load data的等价命令
MySQL(和PHP搭配之最佳组合)import
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] 锁定准备写入的表
%MySQL(和PHP搭配之最佳组合)import dbname -u root -password a.dat
.导出成.sql语句
1)用MySQL(和PHP搭配之最佳组合)dump备份
--add-locks 加上锁表语句,建议使用,将加快速度,以加快insert时的速度
--add-drop-table 添加drop table
-A, --all-databases 导出所有的数据库
--allow-keywords 为避免不允许列名与关键字名不同,而在列名前加表名
-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(和PHP搭配之最佳组合)_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)
%MySQL(和PHP搭配之最佳组合)dump
--where='id>5' #只备份id大于5的记录
dbname
[tblname]
>/tmp/a.sql
2)导出到MySQL(和PHP搭配之最佳组合)_db.xml(标准化越来越近了)
%MySQL(和PHP搭配之最佳组合)dump MySQL(和PHP搭配之最佳组合) -X > MySQL(和PHP搭配之最佳组合)_db.xml(标准化越来越近了)
3)最快导出方式
%MySQL(和PHP搭配之最佳组合)dump MySQL(和PHP搭配之最佳组合) --opt >msyql.sql
4)恢复用MySQL(和PHP搭配之最佳组合)dump备份的数据库
%MySQL(和PHP搭配之最佳组合) dbname < /tmp/a.sql
或
MySQL(和PHP搭配之最佳组合)>source /tmp/a.sql
.查询参数
1) \g 在语句尾,同;
2) \G 在语句尾,使查询结果以竖形输出
3) \c 在语句尾,使当前语句不执行
更多精彩
赞助商链接