注:部落格中總結《mysql必知必會》中的知識點,第19,20,21章的核心內容;
涉及到的操作符:insert into,update, delete,create;
書中用到的表的介紹及其指令碼檔案:《mysql必知必會》中表的介紹
1.插入完整的行
也可以省略某些列行,但是需要滿足這些列定義為允許null值,或者表定義給出預設值;
-- 這種語法簡單,但是不安全,因為高度依賴表中列的定義次序;
insert
into customers
values(null,
'pep e. lapew',
'100 main street',
'los angeles',
'ca',
'90046',
'usa',
null,
null)
-- 下面更安全,但是相對繁瑣;
insert
into customers(cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email)
values('pep e. lapew',
'100 main street',
'los angeles',
'ca',
'90046',
'usa',
null,
null)
2.插入多個列insert
into customer
( cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)values
( 'pep e. lapew',
'100 main street',
'los angeles',
'ca',
'90046',
'usa'),(
'm. martian',
'42 galaxy way',
'new york',
'ny',
'11213',
'usa'
)
3.插入檢索出的資料insert
into customer
( cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)select cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
from custnew;
1.更新資料
update和delete的使用要盡可能的小心,要遵循一些知道原則;
-- 不要省略where,否則會改整列;
update customers
set cust_email = '[email protected]'
where cust_id = 10005;
2.刪除資料-- 不要省略where,否則會改整列;
delete
from customers
where cust_id = 10006;
3.刪除表中所有行-- delete是刪除表中的行,甚至是表中所有行,而不是刪除表本身;
delete
from customers;
-- truncate
table 刪除所有行,實際上刪除原來的表並重新建立乙個表,速度更快;
truncate
table customers;
1.表建立基礎create
table customers
( cust_id int
notnull 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;
2.使用null值-- 允許null值的列允許在插入行時不給出該列的值;
-- 不允許null值的列不接受該列沒有值的行。
create
table vendors
( vend_id int
notnull auto_increment,
vend_name char(50) not
null , -- 不允許null
vend_address char(50) null , -- 允許null
vend_city char(50) null ,
vend_state char(5) null ,
vend_zip char(10) null ,
vend_country char(50) null ,
primary
key (vend_id)
) engine=innodb;
3.主鍵在介紹-- 主鍵值必須唯一,主鍵可以是單列,也可以是多個列;
-- 在定義表時通過 primary key () 指定列;
例如:create
table orderitems
( order_num int
notnull ,
order_item int
notnull ,
prod_id char(10) not
null ,
quantity int
notnull ,
item_price decimal(8,2) not
null ,
primary
key (order_num, order_item)
) engine=innodb;
4.使用auto_incrementcust_id int not
null auto_increment,
-- auto_increment告訴mysql,本列每當增加一行時自動增量。
-- 並且每行分配唯一的cust_id,從而可以作為主鍵;
5.指定預設值
使用default指定;
create
table orderitems
( order_num int
notnull ,
order_item int
notnull ,
prod_id char(10) not
null ,
quantity int
notnull
default
1, item_price decimal(8,2) not
null ,
primary
key (order_num, order_item)
) engine=innodb;
-- mysql不允許使用函式作為預設值,它支援常量;
6.更新表-- 新增新的列
alter
table vendors
add vend_phone char(20);
-- 刪除剛剛新增的列
alter
table vendors
drop
column vend_phone;
7.刪除表-- 刪除整個表,而不是刪除其中的行;
drop
table customers2
8.重新命名表rename table customers2 to customers;
-- 對多個表重新命名
rename table back_customers to customers,
back_vendors to vendors,
back_products to products;
mysql必知必會 5
like 操作符 1.百分號 任何字元出現任意次數 以jet開頭的 select 列名1 from 表名 where 列名 like jet 可以對兩端進行搜尋 long 也可以是中間位置s e 2.下劃線單個字元 select 列名1 from 表名 where 列名 like jet 模糊查詢會...
mysql必知必會 mysql必知必會(四)
十四 理解子查詢 1 通過子查詢過濾 這本書在所有的章節都關連到了資料庫表,訂單資料是儲存在兩個表中,orders表儲存著 訂單號碼 顧客id和訂單日期。個人的訂單列表關連著orderitems表,訂單表沒有儲存顧客資訊,它只是儲存著顧客id,這實際的顧客資訊是儲存在customers表中。現在假設...
mysql的必知必會 mysql 必知必會 筆記
好久沒有寫了。1 show columns from table 等同於describe table顯示的是表的結構。而select from table 則顯示的是整個表中插入的資料。2 select distinct c1,c2 from table除非列不相同,否則所有行將被檢索出來,即不能對...