前言
前两篇博客总结完了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语言我们已经差不多都学完了,剩下来的就是多多的去练习掌握了,坚持与努力!