单表查询:
语法格式:
SELECT * | {[DISTINT] column | expression[alias],...}
FROM table_name [WHERE condition];
Table_name 指定表名 colum指定列名 expression 指定表达式
Alias 指定列的别名 condition指定查询条件
假如我们有一张学生表,如下:
Create table stuent(
sid number(8,0),
name varchar2(20),
sex char(2),
class_name varchar2(30),
birthday date,
addess varchar2(50)
);
特定列查询
select sid from student;
全部列查询
select * from student
排除重复行 distinct
默认情况下,当执行查询操作时,会显示所有满足条件的行,包括重复行。
例如学生表中 班级名称 一列,肯定有很多学生属于一个班级,但是你想查询一共有几个不同的班级名称,就可以:
select distinct class_name from student;
加入 distinct之后就不会显示重复行了。
日期列的查询
日期列:是指数据类型为日期类型的列,如DATE类型。
日期列的默认显示格式为DD-MON-RR
RR代表年,而且只取年份的后两位数字
RR和YY区别RR根据区间 YY当前+后两位(不懂自行百度,没啥用处)
以简体中文显示日期结果:
将会话的NLS_LANGUAGE参数设置为SIMPLIFIED CHINESE
ALTER SESSION SET nls_language=’SIMPLIFIED CHINESE’;
以美国英语显示日期结果
将会话的NLS_LANGUAGE参数设置为AMERICAN
ALTER SESSION SET nls_language=’AMERICAN’;
以特定格式显示日期结果
如果希望定制日期显示格式,并按照特定方式显示日期结果,那么可以修
改会话的NLS_DATE_FORMAT参数。
ALTER SESSION SET nls_date_fomat = ‘YYYY/MM/DD’;
查询语句中算术运算符的使用
可应用在数字和日期的列上
如求雇员的年收入(年收入表上没有,需要计算) sal表示员工平均月收入
SELECT empno,ename,sal,sal * 12 FROM emp;
优先级:和数学运算的优先级相同
SELECT empno,ename,sal*12+sal/2 FROM emp;
SELECT empno,ename,sal*12+200 FROM emp;
SELECT empno,ename,12*(sal+100) FROM emp;
算数运算中的空值NULL问题
Null表示未知值,不是空格也不是0
算数表达式包含null时,其显示结果也为null
空值和默认值
空值:当插入数据时,如果没有为特定的列提供数据,并且该列也没有有默认值,那么其结果为null
默认值:在创建表时可以使用default关键字为列设置默认值,在表中插入数据时,如果没有为该列提供数据,那么该列将使用默认值。
Create table stuent(
Sid number(8,0),
Name varchar2(20),
Sex char(2) default ‘男’,
Birthday date,
Age number(2,0) default 20, //这里设置了默认值为20
Addess varchar2(50)
);