MYSQL學習筆記 建立和操縱表

2021-12-30 11:28:54 字數 1912 閱讀 3151

建立表的兩種方法

使用互動式建立和管理表的工具

直接用mysql語句操縱 表建立基礎

create table products

prod_id int not null,

vend_id char10) not null,

prod_name char(254) not null,

prod_price decimal(8,2) not null,

prod_desc varchar(1000) null,

primary key(prod_id)

) engine=inoodb;;

表名緊跟create table關鍵字

在圓括號內每列定義列名,後跟列的資料型別

primary key()指定主鍵 使用null值

允許null值的列允許在插入行時不給出該列的值,not null必須給值 主鍵再介紹

主鍵值必須唯一。表中每個行必須具有唯一的主鍵值

主鍵只能用於not null的列 使用auto_increment

prod_id int not null auto_increment,

auto_increment使該列每當增加一行自動增量,是每個行分配唯一prod_id,從而用作主鍵值

每個表中只允許乙個auto_increment列,而且必須被索引 獲得最後乙個auto_increment值

select last_insert_id() 指定預設值

create table orderitems

order_num int not null,

order_item int not null,

prod_id char(10) not null,

quantity int not null default 1,

item_price decimal(8,2) not null

primary key(order_num,order_item)

)engine=inoodb;

quantity列包含數量,default1表示在未給出數量的情況下使用數量1 引擎型別

engine=inoodb語句結束表示所選用的資料庫引擎,省略語句將使用預設引myisam

各引擎型別:

innodb是乙個可靠的事務處理引擎,不支援全文本搜尋

memory的功能等同於myisam,但由於資料儲存在記憶體,速度很快

myisam是乙個效能極高的引擎,支援全文本搜尋,但不支援事務處理 更新表

alter table vendors

add vend_phone char(20);

給vendors表增加乙個名為vend_phone的列

alter table vendors

drop column vend_phone;

刪除vend_phone的列 定義外來鍵

alter table orderitems

add constraint fk_orderitems_orders

foreign key (order_num) references orders (order_num); 複雜表結構的更改步驟

(1)用新的列布局建立乙個新錶;

(2)使用insert select語句從舊表複製資料到新錶。有必要的話,可以使用轉換函式和計算字段;

(3)檢驗包含所需資料的新錶;

(4)重新命名舊表(如果確定,可以刪除它);

(5)用舊表原來的名字重新命名新錶;

(6)根據需要,重新建立觸發器、儲存過程、索引和外來鍵 刪除表

drop table custcopy;

刪除custcopy表。刪除表沒有確認,也不能撤銷 重新命名表

rename table customer2 to customers,

customer3 to customers1;

MySQL 建立和操縱表

create table users id int not null auto increment,name char 50 not null,address char 50 not null,email char 50 not null default 11 primary key id engi...

MySQL基礎之建立和操縱表

一般有兩種建立表的方法 為了用程式建立表,可使用sql的create table語句。為利用create table建立表,必須給出以下資訊 create table語句也可能會包括其他關鍵字或選項,但至少要包括表的名字和列的細節 mariadb crashcourse create table c...

c 建mysql表 MySQL建立和操縱表

表建立基礎 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 stat...