深圳建网站兴田德润团队,建筑工程网库,wordpress搜索页如何建,wordpress导购站主题目录
一、mysql内置函数
1.1.日期函数
1.2.字符串函数
1.3.数学函数
1.4.其他函数
二、复合查询
2.2 自连接
2.3 子查询
2.3.1单行自查询
2.3.2 多行子查询 2.3.3 多列子查询
2.3.4在from子句中使用子查询
2.3.5合并查询
三、表的内连和外连
3.1内连接
3.2外连接…目录
一、mysql内置函数
1.1.日期函数
1.2.字符串函数
1.3.数学函数
1.4.其他函数
二、复合查询
2.2 自连接
2.3 子查询
2.3.1单行自查询
2.3.2 多行子查询 2.3.3 多列子查询
2.3.4在from子句中使用子查询
2.3.5合并查询
三、表的内连和外连
3.1内连接
3.2外连接
3.2.1 左外连接
3.2.2右外连接
一、mysql内置函数
1.1.日期函数 获得时间 获得年月日:select current_date(); 获得时分秒:select current_time(); 获得时间戳:select current_timestamp(); 在日期的基础上加日期: 在日期的基础上减去时间: 计算两个日期之间相差多少天: 案例:
创建一个留言表: 插入数据: 显示所有留言信息发布日期只显示日期不用显示时间 查询在五分钟内发布的贴子: select *from msg where date_add(sendtime,interval 5 minute)now(); 或:select *from msg where date_sub(now(),interval 5 minute)sendtime; 理解 1.2.字符串函数 案例:
sql获取:码云
案例
获取emp表的ename列的字符集 要求显示exam_result表中的信息显示格式“XXX的语文是XXX分数学XXX分英语XXX分” 求学生表中学生姓名占用的字节数: 注意length函数返回字符串长度以字节为单位。如果是多字节字符则计算多个字节数如果是单字节字符则算作一个字节。比如字母数字算作一个字节中文表示多个字节(与字符集编码有关)。 将emp表中所有名字中有S的替换为‘北京’ 截取emp表中ename字段的第二个到第三个字符 以首字母小写的方式显示所有员工的姓名: select concat(lcase(substring(ename,1,1)),substring(ename,2)) from emp; 1.3.数学函数 绝对值select abs();
向上取整select ceiling(); 向下取整: select floor(); 理解 向上取整简单来说就是向大的整数方向取整舍弃小数部分。比如23.04向上取整就是24-5.9向上取整就是-5. 同理向下取整是朝着小的整数取整舍弃小数部分。3.7向下取整是3.-1.3向下取整是-2. 向0取整是朝0靠拢5.6向零取整是5-6.6向0取整是-6 保留n位小数位数:select format(小数n);
产生随机数:select rand();
mysql中产生随机数产生的是0-1的小数。 如果要得到0-100的随机数 1.4.其他函数
user()查询当前用户 select user(); md5(str)对一个字符串进行md5摘要摘要后得到一个32位字符串 通常用于加密。
password()函数mysql数据库使用该函数对用户进行加密 ifnull(val1,val2)如果val1为null返回val2否则返回val1的值。 二、复合查询
2.1.多表查询
实际开发中往往数据来自不同的表所以需要多表查询。在此借用一个简单的公司管理系统还是从码云下载。有三张表empdeptsalgrade来演示如何进行多表查询。
案例
显示雇员名、雇员工资以及所在部门的名字因为上面的数据来自emp表和dept表因此要联合查询。 这种结果称为笛卡尔积。
显示部门号为10的部门名员工名和工资 显示各个员工的姓名工资及工资级别 2.2 自连接
自连接是指在同一张表连接查询
案例员工FORD的上级领导的编号和姓名(mgr是员工领导的编号)
使用的子查询 使用多表查询自查询 2.3 子查询
子查询是指嵌入在其他sql语句中的select语句也叫嵌套查询。
2.3.1单行自查询
返回一行记录的子查询
显示SMITH同一部门的员工 2.3.2 多行子查询 返回多行记录的子查询
in关键字
查询和10号部门的工作岗位相同的雇员的名字岗位工资部门号但是不包含自己的。 all关键字
显示工资比部门30的所有员工的工资高的员工的姓名工资和部门号
第一种方式当然可以找出部门30最高的工资只要比这个工资高即可 比部门30所有的员工工资高使用all any关键字显示工资比部门30的任意一个员工工资高的员工的姓名工资和部门号 2.3.3 多列子查询
单行子查询是指子查询只返回单列单行数据多行子查询是指返回单列多行数据都是针对单列而言的而多列子查询则是指查询返回多个列数据的子查询语句。
案例 查询和SMITH的部门和岗位完全相同的所有雇员不包含SMITH本人。 2.3.4在from子句中使用子查询
子查询语句出现在from子句中。子查询当作一个临时表使用。
显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资 查找每个部门工资最高的人的姓名工资部门最高工资。 显示每个部门的信息(部门号编号地址)和人员数量 2.3.5合并查询
union
union操作符用于取得两个结果集的并集当使用该操作符时会自动去掉结果集中的重复行。
案例将工资大于2500或职位是MANAGER的人找出来
去掉了重复数据 union all
该操作符用于取得两个结果集的并集。当使用该操作符时不会去掉结果集中的重复行。
案例将工资大于25000或职位是MANAGER的人找出来 三、表的内连和外连
3.1内连接
内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选前面讲述的都是内连接实际开发过程中使用最多的连接查询。 语法 select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件; 案例显示SMITH的名字和部门名称
之前的写法 标准的内连接写法 3.2外连接
外连接分为左外连接和右外连接
3.2.1 左外连接
如果联合查询时左侧的表完全显示我们就说是左外连接。 语法 select 字段名 from 表1 left join 表2 on 连接条件 案例
建两张表 查询所有学生的成绩如果这个学生没有成绩也要讲学生的个人信息显示出来
--当左边表和右边表没有匹配时也会显示左边表的数据 3.2.2右外连接 语法select 字段 from 表1 right join 表2 on 连接条件 案例对stu表和exam表联合查询把所有的成绩都显示出来即使这个成绩没有学生与它对应也要显示出来。