操作MySQL数据库中的数据表的记录包括:记录的插入、记录的修改、记录的删除和记录的查询。简单来说、就
是数据表中的记录的增删改查。
一插入记录
MySQL数据库中的数据表的记录的插入包括三种形式,在前面我们操作数据表的时候就已经使用过记录的插入。
那只是我们最常使用的一种方式而已,接下来我们来看看记录的三种插入方式:
(1)INSERT命令
MySQL数据库中的数据表中插入记录的第一种语法格式,也是最常用的一种语法格式为:
INSERT [INTO] table_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...;
例子:
我们在向数据表中写入记录的同时,首先先来创建一张数据表,并来查看所有字段:
CREATE TABLE users3(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL,password VARCHAR(32) NOT NULL,
age TINYINT UNSIGNED NOT NULL DEFAULT 10,
sex BOOLEAN
);
DESC users3;
1)省略所有字段的情况
下面记录的插入列出了插入字段的各种情况:
INSERT users3 VALUES(NULL,'Tom','123',25,1);
INSERT users3 VALUES(NULL,'John','223',DEFAULT,0);
INSERT users3 VALUES(DEFAULT,'Rose','323',25,1);
INSERT users3 VALUES(DEFAULT,'Paul','123',23-5+1,1);
SELECT * FROM users3;
INSERT users3 VALUES(DEFAULT,'Tom','123',25);
上面的出错情况表明插入的记录与列的个数不匹配,因此如果我们做记录插入时省略所有字段名称的情况下,要
依次插入与列数相同个数的值,否则记录的写入不成功,向数据表中写记录的时候切记这一点。
2)插入指定字段的情况:
INSERT users3(username,password,age) VALUES('Kobe','111',23);
SELECT * FROM users3;
3)插入多条记录的情况:
INSERT users3 VALUES(NULL,'Dave','456',23,0),(NULL,'Jack','456',24,1);
SELECT * FROM users3;
(2)INSERT SET命令
MySQL数据库中向数据表中插入记录的第二种语法格式为:
INSERT [INTO] table_name SET col_name={expr | DEFAULT},...;
解释说明:与第一种插入记录方式的区别在于,此方法可以使用子查询(SubQuery)。引发子查询有三种情况,其
中有一种情况叫做由比较运算符引起的子查询,这里等号(=)也可以算是一种典型的比较运算符。此方法还有一个与第
一种方法的区别是,第一种可以一次性插入多条记录,但是第二种方法一次性只能插入一条记录。
例子:
INSERT users3 SET username='Jord',password='345';
SELECT * FROM users3;
(3)INSERT SELECT命令(超纲)
MySQL数据库中向数据表中插入记录的第三种语法格式为:
INSERT [INTO] table_name [(col_name,...)] SELECT ...;
解释说明:此方法可以将查询结果插入到指定数据表。由于我们现在了解的SELECT语句比较少,现在并不好理
解,但我们还是照常写出例子,学完了后面记录的查询我们也可以回过头来再次学习。
例子:
1在插入记录前,先来创建一个空的数据表test:
CREATE TABLE test(
id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20)
);
2我们将数据表users3中的年龄大于25的记录的username插入到数据表test中:
INSERT test(username) SELECT username FROM users3 WHERE age > 25;
3查询数据表test的记录:
SELECT * FROM test;
二更新记录
MySQL数据库更新数据表的记录也是再经常不过的事了,简单的说就是更改某些记录的某些字段,或者重新赋值
等等。更新记录的方式包括单表更新和多表更新,这里我们只学单表更新,多表更新在后面叙述。
来看看单表更新的语法格式:
UPDTAE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1 | DEFAULT} [,col_name2=
{expr2 | DEFAULT}] ... [WHERE where_condition];
(1)省略关键字WHERE的情况
如果省略关键字WHERE,导致的是将更新所有的记录。
例子:
1)更新一列:
SELECT * FROM users3;UPDATE users3 SET age = age + 5;
SELECT * FROM users3;
2)更新多列:
SELECT * FROM users3;
UPDATE users3 SET age = age - id,sex = 0;SELECT * FROM users3;
(2)有关键字WHERE下指定几条记录更新的情况
UPDATE users3 SET age = age + 10 WHERE id % 2 =0;
SELECT * FROM users3;
三删除记录
既然MySQL数据库中的数据表的记录有插入和更新,肯定的就有删除记录的情况,删除记录的方式也有两种:单
表删除和多表删除,这里也是只说单表删除。
单表删除的语法格式:
DELETE FROM table_name [WHERE where_condition];
例子:
指定条件删除,如果不指定删除哪几条记录,将会全部删除。DELETE FROM users3 WHERE id = 6;
SELECT * FROM users3;
假设我们再重新插入一条记录,那么插入记录的id字段的值是多少呢?
INSERT users3 VALUES(NULL,'Bob','234',34,1);
SELECT * FROM users3;