网站关键字优化公司,wordpress 首页图片,华强北商城官网app,嘉兴 做企业网站文章目录 内置函数时间函数字符串函数数学函数其他函数 复合查询多表笛卡尔积自连接在where中使用子查询多列子查询在from中使用子查询 内连接外连接左外连接右外连接 内置函数
时间函数
函数描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳… 文章目录 内置函数时间函数字符串函数数学函数其他函数 复合查询多表笛卡尔积自连接在where中使用子查询多列子查询在from中使用子查询 内连接外连接左外连接右外连接 内置函数
时间函数
函数描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳date(datetime)返回datetime参数的日期部分date_add(date, interval val)在date中加上参数的日期或时间date_sub(date, interval val)在date中加上参数的日期或时间datediff(date1, date2)返回两个日期之间的时间差单位为天now()当前日期和时间 字符串函数
函数描述charset(str)返回字符串的字符集concat(str2 [, …])连接字符串instr(string, ch)返回ch在string中出现的位置没有返回0ucase(str)转换为大写lcase(str)转换为小写left(str, length)从str中的左边起取length个字符length(str)str的长度replace(string, str, replace_str)在string中用replace_str替换strstrcmp(str1, str2)逐字符比较两字符串的大小substring(str, pos [, length])从str的pos开始取length个字符ltrim(str) rtrim(str) trim(str)去除前空格或者后空格
select concat(name, 的语文是,chinese,分数学是,math,分) as 分数 from
student;数学函数
函数描述abs(num)绝对值函数bin(num)十进制转换二进制hex(num)转换为十六进制conv(num, from_base, to_base)进制转换ceiling(num)向上去整floor(num)向下去整format(num, decimal_places)格式化保留小数位数rand()返回随机浮点数范围[0.0, 1.0)mod(num, denominator)取模求余 向上去整往上找比数值大的最小整数 向下去整往下找比数值小的最大整数 0向去整找比数值更靠近0的并且里数值最近的整数 其他函数
函数描述user()查询当前用户md5(str)对一个字符串进行md5摘要摘要后得到一个32为字符串database()显示当前正在使用的数据库password()对用户加密ifnull(val1, val2)如果val1为null返回val2 否则返回val1
复合查询
为了更好演示效果演示的数据库中有三张表 emp员工信息、dept部门信息、salgrad薪资信息
多表笛卡尔积
如果想要查询的结果需要多张表结合才能搜索出则可以直接多表结合去查询。
需要注意如果查询的列中有大于一张表拥有同名的列信息则需要指明表 可以看到如图的写法就会出现很多重复的员工信息这是因为直接结合的话会把所有表的数据都结合进去这样并不符合实际场景。
因此可以加上筛选条件因为两张表是具有外键关联的所以可以使用外键的列作为结合的条件 自连接
并不需要有多张真实存在的物理属性的表才可以结合因为单张表操作得出的结果也可以看作是一张表在MySQL中一切皆为表结构所以单张表得出的虚拟表也可以和其本身去结合
不过需要注意如果使用自连接需要对表进行不同的别名这样系统才能分辨出区别
例如找出名为SMITH的员工的上级领导的编号和姓名mgr是员工领导的编号–empno 在where中使用子查询
子查询是指嵌入在其他sql语句中的select语句也叫嵌套查询
例如显示SMITH同一部门的员工 例如查询和10号部门的工作岗位相同的雇员的名字岗位工资部门号 其中关键字in的作用是查询集合是否包含了该条件
例如显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号 其中关键字all表示集合中的所有数据
例如显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号 其中关键字any表示集合中的任意一个数据
多列子查询
这是只使用一列作为子查询的条件也可以同时使用多列作为查询条件
多列子查询是指查询返回多个列数据的子查询语句
例如查询和SMITH的部门和岗位完全相同的所有雇员 在from中使用子查询
子查询语句出现在from子句中。这里要用到数据查询的技巧把一个子查询当做一个临时表使用
例如**查找每个部门工资最高的人的姓名、工资、部门、最高工资 ** 内连接
内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;外连接
左外连接
左侧的表完全显示就是左外连接如果右侧的表不对应左侧的表则为NULL 右外连接
右侧的表完全显示就是右外连接如果左侧的表不对应右侧的表则为NULL