【转】MySQL常用命令总结
?
http://blog.csdn.net/qq_33850438/article/details/52144686
MySQL常用的基本操作,以下都是MySQL 5.0下測(cè)試通過(guò)首先說(shuō)明下,記住在每個(gè)命令結(jié)束時(shí)加上;(分號(hào))
1. 導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)
mysqldump -u 用戶名 -p --default-character-set=latin1 數(shù)據(jù)庫(kù)名 > 導(dǎo)出的文件名(數(shù)據(jù)庫(kù)默認(rèn)編碼是latin1)
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.導(dǎo)出一個(gè)表
mysqldump -u 用戶名 -p 數(shù)據(jù)庫(kù)名表名> 導(dǎo)出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.導(dǎo)出一個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 沒(méi)有數(shù)據(jù)–add-drop-table 在每個(gè)create語(yǔ)句之前增加一個(gè)drop table
4.導(dǎo)入數(shù)據(jù)庫(kù)
常用source 命令
進(jìn)入mysql數(shù)據(jù)庫(kù)控制臺(tái),
如mysql -u root -p
mysql>use 數(shù)據(jù)庫(kù)
然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.sql)
mysql>source d:\wcnc_db.sql
一、啟動(dòng)與退出
1、進(jìn)入MySQL:啟動(dòng)MySQL Command Line Client(MySQL的DOS界面),直接輸入安裝時(shí)的密碼即可。此時(shí)的提示符是:mysql>
2、退出MySQL:quit或exit
二、庫(kù)操作
1、、創(chuàng)建數(shù)據(jù)庫(kù)
命令:create database <數(shù)據(jù)庫(kù)名>
例如:建立一個(gè)名為xhkdb的數(shù)據(jù)庫(kù)
mysql> create database xhkdb;
2、顯示所有的數(shù)據(jù)庫(kù)
命令:show databases (注意:最后有個(gè)s)
mysql> show databases;
3、刪除數(shù)據(jù)庫(kù)
命令:drop database <數(shù)據(jù)庫(kù)名>
例如:刪除名為 xhkdb的數(shù)據(jù)庫(kù)
mysql> drop database xhkdb;
4、連接數(shù)據(jù)庫(kù)
命令: use <數(shù)據(jù)庫(kù)名>
例如:如果xhkdb數(shù)據(jù)庫(kù)存在,嘗試存取它:
mysql> use xhkdb;
屏幕提示:Database changed
5、當(dāng)前選擇(連接)的數(shù)據(jù)庫(kù)
mysql> select database();
6、當(dāng)前數(shù)據(jù)庫(kù)包含的表信息:
mysql> show tables; (注意:最后有個(gè)s)
三、表操作,操作之前應(yīng)連接某個(gè)數(shù)據(jù)庫(kù)
1、建表
命令:create table <表名> ( <字段名1> <類型1> [,..<字段名n> <類型n>]);
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default '0',
> degree double(16,2));
2、獲取表結(jié)構(gòu)
命令: desc 表名,或者show columns from 表名
mysql>DESCRIBEMyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
3、刪除表
命令:drop table <表名>
例如:刪除表名為 MyClass 的表
mysql> drop table MyClass;
4、插入數(shù)據(jù)
命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號(hào)為1的名為Tom的成績(jī)?yōu)?6.45, 編號(hào)為2 的名為Joan 的成績(jī)?yōu)?2.99,編號(hào)為3 的名為Wang 的成績(jī)?yōu)?6.5.
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
5、查詢表中的數(shù)據(jù)
1)、查詢所有行
命令: select <字段1,字段2,...> from < 表名 > where < 表達(dá)式 >
例如:查看表 MyClass 中所有數(shù)據(jù)
mysql> select * from MyClass;
2)、查詢前幾行數(shù)據(jù)
例如:查看表 MyClass 中前2行數(shù)據(jù)
mysql> select * from MyClass order by id limit 0,2;
6、刪除表中數(shù)據(jù)
命令:delete from 表名 where 表達(dá)式
例如:刪除表 MyClass中編號(hào)為1 的記錄
mysql> delete from MyClass where id=1;
7、修改表中數(shù)據(jù):update 表名 set 字段=新值,… where 條件
mysql> update MyClass set name='Mary' where id=1;
8、在表中增加字段:
命令:alter table 表名 add字段類型其他;
例如:在表MyClass中添加了一個(gè)字段passtest,類型為int(4),默認(rèn)值為0
mysql> alter table MyClass add passtest int(4) default '0'
9、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改為YouClass
mysql> rename table MyClass to YouClass;
更新字段內(nèi)容
update 表名 set 字段名 = 新內(nèi)容
update 表名 set 字段名 = replace(字段名,'舊內(nèi)容','新內(nèi)容');
文章前面加入4個(gè)空格
update article set content=concat('',content);
字段類型
1.INT[(M)] 型:正常大小整數(shù)類型
2.DOUBLE[(M,D)] [ZEROFILL] 型:正常大小(雙精密)浮點(diǎn)數(shù)字類型
3.DATE 日期類型:支持的范圍是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式來(lái)顯示DATE值,但是允許你使用字符串或數(shù)字把值賦給DATE列
4.CHAR(M) 型:定長(zhǎng)字符串類型,當(dāng)存儲(chǔ)時(shí),總是是用空格填滿右邊到指定的長(zhǎng)度
5.BLOB TEXT類型,最大長(zhǎng)度為65535(2^16-1)個(gè)字符。
6.VARCHAR型:變長(zhǎng)字符串類型
10.導(dǎo)入數(shù)據(jù)庫(kù)表
(1)創(chuàng)建.sql文件
(2)先產(chǎn)生一個(gè)庫(kù)如auction.c:mysqlbin>mysqladmin -u root -p creat auction,會(huì)提示輸入密碼,然后成功創(chuàng)建。
3)導(dǎo)入auction.sql文件
c:mysqlbin>mysql -u root -p auction < auction.sql。
通過(guò)以上操作,就可以創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù)auction以及其中的一個(gè)表auction。
6.修改數(shù)據(jù)庫(kù)
(1)在mysql的表中增加字段:
alter table dbname add column userid int(11) not null primary key auto_increment;
這樣,就在表dbname中添加了一個(gè)字段userid,類型為int(11)。
7.mysql數(shù)據(jù)庫(kù)的授權(quán)
mysql>grant select,insert,delete,create,drop
on *.* (或test.*/user.*/..)
to 用戶名@localhost
identified by '密碼';
如:新建一個(gè)用戶帳號(hào)以便可以訪問(wèn)數(shù)據(jù)庫(kù),需要進(jìn)行如下操作:
mysql> grant usage
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.15 sec)
此后就創(chuàng)建了一個(gè)新用戶叫:testuser,這個(gè)用戶只能從localhost連接到數(shù)據(jù)庫(kù)并可以連接到test 數(shù)據(jù)庫(kù)。下一步,我們必須指定testuser這個(gè)用戶可以執(zhí)行哪些操作:
mysql> GRANT select, insert, delete,update
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.00 sec)
此操作使testuser能夠在每一個(gè)test數(shù)據(jù)庫(kù)中的表執(zhí)行SELECT,INSERT和DELETE以及UPDATE查詢操作。現(xiàn)在我們結(jié)束操作并退出MySQL客戶程序:
mysql> exit
1:使用SHOW語(yǔ)句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫(kù):
mysql> SHOW DATABASES;
2:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)MYSQLDATA
mysql> Create DATABASE MYSQLDATA;
3:選擇你所創(chuàng)建的數(shù)據(jù)庫(kù)
mysql> USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時(shí)說(shuō)明操作成功!)
4:查看現(xiàn)在的數(shù)據(jù)庫(kù)中存在什么表
mysql> SHOW TABLES;
5:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表
mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:顯示表的結(jié)構(gòu):
mysql> DESCRIBE MYTABLE;
7:往表中加入記錄
mysql> insert into MYTABLE values ("hyq","M");
8:用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫(kù)表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
9:導(dǎo)入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:刪除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中數(shù)據(jù)
mysql>update MYTABLE set sex="f" where name='hyq';
以下是無(wú)意中在網(wǎng)絡(luò)看到的使用MySql的管理心得:
在Windows中MySql以服務(wù)形式存在,在使用前應(yīng)確保此服務(wù)已經(jīng)啟動(dòng),未啟動(dòng)可用net start mysql命令啟動(dòng)。而Linux中啟動(dòng)時(shí)可用“/etc/rc.d/init.d/mysqld start"命令,注意啟動(dòng)者應(yīng)具有管理員權(quán)限。
剛安裝好的MySql包含一個(gè)含空密碼的root帳戶和一個(gè)匿名帳戶,這是很大的安全隱患,對(duì)于一些重要的應(yīng)用我們應(yīng)將安全性盡可能提高,在這里應(yīng)把匿名帳戶刪除、 root帳戶設(shè)置密碼,可用如下命令進(jìn)行:
use mysql;
delete from User where User="";
update User set Password=PASSWORD('newpassword') where User='root';
如果要對(duì)用戶所用的登錄終端進(jìn)行限制,可以更新User表中相應(yīng)用戶的Host字段,在進(jìn)行了以上更改后應(yīng)重新啟動(dòng)數(shù)據(jù)庫(kù)服務(wù),此時(shí)登錄時(shí)可用如下類似命令:
mysql –u root -p;
mysql –u root –p newpassword;
mysql mydb –u root -p;
mysql mydb -uroot -pnewpassword;
上面命令參數(shù)是常用參數(shù)的一部分,詳細(xì)情況可參考文檔。此處的mydb是要登錄的數(shù)據(jù)庫(kù)的名稱。
在進(jìn)行開(kāi)發(fā)和實(shí)際應(yīng)用中,用戶不應(yīng)該只用root用戶進(jìn)行連接數(shù)據(jù)庫(kù),雖然使用root用戶進(jìn)行測(cè)試時(shí)很方便,但會(huì)給系統(tǒng)帶來(lái)重大安全隱患,也不利于管理技術(shù)的提高。我們給一個(gè)應(yīng)用中使用的用戶賦予最恰當(dāng)?shù)臄?shù)據(jù)庫(kù)權(quán)限。如一個(gè)只進(jìn)行數(shù)據(jù)插入的用戶不應(yīng)賦予其刪除數(shù)據(jù)的權(quán)限。MySql的用戶管理是通過(guò) User表來(lái)實(shí)現(xiàn)的,添加新用戶常用的方法有兩個(gè),一是在User表插入相應(yīng)的數(shù)據(jù)行,同時(shí)設(shè)置相應(yīng)的權(quán)限;二是通過(guò)GRANT命令創(chuàng)建具有某種權(quán)限的用戶。其中GRANT的常用用法如下:
grant all on mydb.* to NewUserName@HostName identified by "password" ;
grant usage on *.* to NewUserName@HostName identified by "password";
grant select,insert,update on mydb.* to NewUserName@HostName identified by "password";
grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";
若要給此用戶賦予他在相應(yīng)對(duì)象上的權(quán)限的管理能力,可在GRANT后面添加WITH GRANT OPTION選項(xiàng)。而對(duì)于用插入U(xiǎn)ser表添加的用戶,Password字段應(yīng)用PASSWORD 函數(shù)進(jìn)行更新加密,以防不軌之人竊看密碼。對(duì)于那些已經(jīng)不用的用戶應(yīng)給予清除,權(quán)限過(guò)界的用戶應(yīng)及時(shí)回收權(quán)限,回收權(quán)限可以通過(guò)更新User表相應(yīng)字段,也可以使用REVOKE操作。
下面給出本人從其它資料(www.cn-Java.com)獲得的對(duì)常用權(quán)限的解釋:
全局管理權(quán)限:
FILE: 在MySQL服務(wù)器上讀寫文件。
PROCESS: 顯示或殺死屬于其它用戶的服務(wù)線程。
RELOAD: 重載訪問(wèn)控制表,刷新日志等。
SHUTDOWN: 關(guān)閉MySQL服務(wù)。
數(shù)據(jù)庫(kù)/數(shù)據(jù)表/數(shù)據(jù)列權(quán)限:
Alter: 修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。
Create: 建立新的數(shù)據(jù)庫(kù)或數(shù)據(jù)表。
Delete: 刪除表的記錄。
Drop: 刪除數(shù)據(jù)表或數(shù)據(jù)庫(kù)。
INDEX: 建立或刪除索引。
Insert: 增加表的記錄。
Select: 顯示/搜索表的記錄。
Update: 修改表中已存在的記錄。
特別的權(quán)限:
ALL: 允許做任何事(和root一樣)。
USAGE: 只允許登錄--其它什么也不允許做。
Mysql插入中文變?yōu)槿珕?wèn)號(hào)???的問(wèn)題
1、檢查并修改mysql的my.ini的配置文
[mysql]
default-character-set=utf8
2、建立數(shù)據(jù)庫(kù)是要指定字符集
Create database mydb default character set utf8 collate utf8_general_ci;
3、建立數(shù)據(jù)表示也要指定字符集:
出問(wèn)題的命令:
CREATE TABLE IF NOT EXISTS `mydb` (
`username` varchar(64) NOT NULL,
`userid` int(11) NOT NULL,
)
ENGINE = InnoDB DEFAULT CHARSET = latin1;
正確的命令:
CREATE TABLE IF NOT EXISTS `mydb` (
`username` varchar(64) NOT NULL,
`userid` int(11) NOT NULL,
)
ENGINE = InnoDB DEFAULT CHARSET = utf8;
轉(zhuǎn)載于:https://www.cnblogs.com/MakeView660/p/7159020.html
總結(jié)
以上是生活随笔為你收集整理的【转】MySQL常用命令总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 烟雨江湖孟翔怎么加入队伍?
- 下一篇: 王宝强离婚案件惹怒几千万网名,你怎样看待