(2)Oracle尚硅谷:基本select语句

command window 窗口下:

注:SQL*plus 的关键字不是SQL的关键字。

desc 表名=describe 表名。  ---查询表结构。

ed = edit。   --- 打开文本编辑器。

SQL> ed  --打开文本编辑器,输入sql语句,确定
SQL> /  --运行文本编辑器

1 select 8*4 from dual;         ---dual是伪表
2 select sysdate from dual;     ---sysdate返回当前日期

 基本select语句:

1 --基本SQL语句:
2 SELECT *|{[DISTINCT] column|expression [alias],...}
3 FROM table;

*:选择全部列

+-*/:操作符(优先级:括号>乘除>加减。 同一优先级运算符从左向右执行)

1 --选择特定列,使用运算符
2 SELECT last_name, salary, 12*(salary+100)
3 FROM employees;

空值 null、消除重复行 distinct :

distinct 消除重复行,不过滤空值。

is null;    --空值

is not null;  --非空值

空值不同于0,凡是空值参与的数学运算,结果都为null。但空值与其他字符串拼接的结果不为空。

别名AS:

字段起别名,可用AS,可不用AS。可加" ",可不加" "。

加" "是确定的别名,大小写敏感,格式保留。不加" "则大写显示。

字符串用' '单引号,Oracle中只有别名采用" "双引号。

连接符 ||:

1 --连接符‖,把列与列,列与字符连接在一起。
2 select last_name || 's job_id is' || job_id from employees;
3 --字符和日期要包含在单引号中,字符大小写敏感,日期格式敏感

日期格式:'13-9月-2022'。该格式不常用,常使用函数将数据库中的日期转化为字符串,或使用函数将字符串转化为日期格式

过滤where:

1 SELECT *|{[DISTINCT] column|expression [alias],...}
2 FROM table [WHERE condition(s)];

其它比较运算:

between…and… 在两个值之间 (包括边界)

模糊查询 like:

like 模糊查询,通配符%多个字符,_单个字符。

当需要%_只是字符串不是通配符时。回避特殊符号的:使用转义符。

例如:将[%]转为[\%]、[_]转为[\_],然后再加上[escape ‘\’] 即可。

1 --查找last_name带有_的记录:
2 select * from employees where last_name like '%\_%' escape '\';
3 --\用 # 代替也可以。

可以使用括号改变优先级顺序

排序 order by:

多次排序:order by 字段1 asc,字段2 desc;     

--首先按照字段1排序,若字段1相同,则按照字段2降序排序。

--asc升序,desc降序。默认asc。

使用别名排序:order by 字段1别名 asc,字段2别名 desc;

总结:

SELECT     *|{[DISTINCT] column|expression [alias],...}
FROM       table
[WHERE     condition(s)]
[ORDER BY  {column, expr, alias} [ASC|DESC]];

 

posted @ 2022-09-26 17:01  七月安生里  阅读(77)  评论(0)    收藏  举报