dml,英文叫做 data manipulation language,資料操作語言,我們用它操作和資料庫相關的記錄,比如增加、刪除、修改資料表中的記錄。
我們只能刪除整個元組,而不能只刪除某些屬性上的值。sql用如下語句表示刪除:
delete
from r
where p;
其中p代表乙個謂詞,r代表乙個關係。
例,從instructor關係中刪除與finance系教師相關的所有元組。
delete
from instructor
where dept_name =『finance』;
sql允許使用insert語句
,向關係中插入元組,形式如下:
insert
into r [
(c1,c2,…)
]values
(e1,e2,…)
;insert
into r [
(c1,c2,…)
]select e1,e2,… from …;
例1,假設我們要插入的資訊是computer science系開設的名為「database systems」的課程cs-437,它有4個學分。
insert
into course
values
(『cs-
437』, 『database systems』, 『comp. sci.』,4)
;
sql允許在insert語句中指定屬性,所以上述語句還可寫為:
insert
into course (course_id, title, dept_name, credits)
values
(『cs-
437』, 『database systems』, 『comp. sci.』,4)
;
例2,假設我們想讓music系每個修滿144學分的學生成為music系的教師,其工資為18
000美元
insert
into instructor
select id, name, dept_name,
18000
from student
where dept_name = 『music』 and tot_cred >
144;
sql允許使用update語句
,在不改變整個元組的情況下改變其部分屬性的值,形式如下:
update r
set[c2=e2,… ]
>
[where
];
例1,假設給工資超過100 000美元的教師漲3%的工資,其餘教師漲5%
我們可以寫兩條update語句:
update instructor
set salary = salary *
1.03
where salary >
100000
;update instructor
set salary = salary *
1.05
where salary <=
100000
;
注意:這兩條update語句的順序十分重要。如果調換順序,可能導致工資略少於100 000美元的教師將增長8%的工資。
針對上例查詢,我們也可以使用sql提供的case結構
,避免更新次序引發的問題,形式如下:
case
when pred1 then result1
when pred2 then result2..
.when predn then resultn
else result0
end
因此上例查詢可重新為:
update instructor
set salary =
case
when salary <=
100000
then salary *
1.05
else salary *
1.03
end
資料庫操縱語言DML
資料庫操縱語言dml dml 有三條語句 insert update delete.一 insert 插入資料 1 插入一條資料 insert into 表名 列名 values 值列表 insert into stuinfo stuname,stuno,stu stuage,stuaddress ...
DML 資料庫操縱語言
增 插入 1,張三,18 注意 字串和日期時間 必須加上 插入完整記錄 insert into student values 1,張三 18 插入部分記錄 insert into student name,age values 張三 18 插入多條完整記錄 insert into student v...
mysql資料庫操縱語言
dml語言增刪改查 插入insert into 表名 列名 values 值列表 例項 insert into students sname,saddress,sgrade,semail,s values 張青裁 上海松江 6,zqc sohu.com 0 注意事項1 每次插入一行資料,不能只插入半...