Oracle常用语句
1、ORDER BY排序函数,默认升序ASC:
例:按升序排列pname,降序排列time
SELECT * FROM t1 ORDER BY pname ASC, time DESC;
2、replace更改查询结果的显示值:
select replace(psex,'男','m') from t1;
3、按年、月查询,查询对象需是日期格式,如:
select * from t1 where to_char(date, 'yyyy')=1980;
否则,若日期为字符型格式,需要先转换为日期格式再转为字符查询:
select pname from t1
where to_char(to_date(time, 'yyyy-mm-dd hh24:mi:ss'),'mm')=02;
3、substr:字符截取函数
格式1,有两个数字:
substr(string, int a, int b);
string 表示需要截取的字符串
a 表示截取的开始位置(注:当a等于0或1时,都是从字符串的第一位开始截取)
b 表示要截取的字符串的长度
格式2,只有一个数字:
substr(string, int a) ;
从第a个字符开始截取后面所有的字符串,等同于:
substr(string, int a, len(string)-a) ;
4、查询视图的创建语句:
select text from user_views where view_name=' v1';
5、为查询结果创建新表:
CREATE TABLE table_name AS SELECT * FROM T1;
6、联立查询具有相同列的两个表:
SELECT a.id, a.name, b.class FROM t1 a LEFT JOIN t2 b ON a.id=b.id;
或
SELECT a.id, a.name, b.class FROM t1 a , t2 b WHERE a.id=b.id;
7、两表联立更新数据:
UPDATE t1 SET name = (SELECT new_name FROM t2 WHERE t2.new_name = t1.name)
WHERE EXISTS(SELECT 1 FROM t2 WHERE t2.new_name = t1.name);
其中select 1返回的是每行都为常数‘1’的数据,如: