SQL基礎——DML(插入、修改和刪除)
SQL基礎——DML(插入、修改和刪除)
DML 是資料操作語言,可以對資料進行插入、修改、查詢 和 刪除。因為查詢所涉及到的知識點有點繁雜,因此之後特意單獨拿出來講下,現在我們來講下插入(insert),修改(update),刪除(delete)。
還是以student 表為例。
先建立表格,點左上角的齒輪(execute)來執行,就可以建立好表格了
create table student(
s_id number(4) primary key ,
s_name varchar2(5 char) not null,
s_gender char(3) check(s_gender in ('男','女')),
s_age number(2) check(s_age between 15 and 45),
s_date date,
s_dept varchar2(20) default('計算機系')
)
插入 insert
我們先來插入兩條資料。注意:我們要輸入字串的時候要用單引號引起來。
insert into student values (1001,'張三','男',20,sysdate,'數學系');
insert into student values (1002,'小紅','女',18,sysdate,'計算機系');
插入資料的語法是 insert into 表名 values(欄位的值列表);所謂欄位值列表就是我們建立表格給出的表頭的值,所以傳的值列表要滿足建立表時的資料型別和約束條件。然後點選小齒輪就新增進去了。這是可以點選齒輪旁邊的按鈕,一個綠色的commit提交按鈕,一個是紅色的rollback回滾按鈕。回滾後資料就回到沒有新增的狀態。
也可以指定欄位賦值。如insert into 表名(欄位列表) values(欄位列表對應的值列表);
insert into student(s_id,s_name,s_age) values(1003,'王五',19);
這樣也可以新增表格,沒有新增的顯示為空值,但因為s_dept有預設值,所以s_dept顯示 計算機系。需要注意的是主鍵primary 和 notnull約束的欄位列以及與其他表格有外來鍵約束的欄位列 是必須要填寫的,否則會報錯。
插入之後可以用**select * from student;**用來檢視所有的資料。
修改update
插入好資料後,我們總會遇到資料需要修改更新的情況,這時就需要使用update來解決了。
update 表名 set 欄位名=欄位值,欄位名=欄位值… where 滿足條件才修改;
沒有where 條件就是所有的資料都更改。
下面我們把張三的年齡改為21。
update student set s_age = 21 where s_name = '張三';
這樣就把張三的成績改好了,之後點下齒輪執行,然後在輸入 **select * from student;**就可以看改好的資料了。
刪除 delete
這裡的刪除是刪除表格的資料,和我們之前的drop(刪除表)還是有區別的。
我們可以刪除整張表的資料,也可以刪除某個欄位所在行的資料。用delete from 表名 where 滿足條件的刪除來刪除資料。
我們先來刪除‘王五’所在行的資料。
delete from student where s_name='王五';
也可以直接刪除student表的資料
delete from student;
有主從表約束
上面的是一般表格的刪除,但有些表格是通過主外來鍵約束,有主從表關係的,這種就不可以隨便刪除主表了。
首先,刪除的資料是主表中沒有被從表中資料關聯的主表資料,可以直接刪除。
其次,刪除的資料是主表中被從表資料引用的主表資料時候,不能刪除,3中處理解決方案
1>預設先刪除從表中引用了當前主表的從表資料,再刪除主表中當前資料。
2>直接刪除主表中資料的同時,為從表中引用了當前主表的資料外來鍵欄位設定為null 。 on delete set null
3>直接刪除主表中資料的同時,級聯刪除從表中引用了當前主表資料的那些從表資料。on delete cascade
create table clazz(
cid number(5) primary key,
cname varchar2(15)
);
create table student1(
sid number(5) primary key,
sname varchar2(15),
sage number(3),
--外來鍵約束
cid number(5) constraint fk_cid references clazz(cid) on delete cascade --on delete set null
)
相關文章
- 【學習】SQL基礎-010-DMLSQL
- 連結串列基礎2(超簡單)--單連結串列的插入和刪除
- IoTDB SQL語法 建立、新增、修改、刪除 windowsSQLWindows
- Ionic 3和Angular 4:使用基於令牌的Restful API插入和刪除AngularRESTAPI
- 【編測編學】零基礎學python_07_列表(修改、新增和刪除元素)Python
- Unfolder使用教程:如何插入,刪除和更新物件物件
- SQL 基礎增、刪、改、查SQL
- 修改刪除表
- C++ forward_list 中插入和刪除操作C++Forward
- Linux基礎之檢視、新增、修改、刪除使用者命令介紹Linux
- MySQL學習筆記之SQL語句建立、修改和刪除資料庫MySql筆記資料庫
- Linux基礎命令—新增/刪除組Linux
- mysql 資料插入和更新及刪除詳情FSSHMySql
- Java基礎-理解紅黑樹(刪除)Java
- MySQL基礎之DML語句MySql
- Oracle 增加 修改 刪除 列Oracle
- Java 獲取Word中的所有插入和刪除修訂Java
- 如何在Word 2007 文件中插入和刪除超連結?
- vue實現li列表的新增刪除和修改Vue
- 在Linux中,如何建立、刪除和修改檔案?Linux
- Linux基礎命令---lprm刪除列印任務Linux
- Linux基礎命令---刪除使用者userdelLinux
- 在一條DML語句中插入/更新/刪除/獲取幾百萬行資料,你會特別注意什麼?
- [MYSQL][1]建立,修改,刪除表MySql
- Mysql 插入中文及中文查詢 (修改+除錯)MySql除錯
- Linux基礎命令---新增組groupadd、刪除組groupdelLinux
- AVL樹(查詢、插入、刪除)——C語言C語言
- 【typeorm】typeorm官方文件querybuilder插入更新刪除部分ORMUI
- Citus 分散式 PostgreSQL 叢集 - SQL Reference(攝取、修改資料 DML)分散式SQL
- onnx 增刪改查,修改節點,刪除節點,修改input,output
- mySql刪除多個表 刪除多個欄位的SQLMySql
- 在 Git 中怎樣克隆、修改、新增和刪除檔案?Git
- Oracle表 列欄位的增加、刪除、修改以及重新命名操作sqlOracleSQL
- FreeRTOS-00-基礎知識+任務建立刪除
- laravel 修改軟刪為:0(正常)、1(刪除) 的形式Laravel
- 記一次SQL Server刪除SQL調優SQLServer
- networkx基礎用法:新增節點、新增邊、刪除節點、刪除邊、計算度、賦權重
- drools動態增加、修改、刪除規則