Oracle_Day05

查询某一个表中的前几条数据

在mysql中:limit

1、查询第1000条到1005条

select * from tablename limit 999,6;

2、查询前10条数据

select * from tablename limit 10;

3、查询第三条到最后一条数据

select * from tablename limit 2,-1


在Oracle 中:rownum    rownum伪列,Oracle8开始出现,是把每张表中的行数进行编号,始终从1开始,常见的用法为分页查询

问题:查询员工表的前十条数据

select ename from emp where rownum<=10;

问题:查询员工表中部门号为1的员工的前十条数据

select * from (select rownum,deptno,ename from emp where deptno =1) where rownum<=10;

问题:查询员工表中第五条到第十条数据    在没有实例化之前    rowname不可以使用大于等号

给伪列起别名实例化别名 可以使用大于等号

select rownum rn,ename from (select rowname rn ,ename from emp where rownum <=10) where rn >=5;


合并查询(合并多个select的结果):union查询并集

1、查询工资大于5000或者工种是java的员工

union并集,去掉重复行

select ename sal,job from emp where sal>5000 union select ename,sal,job,from emp where job ='java';   无法去掉重复行

select ename sal,job from emp where sal>5000 union all select ename,sal,job,from emp where job ='java';   去掉重复行

2、查询工资大于5000且工种是java的员工信息

select ename sal,job from emp where sal>5000 intersect select ename,sal,job,from emp where job ='java';


Oracle中的函数

函数的作用:

1、方便对数据的统计

2、处理查询的结果(通过身份证号得到生日)

--数值函数

    四舍五入:round(n[,m]),n表示要四舍五入的数,m表示要四舍五入的位数,m不写为小数点后0位,若m>0则四舍五入小数点后保留m位,若m<0保留小数点前m位

    取整函数:floor(n)向下取整,ceil(n)向上取整

    select foor(123.45),floor(123.99)    123

    select ceil(123.001),ceil(123.99)     124

    常用的计算:

    取绝对值:abs(n)、取余函数:mod(m,n)    除数可以为0、幂运算:power(m,n) 求m的n次幂、平方根运算:sqrt(n),求n的平方根 、三角函数:sin(n) asin(n)反三角函数  n为弧度制

--字符函数

    lower():将字符串转成小写模式

    upper():将字符串转成大写模式

    initcap():将字符串首字母转成大写

    length():获取字符串长度

    substr(s,m,n):截取字符串 s为字符串 m为从哪里开始截取,n为字符串的长度

    replace(a,b,c):替换字符串 a为字符串 b为替换前的字符,c为替换后的字符

        综合案例:显示员工的姓名,首字母小写,其它字母大写

        select lower(substr(ename(1,1))) || upper(substr(ename,2,length(ename)-1)) from emp;

--日期函数

        sysdate 指代系统时间

        add_months(m,n)    在m个时间的基础上添加n个月

        问题:查询入职时间超过8个月的员工

            select ename,startdate from emp where sysdate>add_months(stardate,8);

        问题:查询入职时间满10年的员工信息

             select ename,startdate from emp where sysdate>add_months(stardate,120);


        next_day(m,n)

        问题:找一下m时间后的周n是几号

        select next_day(sysdate,'星期一') from dual;


        months_between(m,n)

        问题:m与n之间超过几个月

        select nonths_between('m','n') from 表(dual)


        last_day(m)当前日期最后一天是几号

        问题:找出入职时间是入职当月的导数第三天入职的员工

        select ename,startdate from emp where last_day(startdate)-2=stardate


--转化函数

        日期转换字符串

            to_char(m[,n,params]),m为日期,n为日期转换后的格式,params为指定语言编码

        字符串转日期

            to_date(s,[,n,params]),s为字符串,n为日期转换后的格式,params为指定语言编码

         数字转字符串的转换

            to_char(number[,params]),s为字符串,n为日期转换后的格式,params为转换方式,例如:S¥999,999,999,999.999

        字符串转数字

            to_number(char[,params])



约束:保证数据库有某些特定的商业逻辑,维护数据的完整性:约束、触发器、应用程序(过程,函数)

Oracle中,约束分为5中

1、非空约束:如果给某个字段定义了not null,name在插入数据的时候,就必须为给字段提供数据。

--创建表的时候添加非空约束

create tabe user_table(

username varchar2(20) not null,

password varchar2(20)

)

not null为非空约束

--修改表的时候添加非空约束

alart table table_name modify 字段名 字段类型 (限制)not null    修改时相关字段下没有值


主键约束(PK primary key):主键是定位表中单个行的方式,是可以唯一标识表中的数据,关系型数据库每一张表都应该有主键,主键可以是一个字段也可以是多个字段

1、主键列必须具有唯一性,且唯一

2、每张表只能有一个主键,不过这个主键可以由表中的多个字段共同组成

--在创建表时候添加主键约束

create table student_table(student_id number(10) primary key,student_name varchar(20))  列级约束

create table student_table(student_id number(10) ,student_name varchar(20),constraint 约束的名字(pk_student_id) primary key(字段1,......)(student_id)); 更推崇这种方法,表级约束

修改表的时候添加主键约束

alter table table_name add constraint 约束的名字 primary key(......);

删除主键约束

alter table tablename drop constraint 约束的名字

alter table tablename drop primary key;

禁用 接触禁用主键约束

alter table tablename disable|enable constraint 约束的名字;


外键:

用于联系主表与从表之间的关系,外键定义在从表上,要求外键数据必须在主表的主键列中存在或者为空


--在创建表的时候设置外键约束

create table briup_dept(  --主表

deptno number(2) primary key,

dname varchar2(20), 

loc varchar2(20)

);

createtable briup_emp(    --从表

ename varchar2(20) constraint 约束的名字 not null,

deptno number(2) references briup_dept(deptno)

);

表级约束

create table briup_emp(    --从表

ename varchar2(20) not null,

deptno number(2),

constraint fk_emp_deptno_dept_deptno foreign key references 

briup_dept(deptno)[on delete cascade];

);

--删除外键约束

alter table tablename drop constraint 约束的名字

alter table tablename disable|enable constraint 约束的名字;

4、唯一约束

unique

--创建表的时候  添加唯一约束

create table test(

username varchar2(20) unique

);

create table test(

username varchar2(20),

constraint 约束的名字 unique(字段);

);

唯一约束  只能有一行数据为空

--在修改的时候

alter table table_name add constraint 约束的名字 unique(.....);

--删除唯一约束

alter table tablename drop constraint 约束的名字

alter table tablename disable|enable constraint 约束的名字;


5、检查约束

--在创建的时候添加检查约束

create table emp(

sex varchar2(20) default '男' check(sex in ('男' ,'女')),

sal number(5) check(sal>0)

);

--修改

alter table table_name add constraint 约束的名字 check(条件);

--删除

alter table tablename drop constraint 约束的名字

alter table tablename disable|enable constraint 约束的名字;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容