1 MYSQL常用命令 2 1.導出整個資料庫 3 mysqldump -u 用戶名 -p –default-character-set=latin1 資料庫名 > 導出的文件名(資料庫預設編碼是latin1) 4 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc ...
1 MYSQL常用命令 2 1.導出整個資料庫 3 mysqldump -u 用戶名 -p –default-character-set=latin1 資料庫名 > 導出的文件名(資料庫預設編碼是latin1) 4 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 5 2.導出一個表 6 mysqldump -u 用戶名 -p 資料庫名 表名> 導出的文件名 7 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 8 3.導出一個資料庫結構 9 mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql 10 -d 沒有數據 –add-drop-table 在每個create語句之前增加一個drop table 11 4.導入資料庫 12 A:常用source 命令 13 進入mysql資料庫控制台, 14 如mysql -u root -p 15 mysql>use 資料庫 16 然後使用source命令,後面參數為腳本文件(如這裡用到的.sql) 17 mysql>source wcnc_db.sql 18 B:使用mysqldump命令 19 mysqldump -u username -p dbname < filename.sql 20 C:使用mysql命令 21 mysql -u username -p -D dbname < filename.sql 22 一、啟動與退出 23 1、進入MySQL:啟動MySQL Command Line Client(MySQL的DOS界面),直接輸入安裝時的密碼即可。此時的提示符是:mysql> 24 2、退出MySQL:quit或exit 25 二、庫操作 26 1、、創建資料庫 27 命令:create database <資料庫名> 28 例如:建立一個名為xhkdb的資料庫 29 mysql> create database xhkdb; 30 2、顯示所有的資料庫 31 命令:show databases (註意:最後有個s) 32 mysql> show databases; 33 3、刪除資料庫 34 命令:drop database <資料庫名> 35 例如:刪除名為 xhkdb的資料庫 36 mysql> drop database xhkdb; 37 4、連接資料庫 38 命令:use <資料庫名> 39 例如:如果xhkdb資料庫存在,嘗試存取它: 40 mysql> use xhkdb; 41 屏幕提示:Database changed 42 5、查看當前使用的資料庫 43 mysql> select database(); 44 6、當前資料庫包含的表信息: 45 mysql> show tables; (註意:最後有個s) 46 三、表操作,操作之前應連接某個資料庫 47 1、建表 48 命令:create table <表名> ( <欄位名> <類型> [,..<欄位名n> <類型n>]); 49 mysql> create table MyClass( 50 > id int(4) not null primary key auto_increment, 51 > name char(20) not null, 52 > sex int(4) not null default ’′, 53 > degree double(16,2)); 54 2、獲取表結構 55 命令:desc 表名,或者show columns from 表名 56 mysql>DESCRIBE MyClass 57 mysql> desc MyClass; 58 mysql> show columns from MyClass; 59 3、刪除表 60 命令:drop table <表名> 61 例如:刪除表名為 MyClass 的表 62 mysql> drop table MyClass; 63 4、插入數據 64 命令:insert into <表名> [( <欄位名>[,..<欄位名n > ])] values ( 值 )[, ( 值n )] 65 例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為的名為Tom的成績為.45, 編號為 的名為Joan 的成績為.99,編號為 的名為Wang 的成績為.5. 66 mysql> insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59); 67 5、查詢表中的數據 68 1)、查詢所有行 69 命令:select <欄位,欄位,…> from < 表名 > where < 表達式 > 70 例如:查看表 MyClass 中所有數據 71 mysql> select from MyClass; 72 2)、查詢前幾行數據 73 例如:查看表 MyClass 中前行數據 74 mysql> select from MyClass order by id limit 0,2; 75 或者: 76 mysql> select from MyClass limit 0,2; 77 6、刪除表中數據 78 命令:delete from 表名 where 表達式 79 例如:刪除表 MyClass中編號為 的記錄 80 mysql> delete from MyClass where id=1; 81 7、修改表中數據:update 表名 set 欄位=新值,…where 條件 82 mysql> update MyClass set name=’Mary’where id=1; 83 7、在表中增加欄位: 84 命令:alter table 表名 add欄位 類型 其他; 85 例如:在表MyClass中添加了一個欄位passtest,類型為int(4),預設值為 86 mysql> alter table MyClass add passtest int(4) default ’′ 87 8、更改表名: 88 命令:rename table 原表名 to 新表名; 89 例如:在表MyClass名字更改為YouClass 90 mysql> rename table MyClass to YouClass; 91 更新欄位內容 92 update 表名 set 欄位名 = 新內容 93 update 表名 set 欄位名 = replace(欄位名,’舊內容’,’新內容’) 94 95 96 97 98 99 100 101 文章前面加入個空格 102 update article set content=concat(‘ ’,content); 103 欄位類型 104 1.INT[(M)] 型:正常大小整數類型 105 2.DOUBLE[(M,D)] [ZEROFILL] 型:正常大小(雙精密)浮點數字類型 106 3.DATE 日期類型:支持的範圍是-01-01到-12-31。MySQL以YYYY-MM-DD格式來顯示DATE值,但是允許你使用字元串或數字把值賦給DATE列 107 4.CHAR(M) 型:定長字元串類型,當存儲時,總是是用空格填滿右邊到指定的長度 108 5.BLOB TEXT類型,最大長度為(2^16-1)個字元。 109 6.VARCHAR型:變長字元串類型 110 5.導入資料庫表 111 ()創建.sql文件 112 ()先產生一個庫如auction.c:mysqlbin>mysqladmin -u root -p creat auction,會提示輸入密碼,然後成功創建。 113 ()導入auction.sql文件 114 c:mysqlbin>mysql -u root -p auction < auction.sql。 115 通過以上操作,就可以創建了一個資料庫auction以及其中的一個表auction。 116 6.修改資料庫 117 ()在mysql的表中增加欄位: 118 alter table dbname add column userid int(11) not null primary key auto_increment; 119 這樣,就在表dbname中添加了一個欄位userid,類型為int(11)。 120 7.mysql資料庫的授權 121 mysql>grant select,insert,delete,create,drop 122 on . (或test./user./..) 123 to 用戶名@localhost 124 identified by ‘密碼’; 125 如:新建一個用戶帳號以便可以訪問資料庫,需要進行如下操作: 126 mysql> grant usage 127 -> ON test. 128 -> TO testuser@localhost; 129 Query OK, 0 rows affected (0.15 sec) 130 此後就創建了一個新用戶叫:testuser,這個用戶只能從localhost連接到資料庫並可以連接到test 資料庫。下一步,我們必須指定testuser這個用戶可以執行哪些操作: 131 mysql> GRANT select, insert, delete,update 132 -> ON test. 133 -> TO testuser@localhost; 134 Query OK, 0 rows affected (0.00 sec) 135 此操作使testuser能夠在每一個test資料庫中的表執行SELECT,INSERT和DELETE以及UPDATE查詢操作。現在我們結束操作並退出MySQL客戶程式: 136 mysql> exit 137 Bye9! 138 1:使用SHOW語句找出在伺服器上當前存在什麼資料庫: 139 mysql> SHOW DATABASES; 140 2:2、創建一個資料庫MYSQLDATA 141 mysql> Create DATABASE MYSQLDATA; 142 3:選擇你所創建的資料庫 143 mysql> USE MYSQLDATA; (按回車鍵出現Database changed 時說明操作成功!) 144 4:查看現在的資料庫中存在什麼表 145 mysql> SHOW TABLES; 146 5:創建一個資料庫表 147 mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 148 6:顯示表的結構: 149 mysql> DESCRIBE MYTABLE; 150 7:往表中加入記錄 151 mysql> insert into MYTABLE values (“hyq”,”M”); 152 8:用文本方式將數據裝入資料庫表中(例如D:/mysql.txt) 153 mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt”INTO TABLE MYTABLE; 154 9:導入.sql文件命令(例如D:/mysql.sql) 155 mysql>use database; 156 mysql>source d:/mysql.sql; 157 10:刪除表 158 mysql>drop TABLE MYTABLE; 159 11:清空表 160 mysql>delete from MYTABLE; 161 12:更新表中數據 162 mysql>update MYTABLE set sex=”f”where name=’hyq’; 163 以下是無意中在網路看到的使用MySql的管理心得, 164 165 166 在windows中MySql以服務形式存在,在使用前應確保此服務已經啟動,未啟動可用net start mysql命令啟動。而Linux中啟動時可用“/etc/rc.d/init.d/mysqld start”命令,註意啟動者應具有管理員許可權。 167 剛安裝好的MySql包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對於一些重要的應用我們應將安全性儘可能提高,在這裡應把匿名帳戶刪除、root帳戶設置密碼,可用如下命令進行: 168 use mysql; 169 delete from User where User=””; 170 update User set Password=PASSWORD(‘newpassword’) where User=’root’; 171 如果要對用戶所用的登錄終端進行限制,可以更新User表中相應用戶的Host欄位,在進行了以上更改後應重新啟動資料庫服務,此時登錄時可用如下類似命令: 172 mysql -uroot -p; 173 mysql -uroot -pnewpassword; 174 mysql mydb -uroot -p; 175 mysql mydb -uroot -pnewpassword; 176 上面命令參數是常用參數的一部分,詳細情況可參考文檔。此處的mydb是要登錄的資料庫的名稱。 177 在進行開發和實際應用中,用戶不應該只用root用戶進行連接資料庫,雖然使用root用戶進行測試時很方便,但會給系統帶來重大安全隱患,也不利於管理技術的提高。我們給一個應用中使用的用戶賦予最恰當的資料庫許可權。如一個只進行數據插入的用戶不應賦予其刪除數據的許可權。MySql的用戶管理是通過User表來實現的,添加新用戶常用的方法有兩個,一是在User表插入相應的數據行,同時設置相應的許可權;二是通過GRANT命令創建具有某種許可權的用戶。其中GRANT的常用用法如下: 178 grant all on mydb. to NewUserName@HostName identified by “password”; 179 grant usage on . to NewUserName@HostName identified by “password”; 180 grant select,insert,update on mydb. to NewUserName@HostName identified by “password”; 181 grant update,delete on mydb.TestTable to NewUserName@HostName identified by “password”; 182 若要給此用戶賦予他在相應對象上的許可權的管理能力,可在GRANT後面添加WITH GRANT OPTION選項。而對於用插入User表添加的用戶,Password欄位應用PASSWORD 函數進行更新加密,以防不軌之人竊看密碼。對於那些已經不用的用戶應給予清除,許可權過界的用戶應及時回收許可權,回收許可權可以通過更新User表相應欄位,也可以使用REVOKE操作。 183 下麵給出本人從其它資料(www.cn-java.com)獲得的對常用許可權的解釋: 184 全局管理許可權: 185 FILE: 在MySQL伺服器上讀寫文件。 186 PROCESS: 顯示或殺死屬於其它用戶的服務線程。 187 RELOAD: 重載訪問控製表,刷新日誌等。 188 SHUTDOWN: 關閉MySQL服務。 189 資料庫/數據表/數據列許可權: 190 Alter: 修改已存在的數據表(例如增加/刪除列)和索引。 191 Create: 建立新的資料庫或數據表。 192 Delete: 刪除表的記錄。 193 Drop: 刪除數據表或資料庫。 194 INDEX: 建立或刪除索引。 195 Insert: 增加表的記錄。 196 Select: 顯示/搜索表的記錄。 197 Update: 修改表中已存在的記錄。 198 特別的許可權: 199 ALL: 允許做任何事(和root一樣)。 200 USAGE: 只允許登錄–其它什麼也不允許做。 201 ——————— 202 MYSQL常用命令 203 有很多朋友雖然安裝好了mysql但卻不知如何使用它。在這篇文章中我們就從連接MYSQL、修改密碼、增加用戶等方面來學習一些MYSQL的常用命令。 204 有很多朋友雖然安裝好了mysql但卻不知如何使用它。在這篇文章中我們就從連接MYSQL、修改密碼、增加用戶等方面來學習一些MYSQL的常用命令。 205 一、連接MYSQL 206 格式:mysql -h主機地址-u用戶名-p用戶密碼 207 、例:連接到本機上的MYSQL 208 首先在打開DOS視窗,然後進入目錄mysqlbin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼,如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是:mysql> 209 、例:連接到遠程主機上的MYSQL 210 假設遠程主機的IP為:.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令: 211 mysql -h110.110.110.110 -uroot -pabcd123 212 (註:u與root可以不用加空格,其它也一樣) 213 、退出MYSQL命令:exit (回車) 214 二、修改密碼 215 格式:mysqladmin -u用戶名-p舊密碼password 新密碼 216 、例:給root加個密碼ab12。首先在DOS下進入目錄mysqlbin,然後鍵入以下命令 217 mysqladmin -uroot -password ab12 218 註:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。 219 、例:再將root的密碼改為djg345 220 mysqladmin -uroot -pab12 password djg345 221 MYSQL常用命令(下) 222 一、操作技巧 223 、如果你打命令時,回車後發現忘記加分號,你無須重打一遍命令,只要打個分號回車就可以了。也就是說你可以把一個完整的命令分成幾行來打,完後用分號作結束標誌就OK。 224 、你可以使用游標上下鍵調出以前的命令。但以前我用過的一個MYSQL舊版本不支持。我現在用的是mysql-3.23.27-beta-win。 225 二、顯示命令 226 、顯示資料庫列表。 227 show databases; 228 剛開始時才兩個資料庫:mysql和test。mysql庫很重要它裡面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。 229 、顯示庫中的數據表: 230 use mysql;//打開庫,學過FOXBASE的一定不會陌生吧 231 show tables; 232 、顯示數據表的結構: 233 describe 表名; 234 、建庫: 235 create database 庫名; 236 、建表: 237 use 庫名; 238 create table 表名(欄位設定列表); 239 、刪庫和刪表: 240 drop database 庫名; 241 drop table 表名; 242 、將表中記錄清空: 243 delete from 表名; 244 、顯示表中的記錄: 245 select from 表名; 246 三、一個建庫和建表以及插入數據的實例 247 drop database if exists school; //如果存在SCHOOL則刪除 248 create database school; //建立庫SCHOOL 249 use school; //打開庫SCHOOL 250 create table teacher //建立表TEACHER 251 ( 252 id int(3) auto_increment not null primary key, 253 name char(10) not null, 254 address varchar(50) default ‘深圳’, 255 year date 256 ); //建表結束 257 //以下為插入欄位 258 insert into teacher values(”,’glchengang’,’深圳一中’,’-10-10′); 259 insert into teacher values(”,’jack’,’深圳一中’,’-12-23′); 260 註:在建表中()將ID設為長度為的數字欄位:int(3)並讓它每個記錄自動加一:auto_increment並不能為空:not null而且讓他成為主欄位primary key 261 ()將NAME設為長度為的字元欄位 262 ()將ADDRESS設為長度的字元欄位,而且預設值為深圳。varchar和char有什麼區別呢,只有等以後的文章再說了。 263 ()將YEAR設為日期欄位。 264 如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。你可以將以上命令原樣寫入一個文本文件中假設為school.sql,然後複製到c:\下,併在DOS狀態進入目錄\mysql\bin,然後鍵入以下命令: 265 mysql -uroot -p密碼< c:\school.sql 266 如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你只要將//的註釋去掉即可使用)。 267 四、將文本數據轉到資料庫中 268 、文本數據應符合的格式:欄位數據之間用tab鍵隔開,null值用\n來代替. 269 例: 270 rose 深圳二中1976-10-10 271 mike 深圳一中1975-12-23 272 、數據傳入命令load data local infile “文件名” into table 表名; 273 註意:你最好將文件複製到\mysql\bin目錄下,並且要先用use命令打表所在的庫。 274 五、備份資料庫:(命令在DOS的\mysql\bin目錄下執行) 275 mysqldump –opt school>school.bbb 276 註釋:將資料庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。 277 一.SELECT語句的完整語法為: 278 SELECT[ALL|DISTINCT|DISTINCTROW|TOP] 279 {|talbe.|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]} 280 FROM tableexpression[,…][IN externaldatabase] 281 [WHERE…] 282 [GROUP BY…] 283 [HAVING…] 284 [ORDER BY…] 285 [WITH OWNERACCESS OPTION] 286 說明: 287 用中括弧([])括起來的部分表示是可選的,用大括弧({})括起來的部分是表示必須從中選擇其中的一個。 288 1 FROM子句 289 FROM 子句指定了SELECT語句中欄位的來源。FROM子句後面是包含一個或多個的表達式(由逗號分開),其中的表達式可為單一表名稱、已保存的查詢或由INNER JOIN、LEFT JOIN 或RIGHT JOIN 得到的複合結果。如果表或查詢存儲在外部資料庫,在IN 子句之後指明其完整路徑。 290 例:下列SQL語句返回所有有定單的客戶: 291 SELECT OrderID,Customer.customerID 292 FROM Orders Customers 293 WHERE Orders.CustomerID=Customers.CustomeersID 294 2 ALL、DISTINCT、DISTINCTROW、TOP謂詞 295 (1) ALL 返回滿足SQL語句條件的所有記錄。如果沒有指明這個謂詞,預設為ALL。 296 例:SELECT ALL FirstName,LastName 297 FROM Employees 298 (2) DISTINCT 如果有多個記錄的選擇欄位的數據相同,只返回一個。 299 (3) DISTINCTROW 如果有重覆的記錄,只返回一個 300 (4) TOP顯示查詢頭尾若幹記錄。也可返回記錄的百分比,這是要用TOP N PERCENT子句(其中N 表示百分比) 301 例:返回%定貨額最大的定單 302 SELECT TOP 5 PERCENT* 303 FROM [ Order Details] 304 ORDER BY UnitPrice*Quantity*(1-Discount) DESC 305 3 用AS 子句為欄位取別名 306 如果想為返回的列取一個新的標題,或者,經過對欄位的計算或總結之後,產生了一個新的值,希望把它放到一個新的列里顯示,則用AS保留。 307 例:返回FirstName欄位取別名為NickName 308 SELECT FirstName AS NickName ,LastName ,City 309 FROM Employees