mysql 查看表格scott_mysql查询学习第一天,针对scott

终于把牛老师的那个项目退了,以后有时间去学习自己喜欢的东西了。

我喜欢写点东西,也喜欢胡扯,哈哈。

算了,开始正题。scott表是Oracle官网的Demo现在学习一个新知识,学习他的Demo最好不过了。

select * from emp;

select empno ,ename from emp;

select ename,sal*12 as "年薪" from emp;

-- as 可以省略,

select ename as "姓名",sal*12 as "年薪"  ,sal as"月薪" ,job from emp;

select 5 from emp;

/*

distinct[不允许重复的]

*/

select deptno from emp;-- 14行记录

select  distinct deptno from emp;

select distinct comm from emp;--空也也是个唯一的数值,也可以过滤掉。只剩下唯一的一个。

select distinct comm,deptno from emp;

-- 这行是把他们这一组的组合进行过滤了。

select comm, distinct deptno from emp;

--这一组有错,是因为前面的com是14行,

--然而后面的过滤了之后是三行。明显出现错误了。

/*

between

的用法,在某个范围之间。

*/

--查找工资在1500和3000之间所有员工之间的信息

select * from emp

where sal>=1500 and sal<=3000;

select * from emp

where sal between 1500 and 3000;

--和上面的相同查询到的记录都是7个。

--查询相反的区间。

select * from emp

where sal <1500 or sal >3000

order by sal desc; --这里面的or和and的区别,否的否是并且

select * from emp

where sal not between 1500 and 3000

order by sal asc;

--h和上面的写法是一样的,但是这里面需要注意or和and的用法就KO了

/*

in的用法[属于若干个孤立的数值。]

*/

select * from emp

where sal in (1500,3000);

--这样查询只有1500和3000的工资的记录被查找了出来了,

--等价于下面的。

select * from emp

where sal =1500 or sal =3000;

--有in就有not in

select * from emp

where sal not in(1500,3000);

--下面和上面的是等价的。

select * from emp

where sal !=1500 and sal !=3000;

select * from emp

where sal <>1500 and sal <>3000;

--<>这个也是不等于。

--下面是top的用法。

select * from emp;

select top(2) * from emp;--把前面查询到的两行进行输出

select top(30) percent * from emp;--把30%输出,14行记录输出了5行,所以不够的话是往上面走的。

select top(10) * from emp

where sal between 1500and 3000

order by sal desc

select * from emp

where comm !=null;

select * from emp

where comm <>null;

-- 总结NULL不能参与!= <>运算

select * from emp

where comm =null;

-- 也不能参与=运算。

select * from emp

where comm is null;

select * from emp

where comm is not null;

--总结,null可以参与的运算有 is 还有is not

--任何类型的数据都可以为NULL;

create table t1 (name varchar(20) ,cnt int ,riqi datetime);

insert into t1 values(null,null,null);

select * from t1;

--所有的数据类都可以为NULL

--输出每个员工的姓名,年薪,(年薪包括奖金)

select ename as "姓名", sal*12+comm as "年薪" from emp;--错误哦哦。

-- null不能参与一个具体值进行运算,最终结果就是没有结果。

-- 本程序证明了NULL不能参与任何算术运算,否则还是没有结果的NULL

-- 百度了一下

select ename as"姓名",sal *12+isnull(comm,0) as"年薪" from emp;

-- 现在就是KO了,  isNull函数可以解决这些问题、

--isNull 如果comm是NILL就返回0 否则就返回comm

/*

下面是order by[以某个字段进行排序]

*/

select * from emp order by sal;

-- 这个默认是升序

select * from emp order by sal desc;

--这样子写是降序

select * from emp order by deptno ,sal ;

--这样子是先按deptno 排序,然后发现deptno相同的时候在按照sal排序。

-- 模糊查询。

select * from emp where ename like '%a%';--把含有A的字母的名字给查询出来

select * from emp where ename like 'a%'-- 首字母是A的咱们就输出

select * from emp where ename like '%a'-- 只要是末尾的字母是A的就打印

select * from emp where ename like '_a%' -- 只要第二个字母是A就打印

select * from emp where ename like '_[a-f]%'--只要是第二个字符是A-F的人打印

select * from emp where ename like '_[^a-f]%' -- 把上面的取反得到的

-- 加入我这里插入了这么一句,那么该如何查询到%的姓名呢,百度了一下得到了下面的结果

insert into emp values (0001,'c%d',NULL,0001,null,0,null,20);

select * from emp where ename like '%\%%' escape '\'

--看,这样就查询出来了答案了,关键是把\当成了特殊字符对待,后面的是一个普通字符。

-- 通配符

/*

和regex正则表达式一模一样  学过正则这些就不用再看了

-- attintion 唯一需要注意的就是把like后面的加上单引号,代表区分关键字,

说到了单引号,那么双引号在我们这里的使用代表的是一个对象的名称或者是别名。

% 任意0个或者多个字符

_ 下划线,代表的是任意的单个字符

[a-f] 代表的是a-f的任意的单个字符

[a,z] 代表的是a或者z

[^a-f]代表的是取反,不是a-z的任意字符

*/

/*

模糊查询完成。大概也就这么多东西了。2016年2月11日16:37:21

*/

/*

聚合函数

单行函数,每一行返回一个数值。

多行函数,多行返回一个数值.

聚合函数是多行的函数。

*/

select lower(ename)  from emp; --大写换成lower写。单行函数,每一行都返回一个数值

select max(sal) from emp; --max是多行函数,因为多行返回的是一个数值。

/*

聚合函数的分类

max()

min()

avg()

count()

*/

select count(*) from emp --返回emp表里面所有记录的个数

select count(deptno) from emp;-- 有重复的but还是15这说明deptno重复的记录还是被当成有效的了

select count(distinct deptno) from emp; --挂上distinct 这样重复的记录就被过滤了。

select count(comm) from emp; -- null不参与count的计算。返回值是4个,然而不是14个

--------------------------------------------------------

select max(sal) as "最高工资" ,min(sal) as "最低工资" ,count(*) "员工人数" from emp; -- 正确

select max(sal) ,lower(ename) from emp;--返回的行数不一样,肯定是ERROR

--

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重度使用Flutter研发模式下的页面性能优化实践

简介&#xff1a; 淘宝特价版是集团内应用Flutter技术场景比较多&#xff0c;且用户量一亿人以上的应用了。目前我们首页、详情、店铺、我的&#xff0c;看看短视频&#xff0c;及评价&#xff0c;设置等二级页面都在用Flutter技术搭建。一旦Flutter有性能瓶颈&#xff0c;重度…

蚂蚁构建服务演进史

简介&#xff1a; 自动化构建和CI/CD往往是相辅相成的&#xff0c;可以理解为&#xff0c;自动化构建是温饱问题&#xff0c;解决了温饱就会有更多的提高生产力的诉求&#xff0c;也就是对应的CI平台&#xff0c;CI/CD本篇文章不做扩展。 作者 | 琉克 来源 | 阿里技术公众号 一…

对话Satya Nadella:大规模AI模型、人机界面或将迎来大突破

编者按&#xff1a;1991年微软研究院成立&#xff0c;三十年坚持不懈的探索成就了微软研究院今天在全球计算机科研领域的位置。在接下来的10年、30年中&#xff0c;科研世界会呈现何种面貌&#xff1f;下一个技术创新的突破点在哪里&#xff1f;微软又将怎样持续发挥作用&#…

python入门之玩转列表我的菜单_我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)...

#!/usr/bin/env python3#coding:utf-8Created on: 2015年12月30日author: 张晓宇Email: 61411916qq.comVersion: 1.0Description: 三层菜单1、菜单一共三级即&#xff1a;省&#xff0c;市&#xff0c;区县2、每一级菜单输入的如果输入的是菜单里的选项则进入下级菜单3、第1级菜…

这个云原生开发的痛点你遇到了吗?

简介&#xff1a; 上云从来都不是一片坦途&#xff0c;在此过程中我们总会遇到一些困难和挑战&#xff0c;得益于云原生技术的日益成熟&#xff0c;这些问题一定会有相应的解法。 作者&#xff1a;纳海 背景 在云原生时代&#xff0c;国内外众多云厂商释放出强大的技术红利…

mysql安装pymyaql_python安装mysql的依赖包mysql-python操作

一般情况下&#xff0c;使用pip命令安装即可&#xff1a;[rootdthost27 ~]# pip install mysql-python但是在实际工作环境中&#xff0c;往往会安装失败&#xff0c;这是因为系统缺少mysql的相关依赖组件。所以必须先安装mysql-devel类的包&#xff0c;而且必须要对应好mysql客…

「技术人生」专题第1篇:什么是技术一号位?

前言 什么是技术一号位、有哪些关注点、怎么做技术一号位&#xff1f; 做了研发团队的技术 leader 以后&#xff0c;要处理的事情非常多&#xff0c;如果对自己扮演的角色没有一个清晰的认知&#xff0c;就会出现该做的事情没有做&#xff0c;不该做的事情投入了过多的精力&…

服务器之后加码存储,浪潮信息重磅发布新一代 G6 存储平台

作者 | 宋慧 出品 | CSDN云计算 提到浪潮&#xff0c;业界首先想到的是浪潮信息服务器占有的优势和市场份额。不过&#xff0c;其实浪潮在存储领域也持续深耕和发力中。据国际分析机构 Gartner 报告显示&#xff0c;2021 年第一季度&#xff0c;浪潮存储在全闪存存储、分布式存…

python中异常和错误是同一个概念吗_Python 错误与异常

2017-08-01 13:40:17在程序运行过程中&#xff0c;总会遇到各种各样的错误。有的错误是程序编写有问题造成的&#xff0c;比如本来应该输出整数结果输出了字符串&#xff0c;这种错误我们通常称之为bug&#xff0c;bug是必须修复的。有的错误是用户输入造成的&#xff0c;比如让…

技术干货 | 轻松两步完成向 mPaaS 小程序传递启动参数

简介&#xff1a; 以传递 name 和 pwd 参数为例&#xff0c;分别介绍此场景在 Android 小程序和 iOS 小程序中的实现过程。 前言 在部分场景下&#xff0c;需要向小程序的默认接收页&#xff08;pages/index/index&#xff09;传递参数。 本文将以传递 name 和 pwd 参数为例&…

腾讯安全发布安全托管服务MSS,推动网络安全建设向服务驱动转变

近年来&#xff0c;随着黑产组织逐渐规模化、产业化&#xff0c;网络攻击态势愈发严峻&#xff1b;同时&#xff0c;由于DevOps、云原生等新技术的落地&#xff0c;以及IT架构的变化&#xff0c;企业研发和运营的模型随之改变&#xff0c;风险应对策略也越发复杂&#xff0c;越…

深入解读:获得 2021 Forrester 全球云数仓卓越表现者的阿里云数据仓库

简介&#xff1a; 阿里云在最新发布的 The Forrester Wave™: Cloud Data Warehouse, Q1 2021 全球云数据仓库技术评比中进入卓越表现者象限&#xff0c;成为国内唯一入选厂商。本文针对 Forrester 的报告&#xff0c;结合阿里云的以 MaxCompute 为核心的云数仓产品&#xff0c…

python文件替换一行_python自动化替换文件中每一行中的特有字符串

在工作中&#xff0c;有可能有一些场景&#xff0c;例如我要替换我txt文档中&#xff0c;所有行中包含test文字的的行内容&#xff0c;例如我们可以替换为空&#xff0c;或者某一个特定字符串呢&#xff1f;不多说&#xff0c;上代码。。def repalceString():lineList []file …

Azkaban业务流程如何转化为DataWorks业务流程

简介&#xff1a; 用户在迁移上云的时候&#xff0c;需要将云下的的Azkaban任务迁移上云&#xff0c;之前通过用户在DataWroks一步步创建对应的业务流程&#xff0c;其转化难度和转化时间都是一定的成本和时间&#xff0c;但如何能做到省时省力的方式迁移,为此本文提供了使用迁…

mysql 事务autocommit_亲身实验mysql配置中autocommit和事务的关系

话说亲身实验mysql配置中autocommit和事务的关系&#xff0c;是由于项目中用到的mysql事务没能回滚&#xff0c;我用的是InnoDB的引擎&#xff0c;就开始追查原因。这一查不要紧&#xff0c;发现网上如出一辙的说法竟也不可信&#xff0c;还是亲身实验最靠谱。下面更正几种常见…

深度 | 数据湖分析算力隔离技术剖析

简介&#xff1a; 随着越来越多的企业开始做数据湖分析&#xff0c;数据量的持续增加&#xff0c;数据分析需求也会越来越多&#xff0c;在一个共享的数据湖分析引擎&#xff0c;如何防止多租户之间的查询相互影响是一个很通用的问题&#xff0c;本文以阿里云DLA Presto为例&am…

续写传奇,浪潮存储凭何脱颖而出

“浪潮信息围绕智慧计算战略&#xff0c;构建算力、算法、数据三位一体的核心竞争力。浪潮存储的表现非常亮眼&#xff0c;以超过100%的市场增速高速成长&#xff0c;市场占有率已经位居全球前五、中国前二。浪潮发布新一代G6存储平台&#xff0c;同时公布存储业务目标&#xf…

mfc链表中的数据如何排序输出_java程序员面试中最容易被问到的18个算法题(附答案!)...

算法是比较复杂又基础的学科&#xff0c;每个学编程的人都会学习大量的算法。而根据统计&#xff0c;以下这18个问题是面试中最容易遇到的&#xff0c;本文给出了一些基本答案&#xff0c;供算法方向工程师或对此感兴趣的程序员参考。1&#xff09;请简单解释算法是什么&#x…

深度解析PolarDB数据库并行查询技术

简介&#xff1a; 随着数据规模的不断扩大&#xff0c;用户SQL的执行时间越来越长&#xff0c;这不仅对数据库的优化能力提出更高的要求&#xff0c;并且对数据库的执行模式也提出了新的挑战。本文将介绍基于代价进行并行优化、并行执行的云数据库的并行查询引擎的关键问题和核…

python queue模块安装_Python -- Queue模块

学习契机 最近的一个项目中在使用grpc时遇到一个问题,由于client端可多达200,每个端口每10s向grpc server发送一次请求,server端接受client的请求后根据request信息更新数据库,再将数据库和配置文件的某些数据封装后返回给client。原代码的性能是0.26s/request,远远达不到…