1、增:插入数据
INSERT关键字可以插入新的行到数据库表中:
- 插入完整的行
- 插入行的一部分
- 插入多行
- 插入某些查询的结果
基本的INSERT语句是:
INSERT INTO R(A1, A2, ..., An) VALUES (V1, V2, ..., Vn); 1
1
INSERT INTO R(A1, A2, ..., An) VALUES (V1, V2, ..., Vn); 1.1 插入完整的行
如下例:
INSERT INTO Customers
VALUES
(
NULL,
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA',
NULL,
NULL
)13
1
INSERT INTO Customers2
VALUES3
(4
NULL,5
'Pep E. LaPew',6
'100 Main Street',7
'Los Angeles',8
'CA',9
'90046',10
'USA',11
NULL,12
NULL13
)- 每个列必须提供一个值,没有的话也应该填NULL
- 插入内容必须以它们在表中定义出现的次序填充
这种语法简单,但是并不安全,而且繁琐,尽量避免使用。
1.2 插入行的一部分
如下例:
INSERT INTO customers
(
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
VALUES
(
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA'
);17
1
INSERT INTO customers2
(3
cust_address,4
cust_city,5
cust_state,6
cust_zip,7
cust_country8
)9
VALUES10
(11
'Pep E. LaPew',12
'100 Main Street',13
'Los Angeles',14
'CA',15
'90046',16
'USA'17
);- 这种方式可以替代之前的整行插入,只需要你把所有的列填完
- VALUES必须跟SQL中制定的匹配列次序相同
- VALUES不需要跟表中列的次序相同
- 省略的列必须满足一定条件,即允许为NULL或表中有默认值设定
1.3 插入多个行
如下例:
INSERT INTO customers
(
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
VALUES
(
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA'
),
(
'M Martian',
'42 Galaxy Way',
'New York',
'NY',
'11213',
'USA'
);25
1
INSERT INTO customers2
(3
cust_address,4
cust_city,5
cust_state,6
cust_zip,7
cust_country8
)9
VALUES10
(11
'Pep E. LaPew',12
'100 Main Street',13
'Los Angeles',14
'CA',15
'90046',16
'USA'17
),18
(19
'M Martian',20
'42 Galaxy Way',21
'New York',22
'NY',23
'11213',24
'USA'25
);1.4 插入某些查询的结果
这种方式是所谓的INSERT SELECT,顾名思义,即INSERT语句和SELECT语句组成的。如下例:
INSERT INTO
customers
(
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
SELECT
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
FROM
custnew;17
1
INSERT INTO 2
customers3
(4
cust_address,5
cust_city,6
cust_state,7
cust_zip,8
cust_country9
)10
SELECT11
cust_address,12
cust_city,13
cust_state,14
cust_zip,15
cust_country16
FROM17
custnew;- 例中INSERT和SELECT列名虽然相同,但是并没有强制要求,它仍然是根据次序位置来填充数据的
2、删:删除数据
基本语句:
DELETE FROM R WHERE <选择条件>;1
1
DELETE FROM R WHERE <选择条件>;3、改:更新数据
基本语句:
UPDATE R SET A1=E1, A2=E2, ..., An=En WHERE <选择条件>;1
UPDATE R SET A1=E1, A2=E2, ..., An=En WHERE <选择条件>;