select 语句

 
1\DML:CRUD
    INSERT
    SELECT --
    UPDATE
    DELETE
2\DDL
    CREATE
    DROP
    ALTER
   
    TRUNCATE TABLE;
   
3\事务控制
    COMMIT
    ROLLBACK
   
   
    insert into test02
    select 100,'aaa' from dual;
   
    select * from (
    select * from all_tables)b;
   
   
    select id 客户编号,name as 客户姓名 from test01;
   
   
    select CERT_CODE as 身份证号,name as 客户姓名 from test01;
   
   
    select DISTINCT id 客户编号,name as 客户姓名 from test01;
   
        select id 客户编号,name as 客户姓名 from test01
        union
        select * from test02;
   
       
        select id 客户编号,name as 客户姓名 from test01
        union all
        select * from test02;
   
        select id 客户编号,name as 客户姓名 from test01
        intersect
        select * from test02;
   
       
        select distinct id 客户编号,name as 客户姓名 from test01 a
                    where exists(select 1 from test02 b where a.id=b.id and a.name=b.name);
   
   
        select id 客户编号,name as 客户姓名 from test01
        minus
        select * from test02;
       
       
        select distinct id 客户编号,name as 客户姓名 from test01 a
                    where not exists(select 1 from test02 b where a.id=b.id and a.name=b.name)
                order by 客户编号 asc ,客户姓名 desc
               
                group by
               
        --记录数
        select count(*) from test01;
       
        select id,count(*) as rec_count from test01
            group by id
            order by rec_count;
           
        SELECT COUNT(1) FROM TEST01;
        select id,count(1) as rec_count from test01
            group by id
            order by rec_count;
           
        select count(0) from test01;
       
        --
       
       
        create table student (stu_id number(5),stu_name varchar2(30));
       
        create table course (id number(5),course_name varchar2(30));
       
        create table student_course (stu_id number(5),id number(5))
       
        insert into student
                    select 3,'王五' from dual;
       
       
        insert into course
                select 1,'oracle' from dual
                union all
                select 2,'javaee' from dual;
               
        insert into student_course
            select 5,1 from dual
            union all
            select 1,2 from dual
            union all
            select 2,2 from dual
           
           
            commit;
           
            select a.stu_id,stu_name,b.id,b.course_name
                    from student a, course b,student_course c
                    where a.stu_id=c.stu_id and b.id=c.id;
                   
           
            SELECT e1.last_name||' works for '||e2.last_name
                "Employees and Their Managers"
                FROM hr.employees e1, hr.employees e2
                WHERE e1.manager_id = e2.employee_id
                AND e1.last_name LIKE 'R%';
               
            select a.* from test01 a,all_tables b
           
           
        select * from student a,student_course b
                        where a.stu_id=b.stu_id;
       
        select A.STU_NAME,COUNT(*)
                        from student a inner join student_course b on a.stu_id=b.stu_id
                GROUP BY A.STU_NAME;
       
        select A.STU_NAME,COUNT(b.id)
                        from student a left join student_course b on a.stu_id=b.stu_id
                GROUP BY A.STU_NAME;
       
        select * from student
       
        select * from student_course
       
        select A.*,b.*
                from student a left join student_course b on a.stu_id=b.stu_id
                --GROUP BY A.STU_NAME;
               
        select A.STU_NAME,COUNT(b.id)
            from student_course b right join student a on a.stu_id=b.stu_id
            GROUP BY A.STU_NAME;
           
        select a.course_name,count(b.id)
            from course a right join student_course b on a.id=b.id
            group by a.course_name
           
           
        select A.*,b.*
                from student a full join student_course b on a.stu_id=b.stu_id;
               
               
        create table a(id number(5),amount number(10,2));
                create table b(id number(5),amount number(10,2))
               
                delete a;
                insert into a
                select 1,500 from dual
                union all
                select 2,100 from dual               
                               
                insert into b
                select 1,500 from dual
                union all
                select 2,50 from dual
                union all
                select 3,100 from dual
       
        select b.*,
            case
                when a_id is null then 'A表不存在'
                when b_id is null then 'B表不存在'
                when a_amount<>b_amount then '余额不相等'
            end as 原因
        from (
            select a.id as a_id,a.amount as a_amount,
                        b.id as b_id,b.amount as b_amount
                from a full join b on a.id=b.id) b
            where a_id is null or b_id is null or a_amount<>b_amount;
           
           
            select * from hr.employees where not( salary>10000 )
                order by salary desc
       
       
            select * from hr.employees where salary>=10000 and manager_id=148
                order by salary desc
               
            select * from hr.employees where (salary>=20000 or salary<2400) and manager_id=148
                order by salary desc;
               
            select * from users where username=? and password=?;
           
            pass='8888';
           
           
            select * from users where username='001' and password='888' or '1'='1';
           
           
            select * from test02 where name like '张%';
           
           
            select * from hr.employees where salary>=10000 and salary<=20000;
            select * from hr.employees where and salary<=20000 and salary>=10000 ;
           
           
            select * from hr.employees where salary not between 10000 and 20000;
           
            select * from hr.employees where not(salary    between 10000 and 20000);
           
        -- select * from hr.employees where salary in (1000,);
       
       
insert into test02
select 101,'' from dual;
commit;
select * from test02 where name=null;--''
select * from test02 where name is null;
select * from test02 where name is NOT null;
select * from test02 where NOT(name is null);

--IN\NOT IN\EXISTS\NOT EXISTS\COUNT;
SELECT * FROM STUDENT;
SELECT * FROM COURSE;
SELECT * FROM STUDENT_COURSE;
--查有学课程
select * from student a
    where stu_id in(select stu_id from student_course);
--查没有学课程
select * from student a
    where stu_id NOT in(select stu_id from student_course);

--查有学课程
select * from student a
    where exists (select stu_id from student_course b where a.stu_id=b.stu_id);

--查没有学课程
select * from student a
    where not exists (select stu_id from student_course b where a.stu_id=b.stu_id);
   
--查有学课程
select * from student a
    where exists (select 1 from student_course b where a.stu_id=b.stu_id);
--查没有学课程
select * from student a
    where not exists (select 1 from student_course b where a.stu_id=b.stu_id);
   
   
--查有学课程
select * from student a
    where stu_id in (select stu_id from student_course b where b.id=1);
--查有学课程(oracle)
select * from student a
    where stu_id in (select stu_id from student_course b ,course c where b.id=c.id and c.course_name='oracle');
   
--查有学课程
select * from student a
    where exists (select 1 from student_course b where a.stu_id=b.stu_id and b.id=1);
--查有学课程(oracle)
select * from student a
    where exists (select 1 from student_course b ,course c where    a.stu_id=b.stu_id and b.id=c.id and c.course_name='javaee');
--查有学课程
select * from student a
    where (select count(1) from student_course b where a.stu_id=b.stu_id and b.id=1)=0;
--查有学课程(oracle)
select * from student a
    where (select count(1) from student_course b ,course c where    a.stu_id=b.stu_id and b.id=c.id and c.course_name='javaee')=0;
   
   
select * from hr.employees where abs(salary)>2000;

select * from hr.employees where salary>2000 or salary<-2000;
select * from hr.employees where salary-2000>5000;
select * from hr.employees where salary>5000+2000;

insert into test01(id,name)
values(2,'test');
insert into test01(id,name)
select 2,'test' from dual;

--oracle HINT
insert into test01(id,name)
select * from test02;
alter table test01 add (x varchar2(30));
select * from test01
DML-insert \delete\update

CREATE TABLE TEST03(ID NUMBER(3),NAME VARCHAR2(20));

select * from test03
insert into test03
values(1,'test1')
commit;
rollback;

insert into test03
values(1,'test1')
update test03 set name='张' ;

create table test04 as
select * from test03;

select * into test04 from test03;
truncate table test04;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值