MYSQL


AS别名:
(1)可以给字段取别名、可以给表名取别名

(2)AS 可以省略

(3)如果给字段取别名,如果别名中包含特殊符号,例如“空格”等,建议给别名加上双引号或单引号

(4)如果是给表名取别名,那么不能加双引号或单引号,也不能有特殊符号,例如“空格”等


去重DISTINCT

着重号:
例如:select `name` from t_stu;

可以给字段或表名加着重号

如果字段名或表名与关键字一样更要加着重号了

MYSQL运算符:
(1)算术运算符:+  -  *  /(除也可以写成div,div取整)   %(取模可以写成mod)

(2)比较运算符:=  >  >=  <  <=  !=(不等于还可以写成<>) <=>(安全等于)

(3)逻辑运算符:&&(逻辑与也可以写成and) ||(逻辑或也可以写成or) not(逻辑非) xor(逻辑异或)

(4)范围:表达式 between ... and ... (也可以写成 表达式>=...  and 表达式 <=...)

​           表达式 not between ... and ...(也可以写成 表达式<...  || 表达式 >...)

(5)集合:in (值,值,值...)  not in(值,值,值...)

(6)模糊查询:LIKE  NOT  LIKE,通配符:%表示0-n个字符,_下划线代表一个字符

(7)位运算符:&(按位与) |(按位或)^(按位异或)~(按位取反)>>(右移)<<(左移)

(8)NULL值判断,is null 或 is not null,如果使用null=null,null<>null,null=0,null<>0,null=false等都不对

不过xxx is null 可以使用xxx <=> null ,xxx  is not null 可以写成 not xxx <=> null

结论:所有的运算符遇到NULL结果都是NULL,除了<=>

 

关联查询 联合查询:

作用:从2张或多张表中,取出有关联的数据
关联查询一共有几种情况:

内连接:INNER JOIN 、CROSS JOIN
外连接:左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)、全外连接(FULL OUTER JOIN)
自连接:当table1和table2本质上是同一张表,只是用取别名的方式虚拟成两张表以代表不同的意义

说明:

(1)连接 n个表,至少需要 n-1个连接条件。 例如:连接三个表,至少需要两个连接条件。

(2)当两个关联查询的表如果有字段名字相同,并且要查询中涉及该关联字段,那么需要使用表名前缀加以区分

(3)当如果表名比较长时,可以给表取别名,简化SQL语句


关联条件:
1. WHERE:适用于所有关联查询
2.ON:只能和JOIN一起使用,只能写关联条件。虽然关联条件可以并到WHERE中和其他条件一起写,但分开写可读性更好。
3.USING:只能和JOIN一起使用,而且要求**两个**关联字段在关联表中名称一致,而且只能表示关联字段值相等

select:
1.where条件查询:从原表中的记录中进行筛选
2.group by分组查询:汇总操作
3.having筛选:
having与where类似,可筛选数据

       having与where不同点:
               1.where针对表中的列发挥作用,查询数据;                 having针对查询结果中的列发挥作用,筛选数据
               2.where后面不能写分组函数,而having后面可                    以使用分组函数
               3.having只用于group by分组统计语句

4.order by排序:按一个或多个字段对查询结果进行排序
5.limit分页:limit m,n
m表示从下标为m的记录开始查询,第一条记录下标为0,n表示取出n条出来,如果从m开始不够n条了,就有几条取几条。m=(page-1)*n,(page页码,n表示每页显示的条数)

事务:
DCL用来控制数据库的访问,包括如下SQL语句:

- GRANT:授予访问权限
- REVOKE:撤销访问权限
- COMMIT:提交事务处理
- ROLLBACK:事务处理回退
- SAVEPOINT:设置保存点
- LOCK:对数据库的特定部分进行锁定

特性:
- 原子性(Atomicity):原子意为最小的粒子,或者说不能再分的事物。数据库事务的不可再分的原则即为原子性。 组成事务的所有SQL必须:要么全部执行,要么全部取消(就像上面的银行例子)。

- 一致性(Consistency):指数据的规则,在事务前/后应保持一致
- 隔离性(Isolation):简单点说,某个事务的操作对其他事务不可见的.
- 持久性(Durability):当事务提交完成后,其影响应该保留下来,不能撤消

用法:
- 开启事务(start transaction)
- 执行sql操作(普通sql操作)
- 提交/回滚(commit/rollback)

数据库的隔离级别:
- 脏读**: 对于两个事务 T1, T2, T1 读取了已经被 T2 更新但还**没有被**事务提交**的字段. 之后, 若 T2 **回滚事务, T1读取的内容就是临时且无效的.
- **不可重复读**: 对于两个事务 T1, T2, T1 读取了一个字段, 然后 T2 **更新并提交**了该字段. 之后, T1再次读取同一个字段, 值就不同了.
- **幻读:** 对于两个事务 T1, T2, T1 从一个表中读取了一个字段, 然后 T2 在该表中**插入、删除**了一些新的行. 之后, 如果 T1 再次读取同一个表, 就会**多出、少了**几行.


权限与安全:
1.权限系统工作原理:
- 对连接到数据库的用户进行身份认证,以此来判断此用户是否属于合法的用户,合法的用户通过认证,不合法的用户拒绝连接
- 对通过认证的合法的用户则赋予相应的权限,用户可以在这些权限范围内对数据库做相应的操作
 

posted @ 2020-10-21 20:40  表妹  阅读(62)  评论(0)    收藏  举报