前言
前两篇博客总结完了MySQL对数据的查询,包括基本查询和高级查询,我们终于结束了查询这一部分了,不过有一说一查询这一部分还是非常非常重要的,有了这部分的基础我们才能继续学习MySQL后面的知识,如果你还没有学习这部分那我建议你先去看一下,再回来继续学习。
传送门:
【MySQL】数据库的基本查询.
【MySQL】数据库的高级查询.
接下来我们正式来学习这部分内容
INSERT语句
在创建数据库完成之后,我们需往数据库中出入数据,在MySQL中可以使用INSERT
语句向数据库已有数据库表插入一行或者多行数据。
INSERT
语句有两种语法形式,分别是INSERT..VALUES....
语句和INSERT...SET...
语句,接下来我们就分别来总结一下它们的异同之处。
INSERT LALUES语法格式:
INSERT INTO 表名 (列名1,列名2,列名3...)VALUES(数值1,数值2,数值3...);
如需要向表中所有的列去插入数据,可直接忽略列名,直接采用:
INSERT 表名 VALUES(数值1,数值2,数值3...);
INSERT SET语法格式:
INSERT INTO 表名 SET 列名1 = 值1,列名2=值2,列名3=值3...;
这种SQL语句是MySQL里面的方言,也就是只能在MySQL中使用,比较适合单行插入数据
总结一下INSERT
语句的特点:
- 使用
INSERT…VALUES
语句可以向表中插入一行数据,也可以插入多行数据;- 使用
INSERT…SET
语句可以指定插入行中每列的值,也可以指定部分列的值;INSERT…SELECT
语句向表中插入其他表的数据;- 采用
INSERT…SET
语句可以向表中插入部分列的值,这种方式更为灵活;INSERT…VALUES
语句可以一次插入多条数据;- 用单条
INSERT
语句处理多个插入要比使用多条INSERT
语句更快;- 当使用单条
INSERT
语句插入插入多行时,只需要将每行数据用园括号括起来即可;
示例:
create table student(
id INT PRIMARY KEY NOT NULL,
name VARCHAR(4) NOT NULL,
age INT NOT NULL,
sex CHAR(1) NOT NULL,
class VARCHAR(10) ,
birthplace varchar(10),
id_teach INT UNSIGNED NOT NULL
);
INSERT student VALUE
('88201','张三',18,'男','软件211','浙江杭州',689),
('88202','李四',19,'男','软件212','河南郑州',898),
('88203','小红',18,'女','计算机211','北京',758),
('88204','王五',16,'男','软件214','浙江杭州',589);
输出:
UPDATE语句
UPDATE
的功能是更新表中的数据。这的语法和INSERT
的第二种用法相似。必须提供表名以及SET
表达式,在后面可以加WHERE
语句以限制更新的记录范围。
语法格式:
UPDATE 表名 SET 字段1=值1,字段2=值2... WHERE 条件;
示例:张三变性成为了女性
UPDATE student SET sex="女" WHERE name="张三";
输出:
如果不加上WHERE子句来限制条件UPDATE将更新表中的所有记录的值,如:
UPDATE student SET sex="女" ;
输出:
也就是说这个SQL 语句根据WHERE
语句来选择是哪几行数据需要更新,然后根据SET语句来选择有哪几个字段需要修改。
DELETE语句
MySQL 中,可以使用 DELETE
语句来删除表的一行或者多行数据。
语法格式:
DELETE FROM 表名 WHERE 条件
示例:张三被退学了
DELETE FROM student WHERE name="张三";
输出:
注意:在不使用WHERE
子句条件时,将会删除所有数据。如下:
DELETE FROM student ;
输出:
这里要注意删除的是表中的数据而不是表,与之前的DROP
语句是不一样的,这里的表还是存在的,只不过是空表而已。
结语
用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT
语句,另外一种就是更新语句,也叫做数据操作语句,就是我们今天学习的INSERT、UPDATE
和DELETE
语句。
所以到目前为止,SQL语言我们已经差不多都学完了,剩下来的就是多多的去练习掌握了,坚持与努力!
下期预告:MySQL基本函数的使用
持续更新…