建立和操縱表

raindayinrain發表於2020-10-14

建立表

MySQL不僅用於表資料操縱,且還可用來執行資料庫和表的所有操作
包括表本身的建立和處理
兩種建立表的方法:
- 使用具有互動式建立和管理表的工具
- 表可直接用MySQL語句操縱
可使用SQL的CREATE TABLE

表建立基礎

為利用CREATE TABLE建立表,必須給出下列資訊:
- 新表的名字,在關鍵字CREATE TABLE後給出
- 表列的名字和定義,用逗號分隔
CREATE TABLE語句也可能會包括其他關鍵字或選項
但至少要包括表的名字和列的細節
CREATE TABLE customers
(
	cust_id int NOT NULL AUTO_INCREMENT,
	cust_name char(50) NOT NULL,
	cust_address char(50) NULL,
	cust_city char(50) NULL,
	cust_state char(5) NULL,
	cust_zip char(10) NULL,
	cust_country char(50) NULL,
	cust_contact char(50) NULL,
	cust_email char(255) NULL,
	PRIMARY KEY (cust_id) 
)ENGINE = InnoDB;

使用NULL值

允許NULL值的列也允許在插入行時,不給出該列的值
不允許NULL值的列,不接收該列沒值的行

主鍵再介紹

主鍵值必須唯一
多列時,多列組合值唯一
CREATE TABLE orderitems
(
	order_num int NOT NULL,
	order_item int NOT NULL,
	prod_id char(10) NOT NULL,
	quantity int NOT NULL,
	item_price decimal(8, 2) NOT NULL,
	PRIMARY KEY(order_num, order_item)
) ENGINE=InnoDB;
主鍵只能用不允許NULL的列
可在表建立時或之後定義

使用AUTO_INCREMENT

AUTO_INCREMENT告訴MySQL
本列每當增加一行時自動增量,可保證此列值的唯一
每個表值允許一個AUTO_INCREMENT列,且它必須被索引[使它稱為主鍵,可讓其自動被索引]
可使用last_insert_id()獲得最後一個AUTO_INCREMENT值

指定預設值

如插入行時沒有給出值
MySQL允許指定此時使用的預設值
預設值用CREATE TABLE語句的列定義中的DEFAULT關鍵字指定
CREATE TABLE orderitems
{
	order_num int NOT NULL,
	
}

相關文章