打开我的主页,资源中的SQL代码可以免费下载,其中包括5个表的创建代码和数据插入代码,后续文章中的SQL实践操作将会用到这些代码。
提醒:
对于字符串、日期、时间数据类型的值必须加单引号,数值和NULL不需要加。
SQL语法不区别大小写,但是数据是区分大小写的。
--基本语法
INSERT INTO TABLE_NAME
VALUES ('VALUE1','VALUE2','VALUE3',[NULL]);
--操作范例
INSERT INTO PRODUCTS_TBL
VALUES ('7725','LEATHER GLOVES',24.99);
插入的值的顺序应该与列在表中的次序保持一致。
--基本语法
INSERT INTO TABLE_NAME('COLUMN1','COLUMN2')
VALUES ('VALUE1','VALUE2');
--操作范例
INSERT INTO ORDERS_TBL (ORD_NUM,CUST_ID,PROD_ID,QTY)
VALUES ('12A16','109','7725',2);
如下图所示,插入值的次序要与字段次序对应即可。
INSERT语句中的字段次序不一定要和表定义中的字段次序相同。
--基本语法
INSERT INTO TABLE_NAMEN
VALUES ('COLUMN1',NULL,'COLUMN2');
--操作范例
INSERT INTO ORDERS_TBL (ORD_NUM,CUST_ID,PROD_ID,QTY,ORD_DATE)
VALUES ('23A16','109','7725',2,NULL);
对另一个表进行查询,然后将查询到的数据插入到表中。
SELECT 语句在下一节内容将总结到,是查询的主要命令,FROM 是查询中的一个子句,WHERE 用于设置查询条件。
--基本语法(中括号里内容视情况而定)
INSERT INTO TABLE_NAME [('COLUMN1','COLUMN2')]
SELECT [*|('COLUMN1','COLUMN2')]
FROM TABLE_NAME
[WHERE CONDITIONS(S)];
--操作范例,首先的先创建 PRODUCTS_TMP 表,然后插入从另一个表中查询到的数据。
CREATE TABLE PRODUCTS_TMP
(
PROD_ID VARCHAR(10) NOT NULL PRIMARY KEY,
PROD_DESC VARCHAR(40) NOT NULL,
COST DECIMAL (6,2) NOT NULL
);
INSERT INTO PRODUCTS_TMP
SELECT * FROM PRODUCTS_TBL;
一定要注意以下3点:
1.查询返回的数据字段要与INSERT语句指定的字段次序相同。
2.数据类型得兼容,如果想把‘ABC’的VARCHAR字段插入到数值字段,就会失败。
3.WHERE 子句规定哪条记录或者哪些记录需要更新。如果省略了该子句,所有的记录都将被更新!
--基本语法
UPDATE TABLE_NAME
SET COLUMN1 = 'VALUE1'
[COLUMN1 = 'VALUE2']
[COLUMN1 = 'VALUE3']
WHERE [CONDITIONS];
--范例一:更新单列数据
--假如不写 WHERE 条件语句,它会把列中每条QTY记录都更新为1
UPDATE ORDERS_TBL
SET QTY = 1
WHERE ORD_NUM ='23A16';
--范例二:更新多个字段的数据
UPDATE ORDERS_TBL
SET QTY = 1,
CUST_ID = '221'
WHERE ORD_NUM = '23A16';
-- 基本语法
DELETE FROM TABLE_NAME
[WHERE CONDITIONS];
--操作范例
DELETE FROM ORDERS_TBL
WHERE ORD_NUM = '23A16';
一定要意识到WHERE字句的重要性,在进行更新或者删除操作时,如果忽略了该子句,很可能对数据库造成影响。
在删除数据之前,可以使用SELECT语句对DELETE语句中的WHERE子句进行测试,这样可以对即将删除的数据进行验证,保证不会勿删。
对于初学者来说,写SQL语句时会经常出现标点符号、关键字等错误,出现错误的时候可以根据反馈的错误信息进行查找改正自己的错误。
下一节,将要总结简单查询的相关基础知识点。