首页 > 数据库 >mysql高阶语句+视图

mysql高阶语句+视图

时间:2022-12-02 21:48:24浏览次数:35  
标签:栏位 name 视图 查询 mysql NULL 高阶 SELECT

一,高阶语句

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.GROUP BY:对GROUP BY后面的栏位的查询结果进行汇总分组

格式:SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator value GROUP BY column_name;
例:
select count(name),hobbid from ceshi group by hobbid;
结合where语句:
select count(name),hobbid from ceshi where score>=80 group by hobbid;

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' 和 'ADZ';
'ABC%': 所有以 'ABC' 起头的字符串。例如,'ABCD' 和 'ABCEF' ;
'%ABC': 所有以 'ABC' 结尾的字符串。例如,'AABC' 和 'EFABC' ;
'%AB%': 所有含有 'AB'这个模式的字符串。例如,'GKASABIKJ' 和 'SHOW AB XLK' ;
'_AB%':所有第二个字母为 'A' 和第三个字母为 'B' 的字符串.


格式: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,那么包含该列的索引则无效。

标签:栏位,name,视图,查询,mysql,NULL,高阶,SELECT
From: https://www.cnblogs.com/y0226/p/16945700.html

相关文章

  • mysql备份与恢复
    一,mysql日志1.mysql日志类型日志类型与作用:1.redo重做日志:达到事务一致性(每次重启会重做)作用:确保日志的持久性,防止在发生故障,脏页未写入磁盘。重启数据库会进行redo......
  • MYSQL主从复制与读写分离
    一,主从复制1.原理主从复制原理:首先主库发送更新事件到从库;然后从库读取更新记录,并执行更新记录;最后使得从库的内容与主库保持一致。2.复制类型基于语句的复制(STAT......
  • MySQL之高可用集群MHA及故障切换
    一,MHA1.MHA概念MHA(MasterHighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案;在MySQL故障切换的过程中,MHA能做到0~30秒之内自动完成数据库的故障切换操作......
  • Mysql 多表查询总结
    在做毕业设计时,对数据库的查询用到了多表查询,之前学的一知半解的,借着这个机会,又查了些资料,复习了一下,记录下来,以便日后用到时能快速解决问题。下面实例中用到的是MySQL:my......
  • MySQL主从复制与读写分离
    一、案例概述在实际的生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,一......
  • 命令窗口下excel数据导入到Mysql 和 mysql数据导出到excel
    1.mysql导出到excel1.1.SELECT*INTOOUTFILE‘/test.xls’FROMtable1;2.excel导入到mysql:2.1.将选中的数据块儿(不包含表头)拷贝到一个TXT文本文件中,假如存到“D:\data......
  • mysql导入sql脚本时错误指令:Failed to open file
    遇到这种错误,在尝试了多种办法之后依然无果,把文件名中的中文字符删掉之后就可以了,所以可能是是由于sql脚本文件名中包含中文字符和空格将数据库表文件sql脚本导入mysql中方......
  • eclipse配置连接mysql出现ping failed
    记录下自己在配置的过程中出现的问题。配置好之后的样子是这样的:我遇到的第1个问题是,由于eclipse版本的问题,缺少database插件,导致试图里面没有DataSource的选项,后来装完da......
  • MySQL日志管理,备份和恢复
    一.MySQL日志管理1.1mysql日志概述备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等。在备份、恢复中,日志起到了很重要的作用。MySQ......
  • mysql 快速迁移百万数据 mysqldump
    从目标库导出数据C:\ProgramFiles\MySQL\MySQLServer8.0\bin>mysqldump-uroot-ptestdb_db>c:/testdb.dump导入目标库C:\ProgramFiles\MySQL\MySQLSe......