向資料庫表中插入一條新記錄
基本語法:
insert
into
《表名》
(欄位1
, 欄位2,.
..)values
(值1, 值2,.
..);
(1) 向students表插入一條新記錄,先列舉出需要插入的欄位名稱,然後在values子句中依次寫出對應欄位的值:
insert
into students (class_id, name, gender, score)
values(2
,'大牛'
,'m',80
);-- 查詢並觀察結果:
select
*from students;
注意到我們並沒有列出id欄位,也沒有列出id欄位對應的值,這是因為id欄位是乙個自增主鍵,它的值可以由資料庫自己推算出來。此外,如果乙個欄位有預設值,那麼在insert語句中也可以不出現。
(2) 一次性新增多條記錄,只需要在values子句中指定多個記錄值,每個記錄是由(…)包含的一組值:
insert
into students (class_id, name, gender, score)
values(1
,'大寶'
,'m',87
),(2
,'二寶'
,'m',81
);select
*from students;
更新資料庫表中的記錄
基本語法:
update
《表名》
set 欄位1
=值1, 欄位2
=值2,..
.where..
.;
(1)更新students表id=1的記錄的name和score這兩個字段,先寫出update students set name=『大牛』, score=66,然後在where子句中寫出需要更新的行的篩選條件id=1:
update students set name=
'大牛'
, score=
66where id=1;
-- 查詢並觀察結果:
select
*from students where id=
1;
注意到update語句的where條件和select語句的where條件其實是一樣的,因此完全可以一次更新多條記錄:
update students set name=
'小牛'
, score=
77where id>=
5and id<=7;
-- 查詢並觀察結果:
select
*from students;
(2)在update語句中,更新欄位時可以使用表示式。例如,把所有80分以下的同學的成績加10分:
update students set score=score+
10where score<80;
-- 查詢並觀察結果:
select
*from students;
(3)如果where條件沒有匹配到任何記錄,update語句不會報錯,也不會有任何記錄被更新。例如:
update students set score=
100where id=
999;
-- 查詢並觀察結果:
select
*from students;
(4)最後,要特別小心的是,update語句可以沒有where條件,例如:
update students set score=
60;
這時,整個表的所有記錄都會被更新。所以,在執行update語句時要非常小心,最好先用select語句來測試where條件是否篩選出了期望的記錄集,然後再用update更新。
(5)mysql
在使用mysql這類真正的關聯式資料庫時,update語句會返回更新的行數以及where條件匹配的行數。
例如,更新id=1的記錄時:
mysql>
update students set name=
'大寶'
where id=1;
query ok,
1row affected (
0.00 sec)
rows
matched: 1 changed: 1
warnings: 0
mysql會返回1,可以從列印的結果rows matched: 1 changed: 1看到。
當更新id=999的記錄時:
mysql>
update students set name=
'大寶'
where id=
999;
query ok,
0rows affected (
0.00 sec)
rows
matched: 0 changed: 0
warnings: 0
mysql會返回0,可以從列印的結果rows matched: 0 changed: 0看到。
刪除資料庫表中的記錄
基本語法:
delete
from
《表名》
where..
.;
(1) 刪除students表中id=1的記錄:
delete
from students where id=1;
-- 查詢並觀察結果:
select
*from students;
注意到delete語句的where條件也是用來篩選需要刪除的行,因此和update類似,delete語句也可以一次刪除多條記錄:
delete
from students where id>=
5and id<=7;
-- 查詢並觀察結果:
select
*from students;
(2) 如果where條件沒有匹配到任何記錄,delete語句不會報錯,也不會有任何記錄被刪除。例如:
delete
from students where id=
999;
-- 查詢並觀察結果:
select
*from students;
要特別小心的是,和update類似,不帶where條件的delete語句會刪除整個表的資料:
delete
from students;
這時,整個表的所有記錄都會被刪除。所以,在執行delete語句時也要非常小心,最好先用select語句來測試where條件是否篩選出了期望的記錄集,然後再用delete刪除。
(3)mysql
在使用mysql這類真正的關聯式資料庫時,delete語句也會返回刪除的行數以及where條件匹配的行數。
例如,分別執行刪除id=1和id=999的記錄:
mysql>
delete
from students where id=1;
query ok,
1row affected (
0.01 sec)
mysql>
delete
from students where id=
999;
query ok,
0rows affected (
0.01 sec)
SQL修改資料
關聯式資料庫的基本操作就是增刪改查,即crud create retrieve update delete。其中,對於查詢,我們已經詳細講述了select語句的詳細用法。而對於增 刪 改,對應的sql語句分別是 insert 插入新記錄 update 更新已有記錄 delete 刪除已有記錄。ins...
SQL批量修改資料
1 批量替換 期中的年份 以替換為2019年為例 update 資料表名 set 期時間字段 stuff convert nvarchar 23 期時間字段,120 1,4,2019 2 批量替換 期中的 份 以替換為6 為例 update 資料表名 set 期時間字段 stuff convert ...
sql修改資料 oracle修改資料庫字符集
1.檢視資料庫字符集 資料庫伺服器字符集 select from nls database parameters 其 於props 是表示資料庫的字符集。客戶端字符集環境 select from nls instance parameters 其 於v parameter,表示客戶端的字符集的設定,...