最近開發新項目,數據庫從Sqlite切換到了MySQL,就想整理一下MySQL常用的命令。
導入導出
1.導出整個數據庫
mysqldump -u 用戶名 -p –default-character-set=utf-8 數據庫名 > 導出的文件名
mysqldump -u root -p sop> sop.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.導入數據庫
A:常用source 命令
進入mysql數據庫控制檯,
如mysql -u root -p
mysql>use 數據庫
然後使用source命令,後面參數爲腳本文件(如這裏用到的.sql)
mysql>source wcnc_db.sql
B:使用mysqldump命令
mysqldump -u username -p dbname < filename.sql
C:使用mysql命令
mysql -u username -p -D dbname < filename.sql
D:也可以用文本方式將數據裝入數據庫表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt”INTO TABLE MYTABLE;
啓動與退出
1.進入MySQL
啓動MySQL Command Line Client(MySQL的DOS界面),直接輸入安裝時的密碼即可:
mysql -uroot -p
此時的提示符是:mysql>
2.退出MySQL
mysql> quit或exit
庫操作
1.創建數據庫
命令:create database <數據庫名>
例如:建立一個名爲sqlroad的數據庫 mysql> create database sqlroad;
2.顯示所有的數據庫
命令:show databases (注意:最後有個s)
mysql> show databases;
3.刪除數據庫
命令:drop database <數據庫名>
例如:刪除名爲 sqlroad的數據庫 mysql> drop database sqlroad;
4.連接數據庫
命令:use <數據庫名>
例如:如果sqlroad數據庫存在,嘗試存取它: mysql> use sqlroad;
屏幕提示:Database changed
5.查看當前使用的數據庫
命令:mysql> select database();
6.當前數據庫包含的表信息
命令:mysql> show tables; (注意:最後有個s)
7.mysql數據庫的授權
mysql>grant select,insert,delete,create,drop
on *.* (或test.*/user.*/..)
to 用戶名@localhost
identified by ‘密碼’;
如:新建一個用戶帳號以便可以訪問數據庫,需要進行如下操作:
mysql> grant usage
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.15 sec)
此後就創建了一個新用戶叫:testuser,這個用戶只能從localhost連接到數據庫並可以連接到test 數據庫。
下一步,我們必須指定testuser這個用戶可以執行哪些操作:
mysql> GRANT select, insert, delete,update
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.00 sec)
此操作使testuser能夠在每一個test數據庫中的表執行SELECT,INSERT和DELETE以及UPDATE查詢操作。
現在我們結束操作並退出MySQL客戶程序:
mysql> exit`
表操作
操作之前應連接某個數據庫
1.建表
命令:create table <表名> ( <字段名> <類型> [,..<字段名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 ’′,
degree double(16,2));`
2.獲取表結構
命令:desc 表名,或者show columns from 表名
mysql>DESCRIBE MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
3.刪除表
命令:drop table <表名>
例如:刪除表名爲 MyClass 的表
mysql> drop table MyClass;`
4.插入數據
命令:insert into <表名> [( <字段名>[,..<字段名n> ])] values ( 值 )[, ( 值n )]
例如,往表 MyClass中插入二條記錄,
這二條記錄表示:編號爲的名爲Tom的成績爲.45, 編號爲 的名爲Joan 的成績爲.99,編號爲 的名爲Wang 的成績爲.5.
mysql> insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59);`
5.查詢表中的數據
查詢所有行
命令:select <字段,字段,...> from < 表名 > where < 表達式 >
例如:查看錶 MyClass 中所有數據
mysql> select * from MyClass;
查詢前幾行數據
例如:查看錶 MyClass 中前行數據
mysql> select * from MyClass order by id limit 0,2;
或者:
mysql> select * from MyClass limit 0,2;`
6.刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表 MyClass中編號爲 的記錄
mysql> delete from MyClass where id=1;`
7.修改表中數據
命令:update 表名 set 字段=新值,…where 條件
mysql> update MyClass set name=’Mary’where id=1;`
8.在表中增加字段:
命令:alter table 表名 add字段 類型 其他;
例如:在表MyClass中添加了一個字段passtest,類型爲int(4),默認值爲 1
mysql> alter table MyClass add passtest int(4) default 1
9.更改表名
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改爲YouClass
mysql> rename table MyClass to YouClass;
10.更新字段內容
update 表名 set 字段名 = 新內容
update 表名 set 字段名 = replace(字段名,’舊內容’, 新內容’)
update article set content=concat(‘ ’,content);
11.刪除清空全表
刪除表 mysql>drop TABLE MYTABLE;
清空表 mysql>delete from MYTABLE;
數據庫字段類型
1.INT[(M)] 型:正常大小整數類型
2.DOUBLE[(M,D)] [ZEROFILL] 型:正常大小(雙精密)浮點數字類型
3.DATE 日期類型:支持的範圍是-01-01到-12-31。
MySQL以YYYY-MM-DD格式來顯示DATE值,但是允許你使用字符串或數字把值賦給DATE列
4.CHAR(M) 型:定長字符串類型,當存儲時,總是是用空格填滿右邊到指定的長度
5.BLOB TEXT類型,最大長度爲(2^16-1)個字符。
6.VARCHAR型:變長字符串類型