SQL基礎教程學習第六站 資料更新

2021-10-06 16:32:21 字數 4505 閱讀 9184

僅用於記錄學習,歡迎批評指正,共同交流,共同進步,大神勿噴

sql基礎教程學習第二站:資料庫基本知識;

sql基礎教程學習第三站:建立表;

sql基礎教程學習第四站:查詢基礎;

sql基礎教程學習第五站:聚合和排序;

sql基礎教程學習第六站:資料更新;

sql基礎教程學習第七站:複雜查詢;

sql基礎教程學習第八站:函式、謂詞、case表示式;

sql基礎教程學習第九站:集合運算;

sql基礎教程學習第十站:sql高階處理;

sql基礎教程示例**

4-1 資料的插入(intert語句的使用方法)

create table productins

(product_id char(4) not null ,

product_name varchar(100) not null ,

product_type varchar(100) not null ,

sale_price integer default 0, --插入預設值,此處銷售單價的預設值設定為0

purchase_price integer ,

regist_date date ,

primary key (product_id));

insert into productins (product_id,product_name,product_type,sale_price,purchase_price,

regist_date) values (『0001』,『t恤衫』,『衣服』,1000,500,『2009-09-20』);

–列清單可以省略,在前面建立表時有演示

–插入null:約束條件設為非空時,不能插入

–刪除列清單和值清單的purchase_price列

insert into productins (product_id,product_name,product_type,sale_price,

regist_date) values (『0008』 , 『原子筆』,『辦公用品』,100,『2009-11-11』);

–插入預設值:

–法一:顯式方法:插入default關鍵字

insert into productins values (『0007』 , 『擦菜板』,『廚房用具』,default,790,『2008-04-28』);

select *

from productins

where product_id = 『0007』

–法二:隱式方法:刪除列清單和值清單的sale_price列

insert into productins (product_id,product_name,product_type,purchase_price,

regist_date) values (『0007』 , 『擦菜板』,『廚房用具』,790,『2008-04-28』);

–未使用預設值

insert into productins values (『0005』 , 『高壓鍋』,『廚房用具』,6800,5000,『2009-01-15』);

select *

from productins

where product_id = 『0005』

–從其他表中複製資料:表名改變,其他不變

create table productcopy

(product_id char(4) not null ,

product_name varchar(100) not null ,

product_type varchar(100) not null ,

sale_price integer ,

purchase_price integer ,

regist_date date ,

primary key (product_id));

insert into productcopy (product_id,product_name,product_type,sale_price,purchase_price,regist_date)

select product_id,product_name,product_type,sale_price,purchase_price,regist_date

from product;

–檢視結果

select * from productcopy

–彙總表

create table producttype

(product_type varchar(100) not null ,

sum_sale_price integer ,

sum_purchase_price integer ,

primary key (product_type ));

insert into producttype (product_type,sum_sale_price,sum_purchase_price)

select product_type,sum(sale_price),sum(purchase_price)

from product

group by product_type;

–檢視結果

select * from producttype;

注意:insert語句中的select語句中,可以使用where子句或者group by子句等任何sql語法,

但使用order by子句並不會產生任何效果.

4-2 資料的刪除

–完全刪除表: drop table 《表名》;

–只留表的框架,完全刪除表中的資料: delete from 《表名》;

–指定刪除物件:delete from 《表名》 where 《條件》 ;

–注:delete語句中只能使用where子句,group by子句和order by子句是抽取資料的,在刪除資料時並不能起到作用

4-3 資料的更新

–update語句的基本語法

update product

set regist_date = 『2009-10-10』;

select *

from product ;

–指定條件的update

update product

set sale_price = sale_price*10

where product_type =『廚房用具』;

select *

from product ;

–使用null進行更新

update product

set regist_date = null

where product_id = 『0008』;

select *

from product ;

–多列更新:一次更新乙個條件可能會造成浪費

update product

set sale_price = sale_price*10,

purchase_price = purchase_price/2

where product_type =『廚房用具』;

select *

from product ;

4-4 事務

**事務:**對錶中資料進行更新的單位,簡單來講就是需要在同乙個處理單元中執行的一系列更新處理的集合

update product

set sale_price = sale_price - 1000

where product_name = 『運動t恤』;

update product

set sale_price = sale_price + 1000

where product_name =『t恤』;

select *

from product ;

–建立事務

事務開始語句:begin transaction;

語句1、語句2…

事務結束語句:commit:提交事務包含的全部更新處理的結束指令,相當於覆蓋儲存,

一旦提交,無法恢復事務開始之前狀態(謹慎)

或rollback:取消事務包含全部更新處理的結束指令,相當於放棄儲存,

一旦回滾,資料庫就會恢復事務開始之前狀態(無需謹慎)

–acid特性

dbms的事務具有四種特性:原子性、一致性、隔離性、永續性

原子性:在事務結束時,其中包含的更新處理要麼全部執行,要麼完全不執行

一致性:事務中包含的處理要滿足資料庫提前設定的約束條件

隔離性:保證不同事務之間互不干擾

永續性:事務結束時,dbms能保證該時間點的資料狀態會被儲存的特性 。

NLTK基礎教程學習筆記(六)

用nlyk庫實現標註任務的方式有兩種 1 使用nltk庫或其他庫中的預置標註器,並將其運用到測試資料上。這兩種標註器應該足以應對英語文字環境,以及非特殊領域語料庫中的所有詞性標註任務。2 基於測試資料來建立或訓練出適合的標註器。深入了解標註器 乙個典型的標註器通常要用到大量的訓練資料,它主要被用於標...

SQL基礎教程學習第二站 資料庫基本知識

僅用於記錄學習,大神勿噴 sql基礎教程學習第二站 資料庫基本知識 sql基礎教程學習第三站 建立表 sql基礎教程學習第四站 查詢基礎 sql基礎教程學習第五站 聚合和排序 sql基礎教程學習第六站 資料更新 sql基礎教程學習第七站 複雜查詢 sql基礎教程學習第八站 函式 謂詞 case表示式...

Python基礎教程,第六講,條件語句和迴圈語句

條件和迴圈是所有程式語言都要用到的語句,非常重要,學會了他們我們離專案實戰又進了一部,有沒有迫不及待的感覺?一起來學習吧!學完此次課程,我們可以初步的完成乙個計算器,模擬使用者登入系統以及大部分的開發工作都可以完成。15 20分鐘 學習之前我們先來看幾個小技巧 序列解包 1.py 多個賦值操作同時進...