数据库操作语言(DML)使得数据库用户能够对关系型数据库了里面的数据进行修改,包括用新数据填充表,更新现有表中的数据,删除表里面的数据。
SQL里面的3个基本的DML命令:
INSERT
UPDATE
DELETE
把数据插入表中
INSERT语句的基本语法
INSERT INTO TABLE_NAME VALUES('value1','value2',[NULL]);
我们新建一张表进行插入数据的测试
CREATE TABLE TestTable1
(
ID VARCHAR(10) NOT NULL,
NOTE VARCHAR(25) NOT NULL,
COST INT NOT NULL
);
(i)基本插入语句
INSERT INTO TestTable1 VALUES('1024','Gone with the wind',25);
1 row ceeated
在这个例子中,3个值被插入到一个具有3列的表中,值的顺序与列在表中的次序一致。前两个值使用单引号包围,因为与之对应的类型是字符型,第三个数值是Int型的,所以不需要使用单引号。
(ii)给指定列插入数据
INSERT INTO TestTable1(ID,NOTE,COST) VALUES('2048','New View', 30);
可以看到表名后面我们还指定了列名,使用这种方法,我们就能向制定的列中插入数据。当然,列名的顺序可以自定义,只需要将 后面的数据顺序和列名顺序对应起来就行了。
INSERT INTO TestTable1(COST,NOTE,ID) VALUES(44,'Old View', 'Ok'),(54,'Old Old', 'Fine');
这个时候查询一下表中的数据
ID NOTE COST
1024 Gone with the wind 25
2048 New View 30
Ok Old View 44
Fine Old Old 54
这里的每个字段都需要有值,因为都被设置了NOT NULL属性。
(iii)从另一个表中插入数据
格式
INSERT INTO TABLE_NAME [('column1','column2')]
SELECT [*|('column1','column2')]
FROM TABLE_NAME
[WHERE Conditation(s)];
首先创建表TestTable2,字段和TestTable1相同
INSERT INTO TestTable2
SELECT *
FROM TestTable1;
此时 , TestTable2中就包含了TestTable1中的全部数据,当然你也可以对其中的条件进行限制直到自己满意为止。
更新现有数据
查询一下TestTable2表中的数据为
ID NOTE COST
1024 Gone with the wind 25
2048 New View 30
Ok Old View 44
Fine Old Old 54
(i)更新一列数据
语法
UPDATE TABLE_NAME SET COLUMN_NAME = 'value' [WHERE Condition]
进行一次更改
UPDATE TestTable2 SET ID = '8888' WHERE cost = 25;
此时的数据变为
ID NOTE COST
8888 Gone with the wind 25
2048 New View 30
Ok Old View 44
Fine Old Old 54
此时cost = 25的记录,ID变成了8888。
(ii)更新一条或多记录里的多个字段
UPDATE TABLE_NAME
SET column1 = 'value1',
[column2 = 'value2'],
[column3 = 'value3']
[WHERE condition];
在此就不做过多的介绍了。
删除数据
注意使用 delete语句的时候如果没有where子句,表中的所有数据都将被删除,作为一条规则,delete语句应该总是使用where子句。
DELETE FROM TABLE_NAME [WHERE condition];