標籤:mysq 自動產生 proc section man ons 開始 關聯關係 儲存引擎
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;
註:刪除被其他表關聯的父表。先刪除其他表的約束,再刪除父表。
MYSQL資料庫常用命令