–在實際專案中,使用最多的是讀取操作,但是插入資料和刪除資料同等重要,而修改操作相對較少
插入操作:
元組值的插入
查詢結果的插入
–最基本的插入方式
–insert into tablename values(val1,val2,…) 如果表名之後沒有列,那麼只能將所有的列都插入
–insert into tablename(col1,col2,…)
values(val1,val2,…) 可以指定向哪些列中插入資料
insert into emp values(2222,『haha』,『clerk』,7902,to_date(『2019-11-2』,『yyyy-mm-dd』),1000,500,10);
select * from emp;
–向部分列插入資料的時候,不是想向哪個列插入就插入的,要遵循建立表的時候定義的規範
insert into emp(empno,ename) values(3333,『wangwu』)
–建立表的其他方式
–複製表同時複製表資料,不會複製約束
create table emp2 as select * from emp;
–複製表結構但是不複製表資料,不會複製約束
create table e*** as select * from emp where 1=2;
–如果有乙個集合的資料,把集合中的所有資料都挨條插入的話,效率如何?一般在實際的操作中,很少一條條插入,更多的是批量插入
刪除操作:
delete from
tablename where condition
–刪除滿足條件的資料
delete from emp2 where deptno = 10;
–把整張表的資料全部清空
delete from emp2;
–truncate ,跟delete有所不同,delete在進行刪除的時候經過事務,而truncate不經過事務,一旦刪除就是永久刪除,不具備回滾的操作
–效率比較高,但是容易發生誤操作,所以不建議使用
truncate table emp2
修改操作:
update tablename
set col = val1,col2 = val2 where condition;
可以更新或者修改滿足條件的乙個列或者多個列
–更新單列
update emp set ename = 『heihei』 where ename = 『hehe』;
–更新多個列的值
update emp set job=『teacher』,mgr=7902 where empno = 15;
增刪改是資料庫的常用操作,在進行操作的時候都需要《事務》的保證, 也就是說每次在pl/sql中執行sql語句之後都需要完成commit的操作
事務變得非常關鍵:
最主要的目的是為了資料一致性
如果同乙份資料,在同乙個時刻只能有乙個人訪問,就不會出現資料錯亂的問題,但是在現在的專案中,更多的是併發訪問
併發訪問的同時帶來的就是資料的不安全,也就是不一致
如果要保證資料的安全,最主要的方式就是加鎖的方式,mvcc
事務的延申:
最基本的資料庫事務
宣告式事務
分布式事務
為了提高效率,有可能多個操作會在同乙個事務中執行,那麼就有可能部分成功,部門失敗,基於這樣的情況就需要事務的控制。
select * from
emp where id = 7902 for update
select * from
emp where id = 7902 lock in share mode. DML之SQL增刪改查
dml 資料操作語言 適用物件 表中的資料 功能 1 向表中新增資料 mysql insert into goods id,name,price,type values 2,褲子 100,服裝 注意 如果我們新增資料時,每一列的值都不為空的話,我們可以省去列,如下 mysql insert into...
DML 語言 增刪改
總體而言資料操作語言分為三種 插入insert,更新update,刪除delete 一,插入語句 語法 方式一 insert into 表名 列名,values 值1,支援插入多行 支援子查詢 方式二 insert into 表名 set 列名 值,列名 值,特點 插入值型別要與列型別保持一致 不可...
資料的增刪改查 DML(學習記錄四 )
二 修改語句 三 刪除語句 語法 insert into 表名 列名,values 值1,select from beauty 1.插入的值的型別要與列的型別一致或相容 insert into beauty id,name,borndate,phone,photo,boyfriend id valu...