美文网首页程序员
【SQL.基础构建-第四节(4/4)】

【SQL.基础构建-第四节(4/4)】

作者: 择喀普斯 | 来源:发表于2018-04-18 09:41 被阅读0次

--      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

由:zkcops 撰写(希望能对你有所帮助,转载注明出处!)

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

相关文章

网友评论

    本文标题:【SQL.基础构建-第四节(4/4)】

    本文链接:https://www.haomeiwen.com/subject/drzmkftx.html