insert用來將行插入(或新增)到資料庫表。插入有幾種方式:
# 插入完整的行
insert
into customers
values
(1000000006
,'toy land'
,'123 any street'
,'new york'
,'ny'
,'11111'
,'usa'
,null
,null
);
儲存在values子句中給出,必須給每一列提供乙個值,如果某列沒有值,則用null值。各列必須以他們在表定義**現的次序填充。所以高度依賴於表中列的定義次序,是很不安全的,因此採用下面的語句更安全:
insert
into customers(cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email)
values
(1000000007
,'toy land'
,'123 any street'
,'new york'
,'ny'
,'11111'
,'usa'
,null
,null
);
它在表名後的括號中明確給出了列名,values必須以其指定的次序匹配指定的列名,不一定按各列出現在表中的實際次序。
# 以不同的次序填充
insert
into customers(cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip
)values
(1000000006
,null
,null
,'toy land'
,'123 any street'
,'new york'
,'ny'
,'11111'
);
使用insert的推薦方法是明確給出表的列名。使用這種語法,還可以省略列,表示可以只給某些列提供值,給其他列不提供值(該列定義為允許null值或者在表定義中給出預設值)
# 插入部分行(省略列,表示只給某些列提供值,給其他列不提供值)
insert
into customers(cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)values
(1000000006
,'toy land'
,'123 any street'
,'new york'
,'ny'
,'11111'
,'usa'
);
# 插入檢索出的資料
insert
into customers(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;
這種資料插入不使用insert語句。而是使用create select語句,它可以將資料複製到乙個新錶。
# 從乙個表複製到另乙個表
create
table custcopy as
select
*from customers;
若是使用sql server,還可以這麼寫:
# 從乙個表複製到另乙個表
select
*into custcopy from customers;
SQL必知必會 第2課 檢索資料
從乙個或多個表中檢索資訊。為了使用select檢索表資料,必須至少給出兩條資訊 想選擇什麼,以及從什麼地方選擇。如果沒有明確排序查詢結果,則返回的資料沒有特定的順序。多條sql語句必須以分號 分隔。不區分大小寫。一般來說可以對關鍵字大寫,對列名和表名小寫。若要從乙個表中檢索多個列,必須在select...
SQL必知必會 第4課 過濾資料
資料庫中一般包含大量資料,很少需要檢索表中所有行。通常只需要根據特定操作或報告的需要提取表資料的子集。只檢索所需資料需要指定搜尋條件 過濾條件 使用where子句 這裡只檢索這一列的值是否為指定值。但sql不只能測試等於,還可以有更多的操作。注意 在同時使用order by和where子句時,應該讓...
SQL必知必會 第1課 了解SQL
資料庫 儲存有組織的資料的 容器 通常是乙個檔案或一組檔案 注意 資料庫軟體不等於資料庫,前者應稱為資料庫管理系統 dbms 後者是通過dbms建立和操縱的容器。表 某種特定型別資料的結構化清單。資料庫中的每個表都有乙個名字來標識自己。這個名字是唯一的。模式 關於資料庫和表的布局及特徵的資訊。模式定...