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

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

算了,开始正题。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

--

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

  1. mysql 查看 dml_MySQL 命令查询过程及DML常用命令

    一,查询过程: 当mysql客户端向服务端发情查询请求以及服务器响应客户端的查询请求过程当中,数据通过mysql协议经过了一些列的转变,首先Mysql服务端通过mysql协议收到客户端请求,服务器首先 ...

  2. mysql 查看索引深度_mysql 学习 - 索引深度理解

    使用索引的代价 在熟悉了B+树索引原理之后,本篇文章的主题是唠叨如何更好的使用索引,虽然索引是个好东西,可不能乱建,在介绍如何更好的使用索引之前先要了解一下使用这玩意儿的代价,它在空间和时间上都会拖后 ...

  3. wps表格数据导入access_excel wps access mysql数据表格的查询之路

    简直血崩,最近去做兼职,每天都有大量的表格数据要整理. 开始 还是 用 excel的用起来还算顺畅,慢慢慢慢的发现了各种弊端.大概类似于分组排序什么什么的好多啦~~~不过也确实是用了不到两个小时就能比 ...

  4. mysql查看表格的列信息

    为什么80%的码农都做不了架构师?>>>    SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'db_n ...

  5. mysql 查看表格scott_在mysql中创建 oracle scott 用户的四个表及插入初始化数据

    各表的字段的含义: 1.  部门表:dept № 名称 类型 描述 1 DEPTNO NUMBER(2) 表示部门编号,由两位数字所组成 2 DNAME VARCHAR2(14) 部门名称,最多由14 ...

  6. mysql监控---慢语句查询

      慢语句查询.  1,开启慢sql日志查询功能.  2,用show full processlist :查询执行的sql语句,然后看哪些语句有问题.  3,将有问题的语句拿出来,前面放上explai ...

  7. mysql查看执行计划_MySql中如何使用 explain 查询 SQL 的执行计划

    explain命令是查看查询优化器如何决定执行查询的主要方法. 这个功能有局限性,并不总会说出真相,但它的输出是可以获取的最好信息,值得花时间去了解,因为可以学习到查询是如何执行的. 1.什么是MyS ...

  8. mysql 创建表格time类型_记一次关于 Mysql 中 text 类型和索引问题引起的慢查询的定位及优化...

    最近有用户反馈产品有些页面加载比较慢,刚好我在学习 Mysql 相关知识,所以先从 Mysql 慢查询日志开始定位: step1:通过慢查询日志定位具体 SQL 首先通过 SHOW VARIABLES ...

  9. mysql 去重后拼接_mysql学习笔记(三)—— 查询select

    本节主要介绍查询语句(select),包括基础查询.条件查询.模糊查询,以及一些常用函数包括:去重函数distinct.字符拼接函数concat.null判断函数ifnull. 内容都是自己学习后从S ...

最新文章

  1. 前端开发工程师 - 04.页面架构 - CSS Reset 布局解决方案 响应式 页面优化 规范与模块化...
  2. Java 把一个InputStream转换为一个BufferedReader
  3. 信息学奥赛一本通(1094:与7无关的数)
  4. 精通Android自定义View(十八)自定义圆形菊花加载转圈效果
  5. c语言水平制表符怎么才能占16列,水平制表符是?其作用?
  6. 可太惨了吧!乐视网临时股东大会仅两位董事会成员出席,6分钟内结束
  7. 声卡性能测试软件,RightMark Audio Analyzer音频声卡测试软件
  8. navicat输入法问题
  9. 学习虚幻4(一)U3D与UE4的比较
  10. 函数原型中int *arr和int arr[]
  11. 数据结构实验二:7-2 两个有序链表序列的合并
  12. 基于matlab的医学成像技术滤波反投影仿真,包括直接反投影,S-L滤波,R-L滤波,Lewitt滤波
  13. standFord parser 和dependencyparser 使用说明及其符号含义
  14. Sublime Text3 + LiveReload + Chrome 使编写的HTML同步预览!
  15. 推荐一些优秀的SAP网站
  16. Linux驱动面试题集锦
  17. GBase南大通用高可用技术实践
  18. 【Github】fatal: remote error: You can't push to git 解决办法
  19. 阿里面试官:你在工作中是如何做代码重构的?
  20. js下载后台返回的excel文件流

热门文章

  1. 平时的鸿星尔克VS开挂后的鸿星尔克
  2. linux下 c语言 用write open二进制写文件,Linux下用C语言fopen、fread和fwrite函数对二进制文件的操作-Go语言中文社区...
  3. Win7虚拟无线AP以及Android手机抓包
  4. IplImage* cvmat* mat 释放
  5. 选轻量应用服务器or云服务器ECS?一图帮你彻底区分
  6. 双11实时物流订单实践
  7. Scheduled SQL: SLS 大规模日志上的全局分析与调度
  8. 【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤
  9. 消息轨迹全景图详解-独门秘籍
  10. 日均万亿条数据如何处理?爱奇艺实时计算平台这样做