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;
注:刪除被其他表關聯的父表。先刪除其他表的約束,再刪除父表。