1、SQL中的null问题:1、包含null的表达式永远为null ;2、null永远!=null
空值是无效的,未指定的,未知的或者不可预知的值
select * from scott.emp where comm=null
是查不到的
select * from scott.emp where comm is nul;
这才可以
2、滤空函数
nvl(a,b):当a的值为空时,返回b的值
select empno,ename,sal,comm,sal*12 yaer_sal,sal*12+nvl(comm,0) total;
3、使用 ed语句可以快速打开txt文件编辑上一条SQL语句
4、别名的三种形式:empno as "员工编号" ,ename "姓名",sal 月薪,
员工编号和姓名这两个别名是没有区别的
加了双引号,双引号当中可以加特殊字符,关键字
5、distinct关键字,去掉重复的行,作用于后面所有的列
select distinct * from scott.emp;//去掉所有列都相同的行
select distinct deptno,job from scott.emp;//去掉deptno相同且job相同的行
6、连接符 ||:用来连接字符串的,可以连接多个列形成一个列
select 'hello' || 'world' from dual;
select ename|| '的薪水是' ||sal 信息 from emp;
7、连接函数concat
select concat('hello',' world') from dual;
dual表是oracle一张特殊的表:伪表,仅仅为了满足上面那条语句的要求
8、select * from emp;
打印在屏幕上的都是字符串,但数据本身是有类型的
9、日期和字符只能在单引号中出现,双引号表示类的别名
10、SQLplus是oracle提供的命令行工具,SQL命令和sqlplus命令是不同概念;一个可以缩写,一个不可以
11、isql*plus http://localhost:5560/isqlplus
可以执行SQL语句,保存SQL语句,执行文件中的SQL语句
12、oem和isqlplu都需要服务支持,需要两个服务器监听1158和5560端口,貌似oracle 11g没有isqlplus?
13、查看监听器状态:lsnrctl status (stop/start)
该监听器下会有所监听的服务
14、日期格式敏感,默认的日期格式是DD-MON-RR
select * from emp where hiredate='11-11月-81';//oracle会把这个日期格式的字符串转换成date型
15、mysql字符串大小写不敏感,而oracle大小写敏感
16、修改日期格式
1、查看参数信息 select * from v$nls_parameters;
2、alter session | system set NLS_DATE_FORMAT='yyyy-mm-dd';//修改当前会话或者系统