mysql查询语句
创始人
2024-06-02 09:12:07
0

执行sql文件

source D:\sql文件.sql

 查询当前使用的数据库

select database();

 起别名

select 字段名 as 别名 from dept;

 条件查询语句

3.列的数学运算select 工资*12 from 表名;= 等于    查看工资为800的员工名称  select name from emp where sal = 800;<>或 != 不等于查看信息不等一800的员工名称select name from emp where sal != 800;<小于<= 小于等于>大于>=大于等于between ... and ....两个值之间        查询薪资在2450在3000之前的员工名称   between and   遵循左小右大select name from emp where 工资 between 2450 and 3000		is null 为 null (is not null不为空)查询员工的津贴为null的select * from emp where 津贴 is null;查询员工的津贴不为null的select * from emp where is not null;and 并且查询工作岗位为开发,并且工资大于2500select * from emp where 岗位=‘开发’ and 工资>2500or 或者查询工作岗位为开发或者工资为2500的select * from emp where 岗位=‘开发’ or 工资>2500and和or同时使用查询工资>2500并且部门编号为10 or 为20的select * from emp where 工资 > 2500 and (编号 = 10 or 编号 = 20)in 包含,相当于多个 or (not in 不在这个范围中)查询工作岗位为    开发 or 人事的员工select * form emp where 岗位 in (“开发”,"人事");not not可以取非,主要用在 is 或in 中is nullis not null in not in查询工作岗位不为    开发 or 人事的员工select * from emp where 岗位 not in ("开发","人事")ike like称为模糊查询,支持%下划线匹配%匹配任意多个字符下划线,一个下划线只匹配一个字符找出名字中还有o的select * from emp where name like '%O%';结果:   jones,scott,ford找出名字以T结尾的select * from emp where name like '%T';找出名字为以k开始的select * from emp where name like 'k%'找出第二个字母为a的select * from where name like '_A%';找出第三个字母是R的select * from where name like '__R%';找出名字中带有 _ 的人       !加 \ 进行转义select * from where name like '%\_%';

排序

#降序select * from where emp order by 工资 desc;#升序
select * from where emp order by  工资  asc;   默认升序#先按照工资升序拍,薪资相同再按照名字升序拍
select * from where emp order by 工资 asc , name asc;#找出工资在1250和3000之间按薪资降序排序
select * from where emp between 1250 and 3000 order by 薪资 desc;

单行处理的常见函数

lower()  转换小写大写字母全部转化为小写字母select lower(name) from 表名;
upper()   转换大写小写字母全部转化为大写字母select lower(name) from 表名;substr()    取字符串长度内容去查询名字的第一个字母    substr(被截取的字符串,起始下标,截取长度),起始下标不能为0select substr(name,1,1) from 表名;concat()进行字符串拼接select concat(name,age) from 表名;结果:小米10length 取长度select length(name) from 表名;

 聚合函数

max()最大值#找出工资最高的select max(工资) from 表名;min()最小值#找出最低工资select min(工资) from 表名;
avg()平均值select avg(工资) from 表名;sum()求和select sum(工资) from 表名count()计数#查询信息的个数select count(工资) from 表名;

分组查询

按照工作岗位分组,让后对工资求和select job,sum(工资) from 表名  group by job;找出 每个部门 ,不同工作岗位的最高薪资select max(工资) from 表名 group by 部门,jobhaving可以对分完组之后的数据进一步过滤,having不能单独使用,having不能代替where,having必须和group by联合使用例子:以部门编号分组,查询出部门最大工资并且大于3000的select 编号,max(工资) from 表名 group by 部门编号 having max(sal) > 3000;

查询结果去重

distinct去重

select distinct job from 表名;

笛卡尔积现象:第一张表的名字都会和第二张表的内容去进行匹配一遍

解决方法:加上限制条件即可

内连接SQL92语法第一种:select ename,dname from emp,dept where emp.deptno = dept.deptno;第二种:   给表起别名select ename,dname from emp e,dept d where e.deptno = dept.deptno; 
SQL99语法select e.ename,d.dname from emp e join dept d on e.deptno = d.deptno;

 内连接之不等值连接

 内连接之子连接

        这是a表

        这是b表

查询出该员工的领导,并输出员工名所对应的领导名

select a.ename as '员工名',b.ename as '领导名' from emp a join emp b on a.mgr = b.empno;

 外连接

右外连接
right代表什么:表示将jons关键字右边的这张表堪称主表,主要是为了将这张表的数据全部查询出来,捎带着关联查询右边的表。
在外连接当中,这两张表链接,产生了主次关系。
select e.ename,d.dname from emp e right join dept d on e.deptno = d.deptno;

 结果为

 

 子查询        子查询可以出现在select,from,where后面,查询的都可以做为一张表

        where后面的子查询

                查询出工资大于最低员工的工资

select 工资 from 表名 where 工资 > (select min(工资)  from  表名);

 union的用法

        就是合并两张表的结果,要比 in 的效率要高

select ename,job from emp where job = '开发'
union
select ename,job from emp where job = '人事';

limit的使用     limit  开始下标  条数       limit从第0条开始

               将查询结果集的一部分取出

按照薪资降序,去除排在前5名的员工?

select ename,sal from emp order by  sal desc limit 5;

 (页码-1)* 3   通用的

插入数据语句

给那个字段插,表名后面的()就写那个字段名,其他的为null
insert into 表名(no,data,name) values(1,20,"小米");

插入日期数据

        mysql的日期格式:%Y年       %m月    %d日    %h时   %i分   %s秒

        长日期格式:%Y-%m-%d %h:%i:%s

        短日期格式:    %Y-%m-%d
        str_to_date:字符串转日期类型date

insert into 表名(id,name,birth) values(1,"张三",str_to_date('01-10-1990','%d-%m-%Y'));id:int
name:varchar
birth:date如果写入的函数正好时字符串类型,就不用str_to_date
段日期插入date
insert into 表名(id,name,birth) values(1,"张三",'1990-01-02');
长日期插入datetime
inster into 表名(id,name,birth) values(1,"张三","199-10-02 14:48:20");inster into 表名(id,name,birth) values(1,"张三",now());   #长日期now()获取当前时间

date_format:将日期类型转换成特点格式的字符串

相关内容

热门资讯

留学生教育的国际经验与启示 随着我国综合国力不断提升和共建“一带一路”倡议的持续推进,国内高校吸引来华留学生的数量和质量也在不断...
鲁信创投涨2.02%,成交额3... 5月14日,鲁信创投盘中上涨2.02%,截至13:37,报12.13元/股,成交3105.32万元,...
汤姆猫涨2.12%,成交额5.... 5月14日,汤姆猫盘中上涨2.12%,截至13:44,报5.30元/股,成交5.02亿元,换手率2....
比亚迪亲自下场,欲分食这个年保... 筹备良久,比亚迪(002594.SZ)旗下弗迪电池对两轮、三轮车展开攻势。第一财经记者获悉,5月17...
这样鲜活的地方小戏里印刻着湖湘... 转自:央视网央视网消息: 湖南花鼓戏是一种极具地方色彩的小戏,语言的生活气息浓厚,曲调优美动人。它源...
凌志软件涨2.08%,成交额8... 5月14日,凌志软件盘中上涨2.08%,截至13:40,报14.22元/股,成交8620.34万元,...
崔登荣成为国家游泳队总教练 来源:中国体育报 5月14日,全国游泳项目训练工作会议在深圳召开,会议宣布了崔登荣为国家游泳队新周期...
苹果入局脑机接口赛道,用意念控... 据财联社援引媒体报道,苹果正在进军脑机接口领域,推出了一项新技术,有朝一日可能会彻底改变人类与设备的...
港股概念追踪|券商板块盈利能力...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! 记者调研发现,在境内...
安居宝涨2.18%,成交额38... 5月14日,安居宝(维权)盘中上涨2.18%,截至13:41,报4.68元/股,成交3836.27万...
地标名品助力乡村振兴大会在浙江... 近日,“品牌 让世界更美好”2025世界品牌莫干山大会系列活动在浙江省德清县举行。  在5月11日下...
三大股指均涨超1%,中国人保涨... 每经AI快讯,5月14日,三大股指均涨超1%,保险股爆发,中国人保涨停,中国太保涨超9%,新华保险、...
海航控股涨2.21%,成交额3... 5月14日,海航控股盘中上涨2.21%,截至13:43,报1.39元/股,成交3.39亿元,换手率0...
A股和港股机构投资变阵:聚焦科... 21世纪经济报道特约记者 庞华玮 广州报道据21世纪经报道记者了解,近日《中美日内瓦经贸会谈联合声明...
保定以样板工程推进减污降碳试点... 转自:中国环境网“保定市以入选国家首批减污降碳协同创新试点城市为契机,统筹推进经济社会高质量发展与生...
正帆科技与华茂能联达成战略合作 每经AI快讯,2025年5月9日上海,上海正帆科技股份有限公司与深圳华茂能联科技有限公司(华茂能联)...
青海达日县总工会举办职工手工牦... 转自:中工网原标题:青海达日县总工会举办职工手工牦牛绒编织技能培训班工人日报-中工网记者邢生祥5月1...
国网汝州市供电公司:多举措守护... 来源:环球网 5月12日,国网汝州市供电公司运维人员对35千伏甄大线路#24杆地质灾害隐患点开展现场...
大行评级|瑞银:下调华虹半导体... 瑞银发表报告指,华虹半导体的股价在过去一年已上升46%,相信主要是由于对中国本地化的乐观情绪增加,及...
官宣:崔登荣任国家游泳队总教练 @中国体育报今日,全国游泳项目训练工作会议在深圳召开,会议宣布了崔登荣为国家游泳队新周期的总教练。会...