mysql中的通配符、别名以及排序等语句的使用
前言 关键字排序 语法
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ...
创建一个无序表
ORDER BY 语句也可以使用多个字段来进行排序,
当排序的
文章目录 前言 关键字排序 语法
创建一个无序表 ORDER BY 语句也可以使用多个字段来进行排序, 当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序, ORDER BY 后面跟多个字段时,字段之间使用英文逗号隔开,优先级是按先后顺序而定 但order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义 查看来自text05表中的id,name,score,address并将其 id和score进行 倒叙排序
查询学生信息先按id降序排列,如果id相同,那么分数也按降序排列 区间判断及查询不重复记录 普通匹配
嵌套组合匹配
查询不重复记录
对结果进行分组 通过 SQL 查询出来的结果,还可以对其进行分组,使用 GROUP BY 语句来实现 ,GROUP BY 通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN),GROUP BY 分组的时候可以按一个或多个字段对结果进行分组处理。
按hobbid相同的分组,计算相同分数的学生个数
结合where语句,筛选分数大于等于270的分组,并计算学生个数
count(聚合函数中的计数记录次数
结合order by把计算出的学生个数按升序排列
限制结果条目 limit 限制输出的结果记录 在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅 需要返回第一行或者前几行,这时候就需要用到 limit 子句 语法
以score排序 并查看头三行
2. 查看第二行以下的三行内容 不包括第二行
3. 结合order by语句,按score的大小升序排列显示第三行
4. 基础select 小的升阶 怎么输出最后五行
设置别名 alias——>as 在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者 多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性 语法
在使用 AS 后,可以用 alias_name 代替 table_name,其中 AS 语句是可选的。AS 之后的别名,主要是为表内的列或者表提供临时的名称,在查询过程中使用,库内实际的表名 或字段名是不会被改变的 查询info表的字段数量,以top显示
使用场景:
此外,AS 还可以作为连接语句的操作符。 创建ppp表,将text03表的查询记录全部插入t6表 此处AS起到的作用: 1、创建了一个新表t6并定义表结构,插入表数据(与info表相同) 2、但是”约束“没有被完全”复制“过来 #但是如果原表设置了主键,那么附表的:default字段会默认设置一个0 相似: 克隆、复制表结构
#也可以加入where 语句判断
在为表设置别名时,要保证别名不能与数据库中的其他表的名称冲突。 列的别名是在结果中有显示的,而表的别名在结果中没有显示,只在执行查询时使用。 更改列名
通配符 通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来。 通常通配符都是跟 LIKE 一起使用的,并协同 WHERE 子句共同来完成查询任务。常用的通配符有两个,分别是:
匹配name中 以l为开头的
匹配iname中 以l为开头i为结尾的
匹配name中间有a的记录
4. 查询han后面字符的名字记录
组合搭配
子查询 子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语句。 子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一步的查询过滤。 PS: 子语句可以与主语句所查询的表相同,也可以是不同表 相同表示例:
子语句中的sql语句是为了,最后过滤出一个结果集,用于主语句的判断条件
多表查询
子查询不仅可以在 SELECT 语句中使用,在 INERT、UPDATE、DELETE 中也同样适用。在嵌套的时候,子查询内部还可以再次嵌套新的子查询,也就是说可以多层嵌套。 统计分数大于270的个数有几个
子查询还可以用在 INSERT 语句中。子查询的结果集可以通过 INSERT 语句插入到其他的表中 将test1里的记录全部删除,重新插入text05表的记录
在 IN 前面还可以添加 NOT,其作用与 IN 相反mysql通配符使用,表示否定(即不在子查询的结果集里面) 删除分数不是大于等于80的记录
EXISTS 这个关键字在子查询时,主要用于判断子查询的结果集是否为空。如果不为空, 则返回 TRUE;反之,则返回 FALSE 查询如果存在分数等于80的记录则计算info的字段数
6. 子查询,别名as
以上命令可以查看到info表的内容 #将结果集做为一张表进行查询的时候,我们也需要用到别名,示例: 需求:从info表中的id和name字段的内容做为"内容" 输出id的部分: #select * from 表名 此为标准格式,而当用
以上的查询语句,“表名"的位置其实是一个完整结果集,mysql并不能直接识别 而此时给与结果集设置一个别名,以”select a.id from ppp“的方式查询将此结果集视为一张"表”,就可以正常查询数据了,即: select a.id from (select id,name from text3) t5; 相当于 select info.id,name from text05; select 表.字段,字段 from 表 MySQL视图 视图的作用 优化操作+安全方案 视图是什么 数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了真实数据的映射 作用场景[图] 针对不同的人(权限身份),提供不同结果集的“表”(以表格的形式展示) 作用范围
功能 简化查询结果集、灵活查询、可以针对不同用户呈现不同结果集、相对有更高的安全性 本质而言视图是一种select(结果集的呈现) 视图适合于多表连接浏览时使用!不适合增、删、改 而存储过程适合于使用较频繁的SQL语句,这样可以提高执行效率! 视图与表区别 视图是已经编译好的sql语句。而表不是视图没有实际的物理记录。而表有。 show table status\G表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。视图的建立和删除只影响视图本身,不影响对应的基本表。(但是更新视图数据,是会影响到基本表的) 联系 视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表, 它依据基本表存在而存在。 一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。 创建视图(单表)
2. 查看视图与源表结构 3. 修改原表数据
修改表不能修改以函数、复合函数方式计算出来的字段 查询方便、安全性 查询方便:索引速度快、同时可以多表查询更为迅速(视图不保存真实数据,视图本质类似select) 安全性:我们实现登陆的账户是root ——>所拥有权限 ,视图无法显示完整的约束 null值 在 SQL 语句使用过程中,经常会碰到 NULL 这几个字符。 通常使用 NULL 来表示缺失 的值,也就是在表中该字段是没有值的。 如果在创建表时,限制某些字段不为空,则可以使用 NOT NULL 关键字,不使用则默认可以为空。 在向表内插入记录或者更新记录时,如果该字段没有 NOT NULL 并且没有值,这时候新记录的该字段将被保存为 NULL。 需要注意 的是,NULL 值与数字 0 或者空白(spaces)的字段是不同的,值为 NULL 的字段是没有 值的。 在 SQL 语句中,使用 IS NULL 可以判断表内的某个字段是不是 NULL 值,相反的用 IS NOT NULL 可以判断不是 NULL 值。 查询info表结构,name字段是不允许空值的 null值与空值的区别(空气与真空)空值长度为0,不占空间,NULL值的长度为null,占用空间is null无法判断空值空值使用"=“或者”"来处理(!=)count()计算时,NULL会忽略,空值会加入计算 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |