mysql 常用命令用法總結指令碼之家整理版

來源:互聯網
上載者:User

一、啟動與退出
1、進入MySQL:啟動MySQL Command Line Client(MySQL的DOS介面),直接輸入安裝時的密碼即可。此時的提示符是:mysql>
2、退出MySQL:quit或exit
二、庫操作
1、、建立資料庫
命令:create database <資料庫名>
例如:建立一個名為xhkdb的資料庫
mysql> create database xhkdb;
2、顯示所有的資料庫
命令:show databases (注意:最後有個s)
mysql> show databases;
3、刪除資料庫
命令:drop database <資料庫名>
例如:刪除名為 xhkdb的資料庫
mysql> drop database xhkdb;
4、串連資料庫
命令: use <資料庫名>
例如:如果xhkdb資料庫存在,嘗試存取它:
mysql> use xhkdb;
工具提示:Database changed
5、當前選擇(串連)的資料庫
mysql> select database();
6、當前資料庫包含的表資訊:
mysql> show tables; (注意:最後有個s)

三、表操作,操作之前應串連某個資料庫
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、擷取表結構
命令: desc 表名,或者show columns from 表名

mysql> desc MyClass;
mysql> show columns from MyClass;
3、刪除表
命令:drop table <表名>
例如:刪除表名為 MyClass 的表
mysql> drop table MyClass;
4、插入資料
命令:insert into <表名> [( <欄位名1>[,..<欄位名n > ])] values ( 值1 )[, ( 值n )]
例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為1的名為Tom的成績為96.45, 編號為2 的名為Joan 的成績為82.99, 編號為3 的名為Wang 的成績為96.5.
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
5、查詢表中的資料
1)、查詢所有行
命令: select <欄位1,欄位2,...> from < 表名 > where < 運算式 >
例如:查看錶 MyClass 中所有資料
mysql> select * from MyClass;
2)、查詢前幾行資料
例如:查看錶 MyClass 中前2行資料
mysql> select * from MyClass order by id limit 0,2;
6、刪除表中資料
命令:delete from 表名 where 運算式
例如:刪除表 MyClass中編號為1 的記錄
mysql> delete from MyClass where id=1;
7、修改表中資料:update 表名 set 欄位=新值,… where 條件
mysql> update MyClass set name='Mary' where id=1;
7、在表中增加欄位:
命令:alter table 表名 add欄位 類型 其他;
例如:在表MyClass中添加了一個欄位passtest,類型為int(4),預設值為0
mysql> alter table MyClass add passtest int(4) default '0'
8、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改為YouClass
mysql> rename table MyClass to YouClass;

更新欄位內容
update 表名 set 欄位名 = 新內容
update 表名 set 欄位名 = replace(欄位名,'舊內容','新內容');

文章前面加入4個空格
update article set content=concat('  ',content);

欄位類型
1.INT[(M)] 型: 正常大小整數類型
2.DOUBLE[(M,D)] [ZEROFILL] 型: 正常大小(雙精密)浮點數字類型
3.DATE 日期類型:支援的範圍是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式來顯示DATE值,但是允許你使用字串或數字把值賦給DATE列
4.CHAR(M) 型:定長字串類型,當儲存時,總是是用空格填滿右邊到指定的長度
5.BLOB TEXT類型,最大長度為65535(2^16-1)個字元。
6.VARCHAR型:變長字串類型
mysqldump 命令的使用

備份和匯出資料庫
mysqldump -h database_ip -u Username -p --opt databasename > backup-file.sql
只匯出資料庫表結構
mysqldump -h database_ip -d -u Username -p databasename >database_structure.sql
只匯出資料庫中的某個表
mysqldump --opt --add-drop-table -u Username -p databasename tablename > dump.sql
如果不想手工輸入密碼 請使用--password 參數
mysqldump -h database_ip -u Username --password=123456 --opt databasename > backup-file.sql
mysqldump -h database_ip -d -u Username --password=123456 databasename >database_structure.sql

mysql 命令使用
將查詢結果儲存到檔案
select title from book into outfile '/tmp/outfile.txt';
尋找表中多餘的重複記錄,重複記錄是根據某個欄位(peopleId)來判斷
select * from people where peopleId in (select peopleId from people group by
peopleId having count(peopleId) > 1);
查詢表中不重複記錄(排除重複記錄)
select * from phome_ecms_wma where title in (select distinct title from phome_ecms_wma);
刪除表中重複記錄,重複記錄是根據某個欄位(title)來判斷
select *,count(distinct title) INTO OUTFILE '/tmp/table.bak' from phome_ecms_wma group by title;
delete from phome_ecms_wma;
LOAD DATA INFILE '/tmp/table.bak' REPLACE INTO TABLE phome_ecms_wma character set utf8;
查詢資料庫當前編碼
mysql> show variables like "character_set%";
修改表欄位類型
mysql> alter table table_name change last_action last_action datetime NOT NULL default '0000-00-00 00:00:00';
給表添加一個新欄位
mysql> ALTER TABLE host ADD ks_mac VARCHAR(100);
從表中刪除一個欄位
mysql> ALTER TABLE table_name DROP field_name;
重新命名表
mysql>alter table t1 rename t2;
給欄位加索引
mysql> alter table tablename add index 索引名 (欄位名1[,欄位名2 …]);
mysql> alter table tablename add index emp_name (name);
加主關鍵字的索引
mysql> alter table tablename add primary key(id);
加唯一限制條件的索引
mysql> alter table tablename add unique emp_name2(cardnumber);
刪除某個索引
mysql>alter table tablename drop index emp_name;
遠端存取mysql 設定
mysql> GRANT ALL PRIVILEGES ON database_test.* to root@192.168.1.9 IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES;

1、使用SHOW語句找出在伺服器上當前存在什麼資料庫
mysql> show databases;
2、建立一個資料庫MYSQLDATA
mysql> create database mydata;
3、選擇你所建立的資料庫
mysql> use mydata;
4、查看現在的資料庫中存在什麼表
mysql> show tables;
5、建立一個資料庫表
mysql> create table mytable (name varchar(20), sex char(1));
6、顯示表的結構:
mysql> describe mytable;
7、往表中加入記錄
mysql> insert into mytable values ("test","m");
8、用文本方式將資料裝入資料庫表中(例如 d:\mysql.txt)
mysql> load data local infile "d:/mysql.txt" into table mytable;
9、匯入.sql檔案命令(例如 d:\mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10、刪除表
mysql>drop table mytable;
11、清空表
mysql>delete from mytable;
12、更新表中資料
mysql>update mytable set sex="f" where name=test;
剛安裝好的MySQL包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對於一些重要的應用我們應將安全性儘可能提高,在這裡應把匿名帳戶刪除、root帳戶設定密碼,可用如下命令進行:
=======================================
mysql> use mysql;
mysql> delete from User where User="";
mysql> update User set Password=PASSWORD(newpassword) where User=root;
=======================================
如果要對使用者所用的登入終端進行限制,可以更新User表中相應使用者的Host欄位,在進行了以上更改後應重新啟動資料庫服務,此時登入時可用如下類似命令:
=======================================
shell> mysql -uroot -p;
shell> mysql -uroot -pnewpassword;
shell> mysql mydb -uroot -p;
shell> mysql mydb -uroot -pnewpassword;
=======================================
上面命令參數是常用參數的一部分,詳細情況可參考文檔。此處的mydb是要登入的資料庫的名稱。
在進行開發和實際應用中,使用者不應該只用root使用者進行串連資料庫,雖然使用root使用者進行測試時很方便,但會給系統帶來重大安全隱患,也不利於管理技術的提高。我們給一個應用中使用的使用者賦予最恰當的資料庫許可權。如一個只進行資料插入的使用者不應賦予其刪除資料的許可權。MySQL的使用者管理是通過User表來實現的,添加新使用者常用的方法有兩個,一是在User表插入相應的資料行,同時設定相應的許可權;二是通過grant命令建立具有某種許可權的使用者。其中grant的常用用法如下:
================================================================
mysql> grant all on mydb.* to NewUserName@HostName identified by "password" ;
mysql> grant usage on *.* to NewUserName@HostName identified by "password";
mysql> grant select,insert,update on mydb.* to NewUserName@HostName identified by "password";
mysql> grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";
================================================================
若要給此使用者賦予他在相應對象上的許可權的管理能力,可在grant後面添加with grant option選項。而對於用插入User表添加的使用者,Password欄位應用password函數進行更新加密,以防不軌之人竊看密碼。對於那些已經不用的使用者應給予清除,許可權過界的使用者應及時回收許可權,回收許可權可以通過更新User表相應欄位,也可以使用revoke操作。以下是常用許可權的解釋:
=============================================
全域系統管理權限
FILE:在MySQL伺服器上讀寫檔案。
PROCESS:顯示或殺死屬於其它使用者的服務線程。
RELOAD:重載存取控制表,重新整理日誌等。
SHUTDOWN:關閉MySQL服務。
資料庫/資料表/資料列許可權
ALTER:修改已存在的資料表(例如增加/刪除列)和索引。
CREATE:建立新的資料庫或資料表。
DELETE:刪除表的記錄。
DROP:刪除資料表或資料庫。
INDEX:建立或刪除索引。
INSERT:增加表的記錄。
SELECT:顯示/搜尋表的記錄。
UPDATE:修改表中已存在的記錄。
特別的許可權
ALL:允許做任何事(和root一樣)。
USAGE:只允許登入--其它什麼也不允許做。
=============================================
MySQL常用操作基本操作,以下都是MySQL5.0下測試通過首先說明下,記住在每個命令結束時加上;(分號)
1.匯出整個資料庫
mysqldump -u 使用者名稱 -p --default-character-set=latin1 資料庫名 > 匯出的檔案名稱(資料庫預設編碼是latin1)
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.匯出一個表
mysqldump -u 使用者名稱 -p 資料庫名 表名> 匯出的檔案名稱
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.匯出一個資料庫結構
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 沒有資料 –add-drop-table 在每個create語句之前增加一個drop table
4.匯入資料庫
常用source 命令
進入mysql資料庫控制台,
如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為指令檔(如這裡用到的.sql)
mysql>source d:wcnc_db.sql

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.