MYSQL資料庫常用命令

xie仗劍天涯發表於2016-12-26

1、linux 安裝資料庫

# yum install mysql* -y

2、啟動資料庫/關閉資料庫/重啟資料庫/檢視資料庫狀態

# /etc/init.d/mysqld start
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld restart
# /etc/init.d/mysqld status

3、開機啟動資料庫

# chkconfig mysql on

4、配置修改資料庫root密碼

# mysqladmin -uroot password "123456"
或:
mysql> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123456');

5、使用root使用者登入資料庫

# mysql -uroot -p123456

6、建立資料庫xiessdb

mysql> CREATE DATABASE xiessdb;

注:mysql語句中";"表示結束,也可以用"\g"或者"\G"表示,"\g"與";"相同,"\G"可以顯示讓結果更加直觀

7、使用show檢視資料庫xiess

mysql> show DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
| xiessdb            |
+--------------------+
4 rows in set (0.00 sec)

8、刪除資料庫xiessdb

mysql> DROP DATABASE xiessdb;

9、檢視MYSQL資料庫支援的儲存引擎型別

mysql> show ENGINES;
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
+------------+---------+------------------------------------------------------------+--------------+------+------------+

engine引數是儲存引擎名稱;support引數是指mysql是否支援該類引擎;comment引數是指對該引擎的評論;transactions參數列示是否支援事件處理;savepoints參數列示是否支援儲存點,以便事務回滾到儲存點。 另一個show語句查詢支援的儲存引擎資訊。

mysql> show VARIABLES LIKE 'have%';

使用show語句查詢預設儲存引擎

mysql> show VARIABLES LIKE 'storage_engine';

修改預設的儲存引擎為InnoDB

修改my.cnf配置檔案,在[mysqld]後面新增

default-storage-engine=InnoDB

重啟資料庫

10、資料庫表

表是資料庫儲存資料的基本單位。一個表包含若干個欄位或紀錄。

注:在建立表時,首先要選擇資料庫,選擇資料庫的語句為"use 資料庫名"。

mysql> use xiessdb;

在xiessdb資料庫下建立名為mydb01的表

mysql> CREATE TABLE mydb01(id INT,name VARCHAR(20),sex BOOLEAN);

其中,id欄位表示整形;name欄位表示字串型;sex欄位表示布林型。

刪除表語法,例:刪除表mydddd0

mysql> DROP TABLE mydddd0;

設定表的主鍵。主鍵是表的一個特殊欄位,該欄位能唯一地標識該表中的每條資訊。

主鍵是由一個欄位構成,可以直接在該欄位的後面加上PRIMARY KEY 來設定,語法規則:屬性名 資料型別 PRIMARY KEY

新建表mydb02,設定stu_id 為主鍵

mysql> CREATE TABLE mydb02(stu_id INT PRIMARY KEY,stu_name VARCHAR(20),stu_sex BOOLEAN);

多欄位主鍵。主鍵是由多個屬性組合而成,在屬性定義完後統一設定主鍵。語法規則:PRIMARY KEY(屬性名1,屬性名2,...)

新建表mydb03,設定stu_id,course_id為主鍵

mysql> CREATE TABLE mydb03(stu_id INT,course_id INT,grade FLOAT,PRIMARY KEY(stu_id,course_id));

設定表的外來鍵。外來鍵是表的特殊欄位,作用是建立該表d與其父表的關聯關係。原則是依賴存在父表的主鍵,外來鍵可以是空值。基本語法規則:CONSTRAINT 別名 FOREIGN KEY(屬性1.1,屬性1.2....)PRFERENCES 表名(屬性2.1,屬性2.2....)

設定表的非空約束。非空性是指欄位的值不能為空值(NULL) 設定非空約束的基本語句規則是:屬性名 資料型別 NOT NULL

mysql> CREATE TABLE mydb04(id INT NOT NULL PRIMARY KEY,name VARCHAR(20) NOT NULL);

設定表的唯一性約束。唯一性約束是指所有紀錄中該欄位的值不能重複出現。唯一性約束的基本語法規則是:屬性名 資料型別 UNIQUE

mysql> CREATE TABLE mydb05(id INT PRIMARY KEY,stu_id INT UNIQUE,name VARCHAR(20) NOT NULL);

設定表的屬性值自動增加。AUTO_INCREMENT是mysql資料庫中的一個特殊的約束條件,用於為表中插入的新紀錄自動生成唯一的ID。預設情況下,該欄位的值是從1開始增長。基本語法規則是:屬性名 資料型別 AUTO_INCREMENT

mysql> CREATE TABLE mydb06(id INT PRIMARY KEY AUTO_INCREMENT,stu_id INT UNIQUE,name VARCHAR(20) NOT NULL);

設定表屬性的預設值。預設值是通過DEFAULT關鍵字來設定,基本語法規則是:屬性名 資料型別 DEFAULT 預設值

二、檢視錶結構

1、檢視錶結構的語句包括DESCRIBE語句和SHOW CREATE TABLE語句。DESCRIBE語句可以查詢表的基本定義。包括欄位名、欄位資料型別、是否為主鍵和預設值等。基本語法是:DESCRIBE 表名;

mysql> DESCRIBE mydb05;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| stu_id | int(11)     | YES  | UNI | NULL    |       |
| name   | varchar(20) | NO   |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

2、檢視錶詳細結構語句SHOW CREATE TABLE。該語句可以檢視錶的欄位名、欄位的資料型別、完整性約束條件等資訊,還可以檢視錶預設的儲存引擎和字元編碼。基本語法是:SHOW CREATE TABLE 表名;

mysql> SHOW CREATE TABLE mydb05;
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                                                                                                   |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mydb05 | CREATE TABLE `mydb05` (
  `id` int(11) NOT NULL,
  `stu_id` int(11) DEFAULT NULL,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `stu_id` (`stu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

三、修改表名

表名是資料庫中唯一的。通過語句ALTER TABLE 實現。基本語法是:ALTER TABLE 舊錶名 RENAME [TO] 新表名;

mysql> ALTER TABLE mydb06 RENAME mysqldb006;

ALTER TABLE 語句也可以修改欄位的資料型別,基本語法是:ALTEL TABLE 表名 MODIFY 屬性名 資料型別;

ALTEL TABLE 語句也可以修改表的欄位名,基本語法是:ALTEL TABLE 表名 CHANGE 舊屬性名 新屬性名 新資料型別;

ALTEL TABLE 語句也可以增加欄位,基本語法是:ALTEL TABLE 表名 ADD 屬性名1 資料型別 [完整性約束條件] [FIRST | AFTER 屬性名2];

mysql> ALTER TABLE mydb06 ADD phone VARCHAR(20);
mysql> ALTER TABLE mydb06 ADD age INT(4) NOT NULL;

注:預設情況下,新增欄位都在表的最後一個欄位,加上FIRST引數,可將新增欄位設定在表的第一個欄位。指定位置增加欄位,加上"AFTER 屬性名2" 引數,則新增欄位插入在"屬性名2"後面。

ALTEL TABLE 語句也可以刪除表的欄位,基本語法是:ALTEL TABLE 表名 DROP 屬性名;

ALTEL TABLE 語句修改欄位的排列位置,基本語法是:ALTEL TABLE 表名 MODIFY 屬性名1 資料型別 FIRST | AFTER 屬性名2;

ALTEL TABLE 語句更改表的儲存引擎,基本語法是:ALTEL TABLE 表名 ENGINE=儲存引擎名;

mysql> ALTER TABLE mydb06 ENGINE=MyISAM;

ALTEL TABLE 語句刪除表的外來鍵約束,基本語法是:ALTEL TABLE 表名 DROP FOREIGN KEY 外來鍵別名;

四、刪除表

mysql 中使用DORP TABLE 語句刪除表,基本語法是:DROP TABLE 表名;

mysql> DROP TABLE mydb06;

注:刪除被其他表關聯的父表。先刪除其他表的約束,再刪除父表。

相關文章