- 数据操作语言 Data Manipulation Language,简称DML,主要用来操作数据表中的数据。
- 常见操作:
- 增加行数据:INSERT
- 修改行数据:UPDATE
- 删除行数据:DELETE
- 常见操作:
- 插入数据
- 语法
- INSERT INTO 表名[(字段列表)] VALUES
- (值列表1),
- (值列表2),
- …
- (值列表n);
- INSERT INTO 表名[(列名1[,列名2,…,列名n])] 子查询; --注意不写values关键字
- 插入空值的2种方法:
- 1、隐含法:在列名列表中忽略该列
- 2、显示法:在值列表中指定NULL关键字或者 ' '
- 插入日期值 sysdate() 记录当前日期和时间
- 语法
- 修改数据
- 语法
- update table
- set 列名=值,列名=值···
- where 条件;
- 语法
- 删除数据
- 语法
- DELETE FROM table
- [WHERE condition];
- 截断表:TRUNCATE TABLE table;
- 区别:
- 1、DELETE是DML,可以删除指定记录,不释放存储空间,使用ROLLBACK可以回滚。
- 2、TRUNCATE是DDL,只能删除表中所有记录,释放存储空间,使用ROLLBACK不可以回滚。
- 语法
- 事务 DQL DML + DDL or DCL
- 概念:数据库的一个执行逻辑单元,或数据库执行的一组sql,执行要么全部成功,要么全部失败,通过事务保证数据的一致性。
- 事务特性:ACID
- Atomicity, 原子性。事务就像原子一样不可分割,DML语句要么全成功,要么全失败。
- Consistency,一致性。一旦事务完成,不论成败,整个系统处于数据一致的状态。
- Isolation, 隔离性。一个事务的执行不会被另一个事务干扰。
- Durability, 持久性。事务一旦提交,对数据的修改就是永久的,不可回滚。
- 查看MySQL的事务自动提交模式:SHOW VARIABLES LIKE '%AUTOCOMMIT%';
- 设置
- set autocommit = 0 禁止自动提交
- set autocommit = 1 开启自动提交
- 设置
- 事务显示提交:commit
- 事务显示回滚:rollback (savepoint rollback to)
- 事务隐式提交:DDL(create、alter、drop、truncate、rename)+DCL(grant、revoke)
- 事务隐式回滚:客户端强退、客户端连接异常、系统异常
- 简单查询
- SQL语言
- SQL:Structed Query Language 结构化查询语言
- SQL语句规则:
- 1、不区分大小写
- 2、可以写单行也可以写多行
- 3、关键字不可以缩写、分开、跨行
- DQL:Data Query Language,select 数据查询语言
- DML:Data Manipulation Language,insert,delete,update 数据操作语言
- TPL:Transaction Process Language,commit,callback 事务处理语言
- DCL:Data Control Language,grant,revoke 数据库控制功能
- DDL:Data Definition Language,create,drop,alter 数据库模式定义语言
- SQL:Structed Query Language 结构化查询语言
- 基本select语句 select ··· from table;
- 任何包含空值的算术表达式运算后的结果都为空值null
- 使用ifnull(字段名, 值)
- 列别名
- 列名 [as] 列别名
- 列别名两侧加双引号""
- 1、包含空格
- 2、区分大小写
- 3、特殊字符
- 消除重复行 distinct
- select distinct ··· from table;
- 选择限定行
- select ··· from table where ····;
- 特殊比较运算符
- between···and··· 是否范围内
- in 是否在集合列表中
- like 部分匹配,也叫模糊查询
- % 任意个字符
- _ 单个字符
- is null 是否为空
- order by子句
- select ··· from table where ···
- order by ······
- 可以按照······进行排序
- asc默认升序
- desc降序
- 可以按照······进行排序
- 限制行数
- select ··· from table where ···
- limit [start,]length;
- start表示开始行(0开始),length输出的行数
- SQL语言