MySQL数据库中SQL语句的基本使用(二)

来源:互联网 发布:js input 光标颜色 编辑:程序博客网 时间:2024/05/21 06:35

上一篇文章主要介绍了DDL,主要是对数据库 、数据表、以及表中字段的修改等等。今天我要介绍的是DCL操作,主要是对数据表进行增、删、改、查等操作。对应的关键字为insert 、delete、update、select,所以不要和DDL混淆。

1、INSERT(插入操作)

insert是对已有的数据表中添加数据,基本的语法如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]    [INTO] tbl_name [(col_name,...)]    VALUES ({expr | DEFAULT},...),(...),...    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]或:INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]    [INTO] tbl_name    SET col_name={expr | DEFAULT}, ...    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]或:INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]    [INTO] tbl_name [(col_name,...)]    SELECT ...    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

其中insert…values和insert…set这两种方式是插入已经存在的数据,而insert…select是从其他表中选取的行作为数据。实际中常用插入语句为insert…values。
下面则举例向上一篇创建的数据库student中添加数据。

insert into (id,name,birthday,age,resume) values(1,bob,2010-1-1,12.0,null);

也可以做批量插入数据:

insert into student values(2,'ss','2015-09-01',10.0,NULL),(3,'pp','2015-09-01',11.0,NULL),(4,'lee','2015-09-01',12.0,NULL);

在插入数据是要注意一下几点:

1. 数据表中的列名和列值顺序、数据类型、个数要一一对应。2. 列值不要超过定义的数据范围3. 如果添加空值,请填写null4. 插入日期和字符串都要用‘’

2.UPDATE(修改操作)

基本语法为:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name    SET col_name1=expr1 [, col_name2=expr2 ...]    [WHERE where_definition]    [ORDER BY ...]    [LIMIT row_count]

update语句可以用新值更新原有表行中的各列。set子句指示要修改那些列和要给予那些值。where子句指定应更新那些行。如果没有where子句,则更新所有的行。如果指定了order by子句,则按照被指定的顺序对行进行更新。limit子句用于给定一个限定值,限制被更新的行的数目。

将student表中所有记录的age字段改成18.0:update student set age = 18.0;

没修改之前结果如下:

这里写图片描述

修改之后的结果如下:

这里写图片描述

修改某条记录中的字段值,例如修改id=1的这条记录的age值update student set age = 12.0 where id = 1;

修改之后的结果如下所示:

这里写图片描述

3.delete (删除操作)

删除操作的基本语法如下:

单表语法:DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name    [WHERE where_definition]    [ORDER BY ...]    [LIMIT row_count]多表语法:DELETE [LOW_PRIORITY] [QUICK] [IGNORE]    tbl_name[.*] [, tbl_name[.*] ...]    FROM table_references    [WHERE where_definition]或:DELETE [LOW_PRIORITY] [QUICK] [IGNORE]    FROM tbl_name[.*] [, tbl_name[.*] ...]    USING table_references    [WHERE where_definition]

tbl_name中有些行满足由where_definition给定的条件。DELETE用于删除这些行,并返回被删除的记录的数目。delete主要是删除表中记录的。如果在编写的语句中没有添加where子句,那么相当于删除表中所有的记录。下面举例说明:

删除 student表中id = 2 的这条记录delete from student where id = 2

这里写图片描述

删除表中所有的记录delete from student ;

删除表中所有记录还可以使用truncate关键字,它的基本语法如下

TRUNCATE [TABLE] tbl_name

delete 和 truncate的区别为:

DELETE 删除表中的数据,表结构还在;删除后的数据可以找回TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表。删除的数据不能找回。执行速度比DELETE快。