oracle基础 知识点

  oracle基础数据类型:

 1. 字符型:字符串

        varchar2(最大4000), nvarchar2(最大2000, 支持unicode)--->可变长度

 2. 数字类型
            包括整数和小数
            number(有效位数, 小数位数);
            number(11)   11位
            number(5, 3)99.999

 3. 日期类型:时间
              date:取值范围:公元前4712年1月1号---公元9999年12月31号, 可以直接精确到秒

    4.算术运算符       注意这个地方没有取余的运算符( %) , 取余使用mod函数)

       NOT IN 等同于<>all ()
              如果子查询作为条件时,其中有一个值为null,则尽量避免使用not in

      <>/!=(不等于) ,两种表现形式

  5.逻辑运算符(and  or  not)
          字符串连接符(||)

      6.数据库约束:

      主键约束    ( PK_nmae  ,主键起的名字)  非空, 唯一
                一个表中只能有一个主键(某一列),

      外键约束    ( FK_name ,外键起的名字)
            唯一一个涉及两个表中的字段约束

       唯一约束(unique)  (UK_name,唯一起的名字)
            保证字段值的唯一性      与主键的区别: 唯一约束可以为空值, 唯一约束可以有多个,但是主键不可以为空

   检查约束(cheeck_ name ,检查起的名字)     定义一个值的范围

 6.常用关键字

select t.*, t.rowid from YUAN t
ALTER TABLE yuan ADD sfzh NUMBER   --给表格添加列
SELECT s.* FROM yuan s --打印所有信息
SELECT s.sname,s.sage FROM yuan s --从中打出名字,年龄的信息,后面的表名可以起一个别名
SELECT s.* FROM yuan s WHERE s.sage>24 --打印出年龄大于24的所有的信息
INSERT INTO yuan(ID , sname,sage)VALUES (106,'小黑',24);--指定添加的部分
COMMIT;  --提交
INSERT INTO yuan VALUES (107,'小赵',21,SYSDATE,NULL,NULL); --所有的信息都添加,SYSDATE,系统默认时间
COMMIT;
UPDATE yuan s SET s.sage = 26 WHERE s.id = 102; --更新数据
COMMIT;
DELETE yuan s WHERE s.id = 105;  --删除数据
COMMIT;

SELECT y.* FROM yuan y
SELECT y.* FROM yuan y WHERE y.id IN (101,107,106) --某个范围里的任意值
SELECT * FROM yuan y WHERE y.sname LIKE '%赵'  --%表示任意几个字符,包括啥也没有,
SELECT * FROM yuan y WHERE y.sname LIKE '小_'  -- _表示单个字符  
SELECT * FROM yuan y ORDER BY y.sage ASC --正序(默认)
SELECT * FROM yuan y ORDER BY y.sage DESC --desc倒序
SELECT * FROM yuan y ORDER BY  y.cid DESC ,y.sage ASC --先根据id排列,后再根据sage排列
SELECT * FROM yuan y ORDER BY 3,4    --索引是从1开始的,查询结果(*),按照列看索引
SELECT y.id,y.birthday FROM yuan y GROUP BY y.id,y.birthday  --按某几列分组
SELECT y.id ,y.sage FROM yuan y GROUP BY y.id,y.sage ORDER BY y.id --按照某几列分组 
SELECT y.id ,COUNT(1) FROM yuan y GROUP BY y.id--count 是计数的意思
SELECT y.id,COUNT(1) FROM yuan y GROUP BY y.id 
HAVING COUNT (1)=1 ----having关键字是用在group by之后对分组信息的过滤
--过滤出来计数等于1的id项
SELECT y.sname 名字,
--CASE y.sex WHEN 1 THEN '女'WHEN 2 THEN '男'END 性别  --case...when...---类似于分支
  CASE WHEN y.sex = 1 THEN '女' ELSE '男' END 性别  -- case ... when ....then ...else...end  别称
 FROM yuan y 
 SELECT DISTINCT  y.cid FROM yuan y --去重,查看到底有几个部门
SELECT * FROM yuan y WHERE y.sage BETWEEN 22 AND 27  --闭合区间, 即包括前面的数, 也包括后面的数

 SELECT * FROM yuan y WHERE y.birthday
  BETWEEN to_date ('20171101','yyyymmdd') AND to_date ('20171201','yyyymmdd')
SELECT * FROM yuan y
 WHERE y.sage >= ALL(SELECT y.sage FROM yuan y ) --all,所有元素,取年龄的最大值
 SELECT * FROM yuan y
 WHERE y.sage <= ANY(SELECT y.sage FROM yuan y ) --any/some---表示一个集合中任意一个元素
 --取的是所有的数据
原文地址:https://www.cnblogs.com/zuo72/p/8007151.html