北京建设局投诉网站首页,晋江外贸网站建设,自己服务器做网站主机,wordpress关键词添加##DQL语言的学习
###进阶1#xff1a;基础查询 语法#xff1a; SELECT 要查询的东西 【FROM 表名】; 类似于Java中 :System.out.println(要打印的东西); 特点#xff1a; ①通过select查询完的结果 #xff0c;是一个虚拟的表格#xff0c;不是真实存…##DQL语言的学习
###进阶1基础查询 语法 SELECT 要查询的东西 【FROM 表名】; 类似于Java中 :System.out.println(要打印的东西); 特点 ①通过select查询完的结果 是一个虚拟的表格不是真实存在 ② 要查询的东西 可以是常量值、可以是表达式、可以是字段、可以是函数
###进阶2条件查询 条件查询根据条件过滤原始表的数据查询到想要的数据 语法 select 要查询的字段|表达式|常量值|函数 from 表 where 条件 ; 分类 一、条件表达式 示例salary10000 条件运算符 ! 二、逻辑表达式 示例salary10000 salary20000 逻辑运算符 and:两个条件如果同时成立结果为true否则为false or(||)两个条件只要有一个成立结果为true否则为false not(!)如果条件成立则not后为false否则为true 三、模糊查询 示例last_name like a%
###进阶3排序查询 语法 select 要查询的东西 from 表 where 条件 order by 排序的字段|表达式|函数|别名 【asc|desc】 ###进阶4常见函数
一、单行函数 1、字符函数 concat拼接 substr截取子串 upper转换成大写 lower转换成小写 trim去前后指定的空格和字符 ltrim去左边空格 rtrim去右边空格 replace替换 lpad左填充 rpad右填充 instr返回子串第一次出现的索引 length 获取字节个数 2、数学函数 round 四舍五入 rand 随机数 floor向下取整 ceil向上取整 mod取余 truncate截断 3、日期函数 now当前系统日期时间 curdate当前系统日期 curtime当前系统时间 str_to_date 将字符转换成日期 date_format将日期转换成字符 4、流程控制函数 if 处理双分支 case语句 处理多分支 情况1处理等值判断 情况2处理条件判断 5、其他函数 version版本 database当前库 user当前连接用户
二、分组函数 sum 求和 max 最大值 min 最小值 avg 平均值 count 计数 特点 1、以上五个分组函数都忽略null值除了count(*) 2、sum和avg一般用于处理数值型 max、min、count可以处理任何数据类型 3、都可以搭配distinct使用用于统计去重后的结果 4、count的参数可以支持 字段、*、常量值一般放1 建议使用 count(*) ##进阶5分组查询 语法 select 查询的字段分组函数 from 表 group by 分组的字段 特点 1、可以按单个字段分组 2、和分组函数一同查询的字段最好是分组后的字段 3、分组筛选 针对的表 位置 关键字 分组前筛选 原始表 group by的前面 where 分组后筛选 分组后的结果集 group by的后面 having 4、可以按多个字段分组字段之间用逗号隔开 5、可以支持排序 6、having后可以支持别名
##进阶6多表连接查询 笛卡尔乘积如果连接条件省略或无效则会出现 解决办法添加上连接条件 一、传统模式下的连接 等值连接——非等值连接 1.等值连接的结果 多个表的交集 2.n表连接至少需要n-1个连接条件 3.多个表不分主次没有顺序要求 4.一般为表起别名提高阅读性和性能 二、sql99语法通过join关键字实现连接 含义1999年推出的sql语法 支持 等值连接、非等值连接 内连接 外连接 交叉连接 语法 select 字段... from 表1 【inner|left outer|right outer|cross】join 表2 on 连接条件 【inner|left outer|right outer|cross】join 表3 on 连接条件 【where 筛选条件】 【group by 分组字段】 【having 分组后的筛选条件】 【order by 排序的字段或表达式】 好处语句上连接条件和筛选条件实现了分离简洁明了 三、自连接
案例查询员工名和直接上级的名称
sql99 SELECT e.last_name,m.last_name FROM employees e JOIN employees m ON e.manager_idm.employee_id;
sql92 SELECT e.last_name,m.last_name FROM employees e,employees m WHERE e.manager_idm.employee_id; ##进阶7子查询
含义 一条查询语句中又嵌套了另一条完整的select语句其中被嵌套的select语句称为子查询或内查询 在外面的查询语句称为主查询或外查询
特点 1、子查询都放在小括号内 2、子查询可以放在from后面、select后面、where后面、having后面但一般放在条件的右侧 3、子查询优先于主查询执行主查询使用了子查询的执行结果 4、子查询根据查询结果的行数不同分为以下两类 ① 单行子查询 结果集只有一行 一般搭配单行操作符使用 非法使用子查询的情况 a、子查询的结果为一组值 b、子查询的结果为空 ② 多行子查询 结果集有多行 一般搭配多行操作符使用any、all、in、not in in 属于子查询结果中的任意一个就行 any和all往往可以用其他查询代替 ##进阶8分页查询
应用场景 实际的web项目中需要根据用户的需求提交对应的分页查询的sql语句
语法 select 字段|表达式,... from 表 【where 条件】 【group by 分组字段】 【having 条件】 【order by 排序的字段】 limit 【起始的条目索引】条目数;
特点 1.起始条目索引从0开始 2.limit子句放在查询语句的最后 3.公式select * from 表 limit page-1*sizePerPage,sizePerPage 假如: 每页显示条目数sizePerPage 要显示的页数 page
##进阶9联合查询
引入 union 联合、合并
语法 select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】 select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】 select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】 ..... select 字段|常量|表达式|函数 【from 表】 【where 条件】
特点 1、多条查询语句的查询的列数必须是一致的 2、多条查询语句的查询的列的类型几乎相同 3、union代表去重union all代表不去重 基础查询
一、语法 select查询列表 from表名; 二、特点 1、查询列表可以是字段、常量、表达式、函数也可以是多个 2、查询结果是- -个虚拟表 三、示例 1、查询单个字段 select字段名from 表名; 2、查询多个字段 select字段名,字段名from表名; 3、查询所有字段 select * from表名
4、查询常量 select常量值; 注意:字符型和日期型的常量值必须用单引号引起来数值型不需要 5、查询函数 select函数名(实参列表) ; 6、查询表达式 select 100/1234;
7、起别名 ①as ②空格 8、去重 select distinct字段名from 表名:
9、 作用:做加法运算 select数值数值;直接运算 select字符数值;先试图将字符转换成数值,如果转换成功则继续运算;否则转换成0,再做运算 select nul1值;结果都为null
10、[补充] concat函数 功能:拼接字符 select concat(字符1,字符2,字符...: 11、[补充] ifnul1函数 功能:判断某字段或表达式是否为null,如果为null返回指定的值否则返回原本的值 select ifnull (comission. pct,0) from employees;
12、[补充] isnu11函数 功能:判断某字段或表达式是否为null,如果是则返回1,否则返回0
条件查询
一、语法 select查询列表 from表名 where 筛选条件 二、筛选条件的分类 1、简单条件运算符 ! 安全等于 2、逻辑运算符 and |I or ! not 3、模糊查询 like:一般搭配通配符使用可以判断字符型或数值型 通配符: %任意多个字符_任意单个字符 between and in is null /is not mull:用于判断nul1值
is null PK 普通类型的数值 null值 可读性 is null 否 是 是 是 是 否