mysql 基础学习笔记

目录

查询:

DML语言:插入,删除,更新

DDL语言:数据定义语言

数据类型介绍:

TCL语言:事务控制语言

视图

变量,存储过程和函数,流程控制结构



查询:

distinct 去重

  

sql中的不等于:!= 和<>

% 通配符匹配任意多个,_ 匹配一个字符。

between and 带等号

in 关键字:

排序查询 order by

常见函数:

分组函数:

分组函数:

having 关键字用于分组 group by后的删选

连接查询:

1.笛卡尔积:

注:在sql中l外连接包括左连接(left join )和右连接(right join),全外连接(full join),等值连接(inner join)又叫内连接。

基本定义:
  left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。
  right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。
  inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。
  full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。
 

非等值连接:不用值相等去查找,也可能没有相同列。

 

自连接:同一张表找了两遍,起了别名e用于区分

内连接,外连接实际上都是在笛卡尔积(join)的基础上对记录进行筛选。

等值连接和非等值连接:这两者同时包含在内连接和外连接中,因为内连接和外连接都是需要连接条件的,条件为=则为等值连接,反之为非等值连接。

自然连接:等值连接的一种,使用natural join后面可以不使用on接查询条件,默认会将关联表中的相同字段进行比较,查询出的结果相同的字段会去重(值必须相等)。

内连接:使用inner join和join连接都行,重点是要有查询条件,条件使用on或者where引导查询都行,查询出的结果为两表都匹配的记录。

外连接:分为左外连接,右外连接,要有查询条件,条件只能使用on引导查询。左外连接查询出的结果除了两表都匹配的记录外,还会查询出左表的其余记录,同时右表对应记录置为null,左外连接则相反。

sql 99 语法:

非等值连接:

外连接:

左连接:

交叉连接就是笛卡尔积:

子查询:

标量子查询

列子查询:any是任意一个,即随便哪个都行,all是所有。

等价于:

行子查询:

等价于:

放在select后的子查询:

1。原始方法

三:from 后面的子查询,子查询一般返回一个表

四:放在exists后面的子查询(相关子查询)

exists返回一个布尔值。

分页查询:

联合查询:union

union可以在不同表上使用,这个是优势,局限是查询的内容必须相同。

DML语言:插入,删除,更新

插入:

两种方式对比:

修改语句:

删除语句:

DDL语言:数据定义语言

表的管理:

表的删除:

表的复制:

ddl常见约束:

面试题:主键和唯一的对比:组合是指多个列组合成一个。

外键的特点:为了保证数据一致性,其实是从表必须满足主表的约束。即这一列的类型必须和主表一致或者兼容。

修改表时添加约束:

修改表时删除约束:

标识列:自增长列

 

数据类型介绍:

小数:

字符型:

char定义后,输入数据的长度固定。

日期型:

TCL语言:事务控制语言

事务:

在commit之前,只是把数据保存到了内存,这时可以rollback取消。

事务的隔离性

不可重复读:一个事物修改了一个字段,在commit之前,被另一个事务读取,commit之后,另一个事务读到的是commit后的字段,这个叫不可重复读。

幻读:一个事务操作过程中,被另一个事务插入数据,导致更新操作实际改变的数据偏多。

串行化之后,会导致其他事务操作被阻塞,所以实现了最高级别隔离。

delete支持回滚,trancate不支持。

 

视图

举个栗子,领导来某学校视察跳舞,学校临时从每个班抽几个人组建舞蹈班,这个舞蹈班就是视图。领导走了之后就解散了。并不真实存在。领导二次来,就可以直接再用这些同学。普通班就是表。

视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。这个视图就像一个“窗口”,从中只能看到你想看的数据列。这意味着你可以在这个视图上使用SELECT *,而你看到的将是你在视图定义里给出的那些数据列:

 

视图的修改:

视图的更新:修改视图的数据,有的能实现原始表更新,有的不能。注意视图的权限。

变量,存储过程和函数,流程控制结构

变量:

会话变量:

自定义变量:

局部变量:

存储过程和函数:

带in模式参数的存储过程:

带out的存储过程:

带inout模式的存储过程:

删除存储过程:

desc是错误的。

函数:

函数的查看和删除:

流程控制结构:

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章