Oracle知识点(2)简单查询 模糊查询 范围查询
2016-09-17 17:18
363 查看
1简单查询是将一张数据表中所有数据行的内容都显示出来;
2 在查询语句之中先执行FROM字句确定数据来源 (此时实际上是所有的行和列)以控制要显示的数据列
3如果出现数据的重复 可以使用distinct来消除掉重复的数据行显示
4select子句里面可以运行四则运算 ;
5select子句可以直接输出常量内容 但是对于字符串使用" '", 数字直接编写
6“||”负责进行输出的内容连接 但是需要注意的是 一般此类的操作很少直接在查询中出现(一般在查询中用的少 在存储过程中用的多)
注意的地方: 在查询sql语句中使用别名时 可以不用加上 " '" 引号但其他常量需要加上
常见的运算符如下:
关系运算符: >,< >= ,<= ,<>(!=);
逻辑运算符: AND,OR,NOT;
范围运算符: BETWEEN..AND..
谓词范围: IN,NOTIN;
空判断:IS NULL,IS NOT NULL;
模糊查询:LIKE
在Oracle数据库之中 所有的数据是需要区分大小写关系的。
"="可以在数字上使用 也可以在字符串使用 在Oracle数据库中 为了方便开发=无论什么数据类型 都可以直接使用
在逻辑运算中除了与和或的逻辑之外还会存在一个非的逻辑 非得逻辑 如果原始条件的判断为真 那么结果就是假 反之
如果原始条件的判断为假 那么结果就是真
对于逻辑操作有一点说明 不要写过于复杂的逻辑操作
select* from emp where sal<2000;
select*from emp where not sal>=2000; 以上两个sql语句同个意思。
范围查询:
Between and 一般在查询字符串时 意义不大 一般都是在涉及到数字方面的时候
空判断:
空在数据库上解释为不确定的内容 但是需要注意的是 如果在数字列使用判断不能够使用关系运算符完成 空的操作只能够使用 is null
或者是is not null 或者是 not is null
in:
在指定查询的过程之中 In的操作是最简短的
既然在指定的范围里面使用in 那么如果不在指定的范围之中使用 not in
select* from emp where empno in(7369,7566,7788,9999,null)
select* from emp where empno not in(7369,7566,7788,9999)
注意:关于not in 与 null的问题:
在使用not in 进行范围判断的时候 如果范围里面含有null 那么不会有输出结果的
可以从浅层次的方面解释就是 程序的运行依靠着内存 数据量很大的时候 你在not in 后面含有null (就是不确定的意思)
此时可能就要进行着全部查询 而此时数据量很大 会造成很大的风险 造成死机
模糊查询:Like
总结:
where子句一般都写在from子句之后 但是紧跟着from子句之后
where子句控制显示的数据行的操作 而select子句控制显示数据列的操作
由于select子句后于where子句执行 所以select定义的别名 不能在where子句里使用
下面是结合对比编程语言中的null值和实例进行分析:
数据库中的NULL表示“没有对(列)变量输入数据”,即在数据库中的NULL可以区分“没有对(列)变量输入数据”和“有对(列)变量输入数据”这两类情况。而输入空字符串,
则是这里的“有对(列)变量输入数据”这一类情况,即有输入数据,只是输入的数据为空字符串(含有终止符的还是)。从这个意义上讲,如int t;语句,
也是属于这里的“有对(列)变量输入数据”这一类情况,只是不是有程序员自己输入值,而是由(编译)系统输入一个随机数而已。
数据库中的NULL和C++等语言中的NULL的区别:
数据库中的NULL是一个关键字,表示“没有对(列)变量输入数据”;
C++等语言中的NULL是一个宏,表示为整数0一般。
所以在源代码的绑定变量函数里不能使用Null(是一个宏)或是'Null'(是一个字符串),因为两者都不表示数据库中的关键字NULL。
当然,在源代码里,不含有绑定变量的SQL语句字符串(如,“insert into 表1 values(null,null)”)里出现Null是可以作为数据库的Null解释的,该SQL语句字符串用step函数执行可以成功达到目的即表字段里的值为Null。
实例分析如下:
使用NULL可以区分“没有输入数据”和“输入空数据”, 差异在于:
NULL的长度就是NULL,空字符串的长度为0
一串NULL数据比空字符串优先排序
COUNT(message)会将空字符串计数进去,但是不会将NULL数据们计入
可以使用绑定变量搜索某个空字符串,但是不可以这样搜索NULL,
MySQL空字符串和NULL值问题
MySQL空字符串和NULL值我们都经常会见到,但是这二者并不是一个概念,下面就为您介绍NULL与MySQL空字符串的区别,供您参考。
对于SQL的新手,NULL值的概念常常会造成混淆,他们常认为NULL与MySQL空字符串是相同的事。情况并非如此。例如,下述语句是完全不同的:
MySQL> INSERT INTO my_table (phone) VALUES (NULL);
MySQL> INSERT INTO my_table (phone) VALUES ('');
这两条语句均会将值插入phone(电话)列,但第1条语句插入的是NULL值,第2条语句插入的是空字符串。第1种情况的含义可被解释为“电话号码未知”,而第2种情况的含义可被解释为“该人员没有电话,因此没有电话号码”。
为了进行NULL处理,可使用IS NULL和IS NOT NULL操作符以及IFNULL()函数。
在SQL中,NULL值与任何其它值的比较(即使是NULL)永远不会为“真”。包含NULL的表达式总是会导出NULL值,除非在关于操作符的文档中以及表达式的函数中作了其他规定。下述示例中的所有列均返回NULL:
MySQL> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
2 在查询语句之中先执行FROM字句确定数据来源 (此时实际上是所有的行和列)以控制要显示的数据列
3如果出现数据的重复 可以使用distinct来消除掉重复的数据行显示
4select子句里面可以运行四则运算 ;
5select子句可以直接输出常量内容 但是对于字符串使用" '", 数字直接编写
6“||”负责进行输出的内容连接 但是需要注意的是 一般此类的操作很少直接在查询中出现(一般在查询中用的少 在存储过程中用的多)
注意的地方: 在查询sql语句中使用别名时 可以不用加上 " '" 引号但其他常量需要加上
常见的运算符如下:
关系运算符: >,< >= ,<= ,<>(!=);
逻辑运算符: AND,OR,NOT;
范围运算符: BETWEEN..AND..
谓词范围: IN,NOTIN;
空判断:IS NULL,IS NOT NULL;
模糊查询:LIKE
在Oracle数据库之中 所有的数据是需要区分大小写关系的。
"="可以在数字上使用 也可以在字符串使用 在Oracle数据库中 为了方便开发=无论什么数据类型 都可以直接使用
在逻辑运算中除了与和或的逻辑之外还会存在一个非的逻辑 非得逻辑 如果原始条件的判断为真 那么结果就是假 反之
如果原始条件的判断为假 那么结果就是真
对于逻辑操作有一点说明 不要写过于复杂的逻辑操作
select* from emp where sal<2000;
select*from emp where not sal>=2000; 以上两个sql语句同个意思。
范围查询:
Between and 一般在查询字符串时 意义不大 一般都是在涉及到数字方面的时候
空判断:
空在数据库上解释为不确定的内容 但是需要注意的是 如果在数字列使用判断不能够使用关系运算符完成 空的操作只能够使用 is null
或者是is not null 或者是 not is null
in:
在指定查询的过程之中 In的操作是最简短的
既然在指定的范围里面使用in 那么如果不在指定的范围之中使用 not in
select* from emp where empno in(7369,7566,7788,9999,null)
select* from emp where empno not in(7369,7566,7788,9999)
注意:关于not in 与 null的问题:
在使用not in 进行范围判断的时候 如果范围里面含有null 那么不会有输出结果的
可以从浅层次的方面解释就是 程序的运行依靠着内存 数据量很大的时候 你在not in 后面含有null (就是不确定的意思)
此时可能就要进行着全部查询 而此时数据量很大 会造成很大的风险 造成死机
模糊查询:Like
总结:
where子句一般都写在from子句之后 但是紧跟着from子句之后
where子句控制显示的数据行的操作 而select子句控制显示数据列的操作
由于select子句后于where子句执行 所以select定义的别名 不能在where子句里使用
下面是结合对比编程语言中的null值和实例进行分析:
数据库中的NULL表示“没有对(列)变量输入数据”,即在数据库中的NULL可以区分“没有对(列)变量输入数据”和“有对(列)变量输入数据”这两类情况。而输入空字符串,
则是这里的“有对(列)变量输入数据”这一类情况,即有输入数据,只是输入的数据为空字符串(含有终止符的还是)。从这个意义上讲,如int t;语句,
也是属于这里的“有对(列)变量输入数据”这一类情况,只是不是有程序员自己输入值,而是由(编译)系统输入一个随机数而已。
数据库中的NULL和C++等语言中的NULL的区别:
数据库中的NULL是一个关键字,表示“没有对(列)变量输入数据”;
C++等语言中的NULL是一个宏,表示为整数0一般。
所以在源代码的绑定变量函数里不能使用Null(是一个宏)或是'Null'(是一个字符串),因为两者都不表示数据库中的关键字NULL。
当然,在源代码里,不含有绑定变量的SQL语句字符串(如,“insert into 表1 values(null,null)”)里出现Null是可以作为数据库的Null解释的,该SQL语句字符串用step函数执行可以成功达到目的即表字段里的值为Null。
实例分析如下:
使用NULL可以区分“没有输入数据”和“输入空数据”, 差异在于:
NULL的长度就是NULL,空字符串的长度为0
一串NULL数据比空字符串优先排序
COUNT(message)会将空字符串计数进去,但是不会将NULL数据们计入
可以使用绑定变量搜索某个空字符串,但是不可以这样搜索NULL,
MySQL空字符串和NULL值问题
MySQL空字符串和NULL值我们都经常会见到,但是这二者并不是一个概念,下面就为您介绍NULL与MySQL空字符串的区别,供您参考。
对于SQL的新手,NULL值的概念常常会造成混淆,他们常认为NULL与MySQL空字符串是相同的事。情况并非如此。例如,下述语句是完全不同的:
MySQL> INSERT INTO my_table (phone) VALUES (NULL);
MySQL> INSERT INTO my_table (phone) VALUES ('');
这两条语句均会将值插入phone(电话)列,但第1条语句插入的是NULL值,第2条语句插入的是空字符串。第1种情况的含义可被解释为“电话号码未知”,而第2种情况的含义可被解释为“该人员没有电话,因此没有电话号码”。
为了进行NULL处理,可使用IS NULL和IS NOT NULL操作符以及IFNULL()函数。
在SQL中,NULL值与任何其它值的比较(即使是NULL)永远不会为“真”。包含NULL的表达式总是会导出NULL值,除非在关于操作符的文档中以及表达式的函数中作了其他规定。下述示例中的所有列均返回NULL:
MySQL> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
相关文章推荐
- Oracle知识点总结—scott表结构与简单查询
- Oracle模糊查询,foreach用法,树结构查询,group by简单总结
- Oracle 11g 第一章知识点总结——数据库简介 简单查询
- mybatis里面的mysql和oracle简单模糊查询
- 解决模糊查询速度慢问题(ORACLE)
- oracle中进行简单树查询(递归查询) ,PRIOR、CONNECT_BY_ROOT的使用
- 对于oracle进行简单树查询(递归查询)
- 对于oracle进行简单树查询(递归查询)
- 简单实用oracle sql查询
- 在ORACLE的存储过程中如何做简单的动态查询
- oracle笔记之简单查询与限定查询和排序
- java oracle 日期时间模糊查询的方法
- oracle 参数的模糊查询的问题
- Oracle SQL模糊查询的语法为
- Java26日通—第 1 天 Oracle基本命令与简单查询
- 数据库-Oracle【SQL模糊查询语句(like) 及SQL Server 2005 导入和导出向导】
- 对于oracle进行简单树查询(递归查询)
- Oracle学习一(简单查询语句)
- 对于oracle进行简单树查询(递归查询)
- 1.oracle几个简单查询