一,SQL语言分类
(1)数据查询语言(DQL:Data Query Language)其语句,也称为 “数据检索语句”,用以从表中获得数据,确定数据怎样在应用程 序给出。关键字 SELECT 是 DQL(也是所有 SQL)用得最多的 动词。
- SELECT
- FROM
- WHERE
- ORDER BY
- HAVING
(2)数据操作语言(DML:Data Manipulation Language)其语句包括动词 INSERT,UPDATE 和 DELETE。它们分别用于添加, 修改和删除表中的行。
- INSERT:添加数据
- UPDATE:更新数据
- DELETE:删除数据
(3) 数据定义语言(DDL:Data Definition Language)定义数据库 对象语言,其语句包括动词 CREATE 和 DROP 等。
- CREATE:创建数据库对象
- ALTER:修改数据库对象
- DROP:删除数据库对象
(4 )数据控制语言(DCL:Data Control Language)它的语句通过 GRANT 或 REVOKE 获得许可,确定用户对数据库对象的访问。 GRANT:授予用户某种权限 REVOKE:回收授予的某种权限
- COMMIT:提交事务
- ROLLBACK:回滚事务
- SAVEPOINT:设置回滚点
ps:数据库语言不区分大小写,可以单行多行书写,结尾以分号结尾
二,DML
(1)添加数据(INSERT)
<1>选择插入
INSERT INTO 表名(列名 1 ,列名 2 ,列名 3.....) VALUES(值 1 ,值 2 ,值 3......);
<2>完全插入
INSERT INTO 表名 VALUES(值 1 ,值 2 ,值 3......);
因为完全插入不识别列,所以如果主键是自动增长,需要使用default或者null 或者0占位。
(2)默认值处理(DEFAULT)
在MySQL中可以使用 DEFAULT为列设定一个默认值。如果在插入数据时并未指定该列的值,那么MySQL会将默认值添加到该列中。
<1>创建表时指定默认值
CREATE TABLE 表名(列名 类型 default 默认值,......);
<2>修改表添加新列并指定默认值
ALTER TABLE 表名 ADD COLUMN 列名 类型 DEFAULT 默认值;
<3>插入数据时的默认值处理
insert into emp3(name) values("admin");
insert into emp3
values(default,"oldlu",default,default);
(3)更新数据(UPDATE)
UPDATE 表名 SET 列名=值,列名=值 WHERE 条件;
如果不指定where条件,那么就会对全体数据更新
(4)删除数据(DELETE)
<1>DELETE
DELETE FROM 表名 WHERE 条件;
如果不指定where条件,那么就会删掉全部数据
<2>TRUNCATE
TRUNCATE清空整张表,效果上相当于DELETE不指定where条件,但还是有区别的。
TRUNCATE TABLE 表名;
清空表时DELETE与 TRUNCATE 区别
- truncate是整体删除(速度较快), delete 是逐条删除(速度较慢);
- truncate不写服务器 log,delete写服务器 log,也就是truncate效率比delete高的原因;
- truncate是会重置自增值,相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的值。而delete 删除以后, 自增值仍然会继续累加。