MySQL數據庫操作基礎

 

查看錶詳細定義

Show create table tablename \G

*\G是爲了美觀

 

修改表名

Alter table oldtablename rename newtable

 

增加字段

在表最後添加字段:

Alter table tablename add 屬性名 屬性類型

在表第一個位置增加字段:

Alter table tablename add 屬性名 屬性類型 FIRST

在表指定字段後添加:

Alter table tablename add 屬性名 屬性類型 after 屬性名

修改字段數據類型:

Alter table tablename modify 屬性名 屬性類型

修改字段名字:

Alter table tablename change 舊屬性名 新屬性名 舊數據類型

同時修改字段的名字和屬性:

Alter table tablename change 舊屬性名 新屬性名 新數據類型

修改字段順序:

Alter table tablename modify 屬性名數據類型 FIRSTafter 屬性名2

 

完整性約束:

 

關鍵字

含義

備註

Not null

非空

 

default

默認值

 

Unique key

值不可重複

 

Primary key

主鍵

聯合主鍵:create table tablename {

屬性名 數據類型

CONSTRAINT約束名 primary key(屬性名,屬性名)

};

Auto_increment

自增長

 

Foreign key

外鍵

Create table tablename{

屬性名 數據類型

CONSTRAINT 外鍵名 foreign key(屬性名)references 表名(屬性名)

 

 

觸發器

1.一條執行語句的觸發器

Create trigger trigger_name

Before|After trigger_event

ON table_name for each row trigger_stmt

 

Trigger_event:delete語句,insert語句,update語句

 

2.多條執行語句的觸發器

Create trigger trigger_name

Before|After trigger_event

ON table_name for each row 

BEGIN

trigger_stmt

END

實例:

DELIMITER $$

Create trigger tri_diary

After insert

ON t_dept for each row

BEGIN

Insert into t_diary values(NULL,an,now());

Insert into t_diary values(NULL,sn,now());

END

$$

DELIMITER ;

 

 

多表數據查詢

1.並:把具有相同字段數目和字段類型的表合併到一起

2.笛卡兒積:沒有連接條件表關係返回的結果。笛卡兒積表字段數爲表1+2字段數,記錄數爲表1*2記錄數

3.內連接:表關係的笛卡兒積數據記錄中,保留表關係中所有匹配的數據記錄,捨棄不匹配的數據記錄。

4.外連接:在表關係的笛卡兒積數據記錄中,保留表關係中所有匹配的數據記錄,而且還會保留部分不匹配的數據記錄。

 

存儲過程和函數

1.創建存儲過程

Create procedure procedure_name([procedure_paramter[,...]])

[characteristic...] routine_body

 

Procedure_paramter:存儲過程的參數。[IN|OUT|INOUT]

Characteristic:存儲過程的特性

2.創建函數語法

Create function function_namefunction_paramter[,...]

[characteristic] routine_body

 

實例:

DELIMITER $$

Create function func_sal(empno INT(11))

Return double(10,2)

COMMENT 查詢某個員工工資

BEGIIN

Return (select sal from t_employee where t_employee.empno=empno);

END$$

DELIMITER ;

 

數據庫連接和用戶操作

連接mysql服務器的完整dos命令如下:

Mysql –h hostname|hostip –p port –u username –p databasename –e sql語句

實例:通過root用戶登陸到mysql服務器的數據庫company中,具體命令如下:

Mysql –h 127.0.0.1 –u root –p company

 

創建普通用戶賬戶2種方式:

Create user username identified by [password]

Create user “cjcong”@”localhost” identified by “123”;

 

Grant priv_type on databasename.tablename to username indetified by [password]

Grant select on company.dept to ‘cjcong’@’localhost’ identified by ‘123’;

 

對用戶授權

Grant priv on database.datatable to user identified by ‘password’ with with-option

With-option值:grant option被授權的用戶可以將權限授予其他用戶。

 

查看用戶所具有的權限:

Show grants for user

 

回收權限

Revoke priv on database.datatable from user identified by ‘password’

 

回收全部權限

Revoke all privileges,grant option from user identified by ‘password’

 

啓動查詢日誌,修改my.ini文件

[mysqld]

Log [=dir\filename]

 

慢查詢日誌

[mysqld]

Log-slow-queries[=dir\filename]

Long_query_time=n

N爲參照時間,默認10秒。

 

備份數據庫

 

備份一個數據庫

Mysqldump –u username –p dbname table1 table2 >backupname.sql

 

備份多個數據庫

Mysqldump –uusername –p –databases dbname1 dbname2 >backupname.sql

 

備份所有數據庫

Mysqldump –u username –p –all –databases >backupname.sql

 

數據還原

Mysqldump –u username –p [dbname] <backupname.sql

 

數據庫中表導出成文本文件

Mysql –u root –ppassword –e “select file-name from tablename” dbname>file_name

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