mysql 常用命令

1、mysql的連接:

格式:mysql -h 主機地址 -uroot -p 密碼      本地主機:mysql -uroot -p回車,輸入密碼

2、修改密碼:

格式:mysqladmin -u用戶名 -p舊密碼 password新密碼

給root添加個密碼:mysqladmin -uroot password 123456

修改root密碼爲 111111  :mysqladmin -uroot -p123456 password111111

3、增加用戶

格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by "密碼";

增加一個test用戶,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限:

grant select,insert,update,delete on *.* to [email=test@"%]test@"%[/email] identified by "abc"

這樣就添加了一個對所有數據庫都有操作權限,並且可以在任何主機登錄的mysql用戶,但是這樣做是非常危險的,一般我們會把mysql用戶的權限限制在某個數據庫內,並且只運行通過本地(localhost)登錄

grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by "abc";

4、對數據庫進行操作:

創建數據庫:create database <數據庫名>

創建數據庫 mydb1,併爲數據庫分配數據庫用戶 test1:

create database mydb1;

grant select,insert,update,delete,create,drop,alter on mydb1.* to test1@localhost identified by "abc";

顯示數據庫:show databases;

刪除數據庫:drop database <數據庫名>;

選擇要使用的數據庫:use <數據庫名>;

顯示數據庫相關信息:

select database(); ----------------------顯示當前正在使用的數據庫名稱

select version(); ------------------------顯示當前mysql的版本

select now();  ----------------------------顯示當前時間

select concat("aaaa","bbbb"); --------------------------------字符串連接 輸出 aaaabbbb

5、對數據庫表的操作:

創建數據庫表:命令:create table <表名>(<字段1> <類型1>[<字段n> <類型n>]);

創建一個 myclass 的表:


create table myclass(

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

`sex` int(4) NOT NULL DEFAULT '0',

`degree` double(16,2) DEFAULT NULL,

PRIMARY KEY('id')

) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

獲取表的結構:命令:desc 表名  或者  show columns from 表名

使用MySQL數據庫desc 表名時,我們看到Key那一欄,可能會有4種值,即' ','PRI','UNI','MUL'。
1. 如果Key是空的, 那麼該列值的可以重複, 表示該列沒有索引, 或者是一個非唯一的複合索引的非前導列;
2. 如果Key是PRI,  那麼該列是主鍵的組成部分;
3. 如果Key是UNI,  那麼該列是一個唯一值索引的第一列(前導列),並別不能含有空值(NULL);
4. 如果Key是MUL,  那麼該列的值可以重複, 該列是一個非唯一索引的前導列(第一列)或者是一個唯一性索引的組成部分但是可以含有空值NULL。

如果對於一個列的定義,同時滿足上述4種情況的多種,比如一個列既是PRI,又是UNI,那麼"desc 表名"的時候,顯示的Key值按照優先級來顯示 PRI->UNI->MUL。那麼此時,顯示PRI。

一個唯一性索引列可以顯示爲PRI,並且該列不能含有空值,同時該表沒有主鍵。
一個唯一性索引列可以顯示爲MUL, 如果多列構成了一個唯一性複合索引,因爲雖然索引的多列組合是唯一的,比如ID+NAME是唯一的,但是沒一個單獨的列依然可以有重複的值,只要ID+NAME是唯一的即可。

刪除表:命令:drop table <表名稱>

插入表:命令: insert into <表名> ([字段1],[字段n])values ("<值1>","<值n>");      注意:insert into每次只能向表中插入一條記錄。

查詢表:select [字段1],[字段2] from <表名> where <條件> limit 5 | 0,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;

select一般配合where使用,以查詢更精確更復雜的數據。

刪除表中數據:命令格式:delett from <表名> where <條件表達式>

修改表中數據:命令格式:update <表名> set  字段=“新值” where <條件表達式>;   update MyClass set name='Mary' where id=1;

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

UPDATE語法可以用新值更新原有錶行中的各列。SET子句指示要修改哪些列和要給予哪些值。WHERE子句指定應更新哪些行。如果沒有WHERE子句,則更新所有的行。如果指定了ORDER BY子句,則按照被指定的順序對行進行更新。LIMIT子句用於給定一個限值,限制可以被更新的行的數目。

對字段添加索引:

添加index索引:alter table 表名 add index 索引名 (字段名1[,字段名2 …]);  alter table myclass add index emp_name(“name”);

添加unique索引:alter table 表名 add unique 索引名(字段名);  alter table myclass add unique emp_name2(”name“);

添加主鍵索引:alter table 表名 add primary key  ("字段名"); alter table myclass add primary key ("id");

刪除索引: alter table 表名 drop index 索引名; alter table myclass drop index emp_name2;

增加字段:alter table 表名 add field_name field_type;

修改字段名稱及類型:alter table 表名 change old_field_name new_field_name field_type;

刪除字段:  alter table 表名 drop field_name;

對數據表進行重命名:命令格式:rename table 原表名 to 新表名;

MyClass名字更改爲YouClass:rename table MyClass to YouClass;

當你執行 RENAME 時,你不能有任何鎖定的表或活動的事務。你同樣也必須有對原初表的 ALTER 和 DROP 權限,以及對新表的 CREATE 和 INSERT 權限。

如果在多表更名中,MySQL 遭遇到任何錯誤,它將對所有被更名的表進行倒退更名,將每件事物退回到最初狀態。 

6、數據庫備份:

導出整個數據庫(導出的數據庫默認存在mysql/bin目錄下):

mysqldump -u 用戶名 -p 密碼  數據庫名 > 導出的文件名; mysqldump -u root -p 123456 database_name > outfile_name.sql;

導出一個表:

mysqldump -u 用戶名 -p 密碼  數據庫名  表名 > 導出的文件名;  mysqldump -u root -p 123456  database_name  table_name > outfile_name.sql

將數據庫 /home/data/mysql 目錄下的 數據庫 aaa 備份到 /home/data/mysqlbak 目錄下,文件名爲 aaa_bak.sql

[root@test1 root]# cd /home/data/mysql

[root@test1 root]# mysqldump -u root -p 123456 aaa > /home/data/mysqlbak/aaa_bak.sql;

mysql 數據庫文件恢復:

[root@test1 root]# cd /home/data/mysql

[root@test1 root]#mysql -u root -p aaa< /home/data/mysqlbak/aaa_bak.sql
Enter password:在這裏輸入密碼 


發佈了31 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章