而且,该字段列取值不相等的记录也可以查询出来。 可以将外连接查询分为:左连接查询和右连接查询。...6.5、子查询 当查询条件使用的是另一个查询生成的值时,经常会产生新的情况,这是需要用到子查询。 子查询就是一个select查询是另一个查询的附属。就是将一个查询语句嵌套在另一个查询语句中。...两个函数作用相同,返回当前系统的日期值 curtime 和 current_time 两个函数作用相同,返回当前系统的时间值 now 和 sysdate 两个函数作用相同,返回当前系统的日期和时间值...,返回值范围是1~31 year 获取年份,返回值范围是 1970〜2069 time_to_sec 将时间参数转换为秒数 sec_to_time 将秒数转换为时间,与time_to_sec 互为反函数...date_add 和 adddate 两个函数功能相同,都是向日期添加指定的时间间隔 date_sub 和 subdate 两个函数功能相同,都是向日期减去指定的时间间隔 addtime 时间加法运算
# 日期函数 # NOW() 返回当前系统日期+时间 SELECT NOW(); # CURDATE() 返回当前系统日期,不包含时间 SELECT CURDATE(); # CURTIME()...1-1'); SELECT DAY('2020-12-21'); # STR_TO_DATE(str,format) 将日期格式字符转换为指定个式的日期 SELECT STR_TO_DATE('03-...,beauty WHERE beauty.boyfriend_id=boys.id; # 起别名后进行等值连接 # 起别名后在select语句中的表名也需要修改为别名 SELECT last_name...`employee_id`; # sql99语法 /* 语法: SELECT 查询列表 FROM 表1 别名 【连接类型】 JOIN 表2 别名 ON 连接条件 【WHERE 筛选条件】 【GROUP...: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列) 表子查询(结果集一般多行多列) # 子查询 /* 含义: 出现在其他语句中的select语句,称为子查询或内查询
); #mod 取余 select mod(-10,-3); 日期函数 #now 返回当前系统日期+时间 select now(); #curdate 返回当前系统日期,不包括时间 #curtime...返回当前时间,不包括日期 #str_to_date 将字符通过指定的格式转换成日期 #date_format 将日期转换成字符 图片 其他函数 # version # database...语法 select 查询列表 from 表1 别名 【连接类型】 join 表2 别名 on 连接条件 where 筛选条件 分类 内连接: inner 外连接: left【outer】...表2 别名 where 连接条件 and 筛选条件 Sql199语法 # 多表删除 delete 表1的别名,表2的别名 from 表1 别名 inner|left|right join...语句 delete from 表 where id = ; 显示事务 事务具有明显的开启和结束标记 **前提:**必须先设置自动提交功能为禁用 set autocommit=0; 步骤1:开启事务
非等值连接 on条件为非等值 自联接 一张表取多次别名(看成多张表) 外连接 select , from 左外连接 左边的数据全部查询出来 右外连接 右边的数据全部查询出来...; 多行:多个输入一个输出): 单行处理函数: lower 转小写 upper 转大写 substr 取子串 substr(,,) 截取strName...将varchar字符串转换成日期date date_format 将日期date转化为varchar字符串 format 数字格式化 round 四舍五入 round(,)...注意:结果集合并时两个语句的列要相等 limit:将查询结果一部分取出来,分页查询 limit 取查询结果的前n个 limit , 取start(0开始)开始的n...个 笛卡儿积:表连接查询是没加条件查询的结果条数是所有表的积。
将日期格式的字符变成指定格式的日期类型 6.data_format: 将日期转化为字符 7.DATEDIFF:计算两个日期相隔的天数 其他函数 1.查看版本号 2....后面 特点 标量子查询(单行子查询) 注意 列子查询(多行子查询) 行子查询(结果集一行多列或者多行多列) select后面---仅仅支持一行一列 from后面----表子查询 将子查询结果充当一张表...,肯定是放在having子句中 能用分组前筛选的,优先使用分组前筛选 ---- 按表达式,函数和别名分组—只有mysql支持 按学生的姓名的长度进行分组,选出组中同学个数大于两个人的组 SELECT...右外连接: 左外去交集: 右外去交集: 全外连接: 全外连接去交集: ---- 子查询 含义 出现在其他语句中的select语句,成为子查询或者内查询...连接条件 and 筛选条件; sql99语法: delete 表1的别名,表2的别名 from 表1 别名 inner|left|right join 表2 别名 on 连接条件 where 筛选条件
FROM WHERE 条件表达式>; SQL常用规则2 SQL语句可以使用AS关键字为列设定别名,设定汉字别名时需要使用双引号(’’)括起来 在SELECT语句中可以使用DISTINCT...子句中能够使用聚合函数,WHERE子句中不能使用聚合函数 HAVING子句要写在GROUP BY 子句后面 通常情况下,为了得到相同的结果,将条件写在WHERE子句中要比写在HAVING子句中的处理速度更快...函数(当前时间) CURRENT_TIME CURRENT_TIMESTAMP函数(当前日期和时间) CURRENT_TIMESTAMP EXTRACT函数(截取日期元素) EXTRACT(日期元素 FROM...日期) CAST函数(类型转换) CAST(转换前的值 AS 想要转换的数据类型) COALESCE函数(将NULL转换为其他值) COALESCE(数据1, 数据2, 数据3....)...SELECT子句中的列需要按照“的别名>.
在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。...> > 例如,SELECT 3*2;将返回6,SELECT Trim('abc');将返回abc,而SELECT Now()利用Now()函数返回当前日期和时间。...Length() | 返回串的长度 | | Locate() | 找出串的一个子串 | | Lower() | 将串转换为小写 | | LTrim() | 去掉串左边的空格...将串转换为大写 | | Concat | 拼接字符串 | 日期和时间处理函数 | 函数 | 说明 | | ---------...使用这些函数,MySQL查询可用于检索数据,以便分析和报表生成 确定表中行数(或者满足某个条件或包含某个特定值的行数)。 获得表中行组的和。
year:返回年 month:返回月 day:返回日 date_format:将日期转换成字符 curdate:返回当前日期 str_to_date:将字符转换成日期 curtime:返回当前时间 hour...n-1个连接条件 ④等值连接的结果是多表的交集部分 2、非等值连接 语法: select 查询列表 from 表1 别名,表2 别名 where 非等值的连接条件 【and 筛选条件】 【group...单行子查询):结果集为一行一列 列子查询(多行子查询):结果集为多行一列 行子查询:结果集为多行多列 表子查询:结果集为多行多列 三、示例 where或having后面 1、标量子查询 案例:查询最低工资的员工姓名和工资...M,其中M不可以省略 三、日期型 year年 date日期 time时间 datetime 日期+时间 8 timestamp 日期+时间 4 比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间...,但可以有多个唯一 ②、主键不允许为空,唯一可以为空 2、相同点 都具有唯一性 都支持组合键,但不推荐 外键: 1、用于限制两个表的关系,从表的字段值引用了主表的某字段值 2、外键列和主表的被引用列要求类型一致
具体如下: select 查询列表 from 表1 别名 连接类型 join 表2 别名 on 连接条件 where 筛选条件 group by 分组条件 having 分组后筛选条件 order by...二、修改 1、修改单表的记录 update 表1 别名 连接类型 join 表2 别名 on 连接条件 set 字段=值,字段=值 【where 筛选条件】; 2、修改多表的记录【补充】 (1)sql92...语法:update 表1 别名,表2 别名set 列=值,....where 连接条件and 筛选条件 (2)sql99语法:update 表1 别名 【join type】 join 表2 别名 on...3、日期型 year年 date日期 time时间 datetime 日期+时间 8字节 timestamp 日期+时间 4字节 比较容易受时区,语法模式、版本的影响,更能反映当前时区的真实时间...tips:timestamp可以根据所在时区的不同,自动的将存储的时间转换为对应时区的时间,所以,timestamp类型所反映的时间更加精准。
,保留y位小数 常用的日期函数 CURDATE() 返回当前日期 CURTIME() 返回当前时间 NOW()返回当前日期和时间 YEAR(date)获取指定date的年份 MONTH(date)获取指定...date的月份 DAY(date)获取指定date的日期 DATE_ADD(date,INTERVAL expr type)返回一个日期/时间值加上一个时间 间隔expr后的时间值 DATEDIFF(...左外连接:查询左表所有数据,以及两张表交集部分数据 右外连接:查询游标所有数据,以及两张表交集部分数据 自连接:当前表与自身的连接查询,自连接必须使用表别名 子查询 多表查询-内连接 隐式内连接...字段列表 FROM 表A 别名A JOIN 表A 别名B ON条件...; 自连接查询,可以是内连接查询,也可以是外连接查询。...子查询 概念 SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。
的形式表现出来 使用GROUP BY 子句时,SELECT子句中不能出现聚合键之外的列名 在GROUP BY子句中不能使用SELECT子句中定义的别名 只有在SELECT子句、ORDER BY子句和HAVING...子句中能够使用聚合函数,WHERE子句中不能使用聚合函数 HAVING子句要写在GROUP BY 子句后面 通常情况下,为了得到相同的结果,将条件写在WHERE子句中要比写在HAVING子句中的处理速度更快...函数(字符串的截取) UPPER函数(大写转换) CURRENT_DATE函数(当前日期) CURRENT_TIME函数(当前时间) CURRENT_TIMESTAMP函数(当前日期和时间) EXTRACT...函数(截取日期元素) CAST函数(类型转换) COALESCE函数(将NULL转换为其他值) CASE 表达式 SQL常用规则6 谓词就是返回值为真值的函数 通常指定关联子查询作为EXIST的参数 作为...EXIST参数的子查询中经常会使用SELECT * CASE表达式中的END不能省略 SQL常用规则7 集合运算会除去重复的记录,但可以使用ALL选项,保留重复行 进行联结时需要在FROM子句中使用多张表
也就是两个表中的所有的行的所有可能的组合。这相当于内连接没有连接条件或者连接条件永远为真。 如果一个有 m 行的表和另一个有 n 行的表,它们交叉连接将返回 m * n 行数据。...内连接将第一个表的每一行与第二个表的每一行进行比较,如果满足给定的连接条件,则将两个表的行组合在一起作为结果集中的一行。...使用括号更改计算顺序;⑦ WHERE 子句中的 OR 连接两个比较条件,过滤那些至少满足其中一个比较条件的记录行。...SELECT * FROM employees LIMIT 60,10; # 限定返回数量 10 ,偏移量 60 2.7、DQL子查询 MySQL 子查询是嵌套一个语句中的查询语句,也被称为内部查询...子查询经常用在 WHERE 子句中。 例如,我前面提到的操作符 EXISTS 就属于子查询的范畴。
如果在 select 中使用表达式,则必须在 group by 子句中指定相同的表达式。不能使用别名。 除聚集计算语句外,select 语句中的每个列都必须在 group by 子句中给出。...如果分组列中具有 NULL 值,则 NULL 将作为一个分组返回。如果列中有多行 NULL 值,它们将分为一组。 group by 子句必须出现在 where 子句之后,order by 子句之前。...如将主键置于where列表中,MySQL就能将该查询转换为一个常量。 eq_ref 唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。...使用null和任何数值去做比较判断,得到的都是false;只能使用is null和is not null进行操作; 3. datetime的使用 mysql进行日期比较时,日期格式必须是标准的YYYY-MM-DD...,小于10的日期需要加0; 在sql语句中进行时间比较的时候,时间值也需要和字符串一样使用单、双引号包括。
支持与 IN,BETWEEN,EXISTS子语句配合使用,表示范围条件的取反。...Upper 函数/ Lower 函数,对字符串大小写转换 SubString 函数,返回子字符串 时间日期函数 AddDate/AddTime 函数,增加日期,时间 CurDate/CurTime 函数...,返回当前日期,时间 Date_Format 函数,返回格式化的日期时间 DateDiff 返回两个日期之差 Date 函数,获取日期 Time 函数,获取时间 Now 函数,当前日期时间 … 数值处理函数...除此之外,处理聚集计算语句之外,SELECT语句中的每个列都必须在GROUP BY语 句中给出,否则会报错。...使用联结的要点: 进行联结时要使用正确的联结条件,避免笛卡尔积 一个联结可以包含多个表,一个语句中也允许存在多个联结 第十七章 组合查询 组合查询 将多个查询语句的结果作为单个查询结果局进行返回 使用场景
关键字的子查询 3.带ANY关键字的子查询 4.带ALL关键字的子查询 总结 前言 知识无底,学海无涯,到今天进入MySQL的学习4天了,知识点虽然简单,但是比较多,所以写一篇博客将MySQL的基础写出来...;也就是说:每列的值具有原子性,不可再分割。...MySQL提供的表示日期和时间的数据类型分别是 :YEAR、DATE、TIME、DATETIME 和 TIMESTAMP。...在此,介绍几种TIMESTAMP类型与DATATIME类型不同的形式: 1、使用CURRENT_TIMESTAMP输人系统当前日期和时间。 2、输人NULL时系统会输人系统当前日期和时间。...连接的结果包括LEFT JOIN子句中指定的左表的所有记录,以及所有满足连接条件的记录。
❑ 如果分组列中包含具有 NULL 值的行,则 NULL 将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。...where item_price >= 10 ) 列必须匹配 在 WHERE 子句中使用子查询(如这里所示),应该保证SELECT语句具有与 WHERE 子句中相同数目的列。...企图检索多个列将返回错误。 tip: 逐渐增加子查询来建立查询 用子查询测试和调试查询很有技巧性,特别是在这些语句的复杂性不断增加的情况下更是如此。...合并结果集 union 要求两个表的列数 和 列类型 完全一致 连接查询 内连接 方言版 select xxx列 from 表A, 表b where 条件1=xxx 标准版 逗号改成inner join...很少见, 看上去像对象 多行多列 select * from 表1 别名1 , (select ... ) 别名2 where 条件 所谓的连接是有针对性的找出关联关系 全文搜索 用基于文本的搜索作为正则表达式匹配列值的更进一步的介绍
连接多个表 主题 描述 连接 向您展示 PostgreSQL 中连接的简要概述。 表别名 描述如何在查询中使用表别名。 内连接 从一个表中选择在其他表中具有相应行的行。...子查询 主题 描述 子查询 编写一个嵌套在另一个查询中的查询。 ANY 通过将某个值与子查询返回的一组值进行比较来检索数据。 ALL 通过将值与子查询返回的值列表进行比较来查询数据。...DATE 引入DATE用于存储日期值的数据类型。 时间戳 快速了解时间戳数据类型。 间隔 向您展示如何使用间隔数据类型有效地处理一段时间。 TIME 使用TIME数据类型来管理一天中的时间值。...条件表达式和运算符 主题 描述 CASE 向您展示如何使用CASE表达式构成条件查询。 COALESCE 返回第一个非空参数。您可以使用它将NULL替换为一个默认值。...CAST 从一种数据类型转换为另一种数据类型,例如,从字符串转换为整数,从字符串转换为日期。 第 16 节.
排序 order by like 通配符 group by 分组查询 连接查询 ifnull MySQL 案例实战教程 MySQL的数据类型 MySQL支持多种类型,大致可以分为三类:数值、日期/...备注: char 和varchar 一定要指定长度,float 会自动提升为double,timestamp 是时间的混合类型,理论上可以存储 时间格式和时间戳。 ...查询中根据特定的条件将两个表中的行进行关联,从而实现数据的联合查询和合并。...a on w.id=a.site_id 这条 SQL 查询语句使用了左外连接(Left Outer Join),将表 websites(别名为 w)和 access_log(别名为 a)进行连接,并使用了...ifnull 函数用于将可能的 NULL 值替换为指定的默认值(0 或 '无日期')。 总的来说,这条查询用于获取网站的访问次数以及最近访问日期(如果有的话),并且对可能的 NULL 值进行了处理。
日期的操作函数 时间和秒钟转换的函数 计算日期和时间的函数 日期的格式化与解析 流程控制函数 加密与解密函数 MySQL信息函数 其他函数 聚合函数(多行函数) AVG和SUM函数 MIN和MAX函数...字符串型和日期时间类型的数据可以使用单引号''表示。 列的别名,尽量使用双引号""表示,不建议省略as。 SQL规范 MySQL在Windows环境下不区分大小写: 但字符串是遵守大小写的。...因为要指定字段所在的表,当表名太长时,可以在FROM语句中指定表的别名在SELECT和WHERE语句中使用表的别名。 查询两个表需要1个查询条件。...FROM_UNIXTIME(timestamp) 将UNIX时间戳的时间转换为普通格式的时间 获取月份、星期、星期数、天数等函数 函数 用法 YEAR(date) / MONTH(date) / DAY...转化的公式为: 小时3600+分钟60+秒 SEC_TO_TIME(seconds) 将 seconds 描述转化为包含小时、分钟和秒的时间 计算日期和时间的函数 第一组: 函数 用法 DATE_ADD
如果谓词包含除法,并且数据库中有任何值可以生成值为零或NULL的除法,则不能依赖求值顺序来避免被零除法。 相反,使用CASE语句来抑制风险。 WHERE子句可以指定包含子查询的条件表达式。...子查询必须用圆括号括起来。 WHERE子句可以使用=(内部连接)符号连接操作符指定两个表之间的显式连接。 WHERE子句可以使用箭头语法(- >)操作符在基表和来自另一个表的字段之间指定隐式连接。...不能通过列别名指定字段; 尝试这样做会产生SQLCODE -29错误。 但是,可以使用子查询来定义列别名,然后在WHERE子句中使用该别名。...在条件表达式中指定日期或时间时,可能由于SQL模式与日期或时间格式不匹配,或由于无效的日期或时间值而发生错误。 WHERE子句条件表达式必须使用与当前模式相对应的日期或时间格式。...无效的日期或时间值还会生成SQLCODE -146或-147错误。 无效日期是可以在显示模式/ODBC模式中指定的日期,但 IRIS不能转换为等效的逻辑模式。
领取专属 10元无门槛券
手把手带您无忧上云