SQL语言之操作数据(Oracle)
操作數據(DML)
當添加、更改或者刪除數據庫中的數據時需要使用DML語句。DML依據的一個集合構成了一個被稱之為事務的邏輯單元;
當完成以下操作是,DML語句被執行:
?添加新的行到表中;
?修改表中的行;
?刪除表中的行;
一、添加一個新行到表中
Insert語法(每次只能插入一行)
?指定列添加
(以hr用戶中的departments表為例)
例
向departments 表中添加一條數據。Department_Id=280,Department_name = Teaching,Manager_id=180,Location_id =2000; Insert into departments(department_id , department_name , manager_id , location_id) values(280,’Teaching’,180,2000);?完全列添加
(以hr用戶中的departments表為例)
例
向 departments 表中添加一條數據。 Department_Id=290,Department_name = Development,Manager_id=149,Location_id =2000;Insert into departments values(290,’Development’,149,2000);?插入空值的行
1.隱式方法
省略字段列表中的列;
(以hr用戶中的departments表為例)
例
向 departments表中添加一條數據。Department_Id=300,Department_name = youtuber,其他為空值; Insert into departments(department_id , department_name) values(300,’youtuber’);2.顯示方法
在values子句中指定null關鍵字;
(以hr用戶中的departments表為例)
例
向 departments表中添加一條數據。Department_Id=310,Department_name = singer,其他為空值; Insert into departments(department_id , department_name , manager_id , location_id) values(310,’singer’,null,null);?插入日期值
(以hr用戶中的departments表為例)
例
添加一個新的雇員; 1.入職時間為當前系統時間; insert into employees values(300,'pang','danfu','qq','187.343.9024',sysdate,'SA_REP',2500.00,null,149,null); 2.入職時間為默認格式時間; insert into employees values(301,'pang','danfu','yahoo','080.4417.0816','20/12/12','SA_REP',7500.00,null,149,null); 3.入職時間為指定格式時間; insert into employees values(302,'miwa','tetsu','gmail','070.2218.5391',to_date('2021年5月6日','yyyy"年"mm"月"dd"日"'),'IT_PROG',15000.00,null,102,300);?從另一個表中復制行
1.用一個查詢寫insert語句;
2.不用values子句;
3.在查詢中列的數目要匹配insert子句中列的數目;
(以hr用戶中的employees表為例)
例
建立一個空表emp,并將 employees 表中的 job_id 中含有 REP 的工作崗位的 數據插入到 emp 表中。 insert into emp select e.employee_id,e.last_name,e.salary,e.commission_pct from employees e where e.job_id like '%REP%' ;?使用默認值
在insert中的default
(以hr用戶中的emp表為例)
例
1.在emp中的salary列中加入默認值1000,添加數據,ID=302,name=hipi; insert into emp(id,name) values(302,'hipi'); 2.在emp中的salary列中加入默認值1000,添加數據,ID=303,name=hibi; insert into emp values(303,'hibi',default,null);二、改變表中的數據
?Update語法
用update語句修改已存在的行;
(以hr用戶中的emp表為例)
例
更新 emp 表中 ID 為 155 的數據,將名字修改為 tetsuhisa,薪水修改 17500。 Update emp set name = ‘tesuhisa’ , salary = 17500 where id = 155;?用查詢更新列
(以hr用戶中的emp表為例)
例
更新 emp 表中的雇員 165 的薪水,使其和雇員 156 相同。Update emp set salary = (select salary from emp where id = 156) where id = 165;三、從表中刪除行
?Delete語句
使用delete語句從表中刪除已存在的行;
(以hr用戶中的emp表為例)
例
刪除 emp 表中 id 為 301 的雇員。 Delete emp where id = 301;?刪除基于另一個表的行
(以hr用戶中的emp表為例)
例
刪除 emp 表中薪水與 ST_CLERK 崗位相同的薪水。 Delete emp where salary in(select salary from employees where job_id = ‘ST_CLERK’);?刪除表中全部的數據;
如果再刪除語句中沒有給定任何條件,那么數據庫將會刪除該表中的所有數據;
(以hr用戶中的emp表為例)
例
刪除表中全部的數據; Delete emp;?刪除行:完整性約束錯誤
總結
以上是生活随笔為你收集整理的SQL语言之操作数据(Oracle)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL语言之子查询(Oracle)
- 下一篇: SQL语言之事务处理语言(Oracle)