1. 程式人生 > >【SQL.基礎構建-第四節(4/4)】

【SQL.基礎構建-第四節(4/4)】

alter IT cat 創建表 lte 特性 對象 nba enc


-- Tips:數據更新

--一、插入數據

--1.INSERT 語句的基本語法

--語法:
--INSERT INTO <表名>(列1, 列2, ...) VALUES (值1, 值2, ...)

--示例
INSERT INTO dbo.conbio
( conbio_id ,
conbio_name ,
conbio_varieties ,
conbio_price1 ,
conbio_price2 ,
conbio_date
)
VALUES ( ‘0011‘ , -- conbio_id - char(4)
‘T 恤衫‘ , -- conbio_name - varchar(100)
‘衣服‘ , -- conbio_varieties - varchar(32)
1000 , -- conbio_price1 - int
500 , -- conbio_price2 - int
GETDATE() -- conbio_date - date
);

------------------
select * from conbio --查詢表名為conbio的表.

--------------------------------------

--(1)列名和值用逗號隔開,分別放在括號裏,這種形式稱為清單。

( shohin_id ,
shohin_mei ,
shohin_bunrui ,
hanbai_tanka ,
shiire_tanka ,
torokubi
)
--列清單 --字段

------------------

( ‘0011‘ , -- shohin_id - char(4)
‘T 恤衫‘ , -- shohin_mei - varchar(100)
‘衣服‘ , -- shohin_bunrui - varchar(32)
1000 , -- hanbai_tanka - int
500 , -- shiire_tanka - int
GETDATE() -- torokubi - date
)
--值清單 --記錄

------------------

INSERT INTO dbo.conbio
( conbio_id ,
conbio_name ,
conbio_varieties ,
conbio_price1 ,
conbio_price2 ,
conbio_date
)
VALUES ( ‘0014‘ , -- conbio_id - char(4)
‘T 恤衫‘ , -- conbio_name - varchar(100)
‘衣服‘ , -- conbio_varieties - varchar(32)
1000 , -- conbio_price1 - int
500 , -- conbio_price2 - int
GETDATE() -- conbio_date - date
),
( ‘0015‘ , -- conbio_id - char(4)
‘T 恤衫‘ , -- conbio_name - varchar(100)
‘衣服‘ , -- conbio_varieties - varchar(32)
1000 , -- conbio_price1 - int
500 , -- conbio_price2 - int
GETDATE() -- conbio_date - date
);

--------------------------------------

--3.插入 NULL 值

INSERT INTO dbo.conbio
VALUES ( ‘0016‘ , -- conbio_id - char(4)
‘T 恤衫‘ , -- conbio_name - varchar(100)
‘衣服‘ , -- conbio_varieties - varchar(32)
1000 , -- conbio_price1 - int
NULL , -- conbio_price2 - int
GETDATE() -- conbio_date - date
);

--【備註】插入 NULL 值的列不能設置為 NOT NULL 約束。

--------------------------------------
select * from conbio --查詢表
--------------------------------------
----添加列
select * from conbio;
alter table Conbio add conbio_name_test001 varchar(100);
--------------------------------------
----刪除列
ALTER TABLE conbio DROP COLUMN conbio_name_test001;

--------------------------------------

--4.插入默認值

--示例:創建表時設置默認值

CREATE TABLE ConbioIns
(
id CHAR(4) NOT NULL,
num INT DEFAULT 0 --DEFAULT 默認約束
)

-- select * from conbioins 查表

--示例:INSERT 時顯示插入默認值

INSERT INTO dbo.conbioins
( id, num )
VALUES ( ‘002‘, -- id - char(4)
DEFAULT -- num - int
)

--示例:INSERT 隱式插入默認值

INSERT INTO dbo.conbioins( id )
VALUES (‘003‘)


--【備註】建議使用顯示的方式插入值。如果插入的時候隱式省略了列名,並且該列沒有指定默認值的時候,
--該列的值會被設定為 NULL(如果省略的列設置了 NOT NULL 約束的話,執行會報錯)。

--【總結】省略 INSERT 語句的列名,就會自動設定該列的默認值(沒有默認值時會設定為 NULL)。

--------------------------------------

--5.從其它表復制數據

--語法
--INSERT ...
--SELECT ...

--示例
INSERT dbo.conbioins
( id, num )
SELECT conbio_id, conbio_price2
FROM dbo.conbio

--示例
INSERT INTO dbo.conbioins
( id, num )
SELECT id=1, num =2;

--示例
INSERT INTO dbo.conbioins
( id, num )
SELECT 1, 2;

-- select * from conbioins 查表

--【備註】INSERT 語句中的 SELECT 語句中,可以使用 WHERE 子句或者 GROUP BY 子句等任何 SQL 語法。(但使用 ORDER BY 子句並不會產生任何效果。)

--------------------------------------

-- 二、刪除數據

--  1.2 種 刪除數據的方法:

--(1)DROP TABLE 語句:刪除表

--(2)DELETE 語句:刪除表的數據

--語法
--DELETE FROM <表名>;

--示例
DELETE FROM dbo.conbioins; --此表數據刪除為空所有

--【備註】DELETE 語句刪除的對象是記錄(行),不是表和列。

--------------------------------------

--2.指定刪除對象的 DELETE 語句

--語法
--DELETE FROM <表名>
--WHERE <條件>;

--示例
DELETE FROM dbo.conbio
WHERE conbio_price1 >= 1000; --條件刪除記錄行

--【備註】可以通過 WHERE 子句指定對象條件來刪除部分數據。

--【備註】DELETE 語句中不能使用 GROUP BY、HAVING 和 ORDER BY 三類子句。

--【備註】如果要刪除表全部數據時請使用 TRUNCATE <表名>,它比 DELETE 子句更高效。

--select * from conbio --查表

--------------------------------------

--三、更新數據

--1.UPDATE 子句的基本語法

--語法
--UPDATE <表名>
-- SET <列名> = <表達式>

--2.指定條件的 UPDATE 語句

--語法
--UPDATE <表名>
-- SET <列名> = <表達式>
--WHERE <條件>;

--示例
UPDATE dbo.conbio
SET conbio_price2 = conbio_price2 * 10
WHERE conbio_varieties = ‘廚房用具‘;

--3、使用 NULL 進行更新

--示例
UPDATE dbo.conbio
SET conbio_date = NULL
WHERE conbio_id = ‘008‘;

--【備註】只有未設置 NOT NULL 約束和主鍵約束的列才可以清空為 NULL。

--------------------------------------

--4.多列更新

--示例
UPDATE dbo.conbio
SET conbio_price1 = conbio_price1 * 10, --逗號分割
conbio_price2 = conbio_price2 / 2
WHERE conbio_varieties = ‘廚房用具‘

--------------------------------------

--四、事務

--1.事務:需要在同一個處理單元中執行的一系列更新處理的集合。

--2.創建事務:
--語法
--事務開始語句
-- DML 語句①;
-- DML 語句②;
-- ...
--事務結束語句(COMMIT 或 ROLLBACK);

--(1)COMMIT - 提交處理:提交事務包含的全部更新處理的結束指令。一旦提交,無法恢復到事務開始前的狀態。

--(2)ROLLBACK - 取消處理:取消事務包含的全部更新處理的結束指令。一旦回滾,數據庫就會回復到事務開始之前的狀態。

------------------

--示例
begin transaction;
UPDATE dbo.conbio
SET conbio_price1 = conbio_price1 - 1000
WHERE conbio_name = ‘叉子‘;

UPDATE dbo.conbio
SET conbio_price1 = conbio_price1 + 1000
WHERE conbio_name = ‘叉子‘;

DELETE FROM dbo.conbio WHERE conbio_id = ‘6‘;

rollback; -- COMMIT 承諾

--------------------------------------
--3.ACID 特性

--    (1)原子性(Atomicity):在事務結束時,其中包含的更新處理要麽全部執行,要麽完全不執行。

--    (2)一致性(Consistency):事務中包含的處理,要滿足數據庫提前設置的約束,也稱完整性。

--    (3)隔離性(lsolation):保證不同事務之前互不幹擾的特性。

--    (4)持久性(Durability):事務一旦結束,DBMS 會保證該時點的數據狀態得以保存的特性,也稱耐久性。

--------------------------------------

--歡迎關註個人公眾號:Zkcops

--2018/04/16 
 
由:zkcops 撰寫(希望能對你有所幫助,轉載註明出處!)
--------------------------------------

【SQL.基礎構建-第四節(4/4)】