mysql高阶语句+视图

目录

一,高阶语句

1.select:显示表格中一个或数个栏位的所有资料

2.where:条件查询

3.distinct: 查询不重复记录

4.AND|OR:且|或

5.IN:显示已知的值的资料

6.BETWEEN:显示两个值范围内的资料

7.ORDER BY:按关键字排序

8.HAVING:用来过滤由GROUP BY 语句返回的记录表

9.别名:alias

10.子查询:连接表格

11.通配符+like

二,mysql视图

三,NULL值,空值


一,高阶语句

1.select:显示表格中一个或数个栏位的所有资料

格式:SELECT "栏位" FROM "表名";

2.where:条件查询

格式:SELECT "栏位" FROM "表名" WHERE "条件";
嵌套/多条件,先执行括号内的,再执行括号外的

3.distinct: 查询不重复记录

格式:select distinct 字段 from 表名﹔

4.AND|OR:且|或

格式:SELECT "栏位" FROM "表名" WHERE "条件1" {[AND|OR] "条件2"}+ ;

5.IN:显示已知的值的资料

格式:SELECT "栏位" FROM "表名" WHERE "栏位" IN ('值1', '值2', ...);

6.BETWEEN:显示两个值范围内的资料

格式:SELECT "栏位" FROM "表名" WHERE "栏位" BETWEEN '值1' AND '值2';

7.ORDER BY:按关键字排序

格式:SELECT "栏位" FROM "表名" [WHERE "条件"] ORDER BY "栏位" [ASC, DESC];
ASC:是按照升序进行排序的,是默认的排序方式。
DESC:是按降序方式进行排序。

8.HAVING:用来过滤由GROUP BY 语句返回的记录表

通常与GROUP BY语句联合使;
格式:SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1" HAVING (函数条件);

9.别名:alias

格式:
列别名:SELECT column_name AS alias_name FROM table_name;
表别名:SELECT column_name(s) FROM table_name AS alias_name;

AS之后的别名,主要是为表内的列或者表提供临时的名称,在查询过程中使用,库内实际的表名 或字段名是不会被改变的;
如果表的长度比较长,可以使用 AS 给表设置别名,在查询的过程中直接使用别名;
1、对复杂的表进行查询的时候,别名可以缩短查询语句的长度
2、多表相连查询的时候(通俗易懂、减短sql语句)

10.子查询:连接表格

【最内层的子查询最优先】
子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语 句。
子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤。
格式:
#外查询
SELECT "栏位1" FROM "表格1" WHERE "栏位2" [比较运算符]
#内查询
(SELECT "栏位1" FROM "表格2" WHERE "条件");
#可以是符号的运算符,例如:=、>、<、>=、<= ;也可以是文字的运算符,例如 LIKE、IN、BETWEEN

11.通配符+like

% :百分号表示零个、一个或多个字符
_ :下划线表示单个字符
例:
'A_Z':所有以 'A' 起头,另一个任何值的字符,且以 'Z' 为结尾的字符串。例如,'ABZ' 和 'A2Z' 都符合这一个模式,而 'AKKZ' 并不符合 (因为在 A 和 Z 之间有两个字符,而不是一个字符)。
'ABC%': 所有以 'ABC' 起头的字符串。例如,'ABCD' 和 'ABCABC' 都符合这个模式。
'%XYZ': 所有以 'XYZ' 结尾的字符串。例如,'WXYZ' 和 'ZZXYZ' 都符合这个模式。
'%AN%': 所有含有 'AN'这个模式的字符串。例如,'LOS ANGELES' 和 'SAN FRANCISCO' 都符合这个模式。
'_AN%':所有第二个字母为 'A' 和第三个字母为 'N' 的字符串。例如,'SAN FRANCISCO' 符合这个模式,而 'LOS ANGELES' 则不符合这个模式。


格式:SELECT "栏位" FROM "表名" WHERE "栏位" LIKE {模式};

二,mysql视图

视图:数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了真实数据的映射;
功能:
简化查询结果集、灵活查询、可以针对不同用户呈现不同结果集、相对有更高的安全性;
本质而言视图是一种select(结果集的呈现);
视图适合于多表连接浏览时使用,不适合增、删、改;

视图和表的区别和联系:
1)联系:
视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。
一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

2)区别:
视图是已经编译好的sql语句,而表不是;
视图没有实际的物理记录,而表有;
show table status\G
表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在;
表可以及时对它进行修改,但视图只能有创建的语句来修改;
视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合;
从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构;
表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表;
视图的建立和删除只影响视图本身,不影响对应的基本表。(但是更新视图数据,是会影响到基本表的);

三,NULL值,空值

NULL也就是在字段中存储NULL值,空值也就是字段中存储空字符(’’)。
区别

1、空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。

2、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。

3、判断NULL 用IS NULL 或者 is not null,SQL 语句函数中可以使用IFNULL()函数来进行处理,判断空字符用 =’‘或者<>’'来进行处理。

4、在进行count()统计某列的记录数的时候,如果采用的NULL值,会别系统自动忽略掉,但是空值是会进行统计到其中的。

5、MySql中如果某一列中含有NULL,那么包含该列的索引则无效。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值