zoukankan      html  css  js  c++  java
  • SQLScript DML 创建 & 查询 & 序列(条件查询 日起查询 关联查询 子查询 分组查询 查询内容拼接 模糊查询)

    select * from employees;

    select * from employees where salary = 10000;

    select *
    from employees
    where first_name like 'D%'
    or first_name like 'E%';

    select * from employees where first_name like '%a%';

    select * from employees where salary between 10000 and 20000;

    select first_name || ' ' || last_name 姓名
    from employees
    where salary between 10000 and 20000;

    select first_name || ' ' || last_name
    from employees
    where salary between 10000 and 20000;

    select * from employees here salary between 10000 and 20000;

    select *
    from employees
    where first_name = 'Pat'
    union
    select *
    from employees
    where first_name = 'Lex'
    union
    select *
    from employees
    where first_name = 'Lisa';

    select emp.*
    from employees emp,
    departments dep,
    locations loc
    where emp.department_id = dep.department_id
    and dep.location_id = loc.location_id
    and loc.city = 'Seattle';

    select first_name || last_name from employees where salary > 12000;

    select first_name || ' ' || last_name from employees where salary > 12000;

    select *
    from employees
    where salary < 20000
    and salary > 10000;

    select * from employees where salary between 10000 and 20000;

    select first_name,
    last_name,
    emp.salary,
    dep.department_name
    from employees emp,
    departments dep
    where emp.department_id = dep.department_id
    and emp.salary > 10000;

    select emp.*
    from employees emp,
    departments dep,
    locations loc,
    countries cou
    where emp.department_id = dep.department_id
    and dep.location_id = loc.location_id
    and loc.country_id = cou.country_id
    and cou.country_name = 'United States of America';

    select * from countries;
    select * from employees;
    select * from locations;
    select * from departments;

    drop user lhq;
    create user lhq identified by lhq123456;
    grant dba to lhq;
    grant connect, resource to lhq;
    alter user sys identified by sysdba;
    grant sysdba to lhq;

    select emp.first_name userName,
    man.first_name Manager
    from hr.employees emp,
    hr.employees man
    where emp.employee_id = man.manager_id
    order by Manager asc;

    select emp.first_name userName,
    dep.department_name Department
    from hr.departments dep
    left join hr.employees emp
    on emp.department_id = dep.department_id;

    select * from hr.countries;
    select * from hr.employees;
    select * from hr.locations;
    select * from hr.departments;
    select * from hr.jobs;

    --1、查询所有员工的员工 姓名、部门名称、工作国家、工作地区、工作名称
    select emp.first_name || ' ' || emp.last_name 姓名,
    dep.department_name 部门名称,
    loc.city 工作地区,
    cou.country_name 工作国家,
    job.job_title 工作名称
    from hr.employees emp
    full join hr.departments dep
    on emp.department_id = dep.department_id
    full join hr.locations loc
    on dep.location_id = loc.location_id
    full join hr.countries cou
    on loc.country_id = cou.country_id
    full join hr.jobs job
    on emp.job_id = job.job_id
    where emp.first_name is not null
    order by 姓名;

    select emp.first_name || ' ' || emp.last_name 姓名,
    dep.department_name 部门名称,
    loc.city 工作地区,
    cou.country_name 工作国家,
    job.job_title 工作名称
    from hr.employees emp
    left join hr.departments dep
    on emp.department_id = dep.department_id
    left join hr.locations loc
    on dep.location_id = loc.location_id
    left join hr.countries cou
    on loc.country_id = cou.country_id
    left join hr.jobs job
    on emp.job_id = job.job_id
    order by 姓名;
    --2、查询所有薪资大于一万的员工以及其领导和部门
    select emp.first_name || ' ' || emp.last_name 员工,
    man.first_name || ' ' || man.last_name 领导,
    dep.department_name 部门,
    emp.salary 薪水
    from hr.employees emp
    left join hr.employees man
    on emp.manager_id = man.employee_id
    left join hr.departments dep
    on emp.department_id = dep.department_id
    where emp.salary >= 10000
    order by 领导 asc;

    select hr.emp.*,
    man.first_name 领导,
    dep.department_name
    from hr.employees emp
    left join hr.employees man
    on emp.manager_id = man.employee_id
    left join hr.departments dep
    on emp.department_id = dep.department_id
    where emp.salary >= 10000;
    --3、查询所有有员工的部门
    select emp.first_name || ' ' || emp.last_name 员工姓名,
    dep.department_name 部门
    from hr.employees emp
    right join hr.departments dep
    on dep.department_id = emp.department_id
    where emp.department_id is not null
    order by 部门;

    select dep.department_id,
    dep.department_name,
    count(*)
    from hr.employees emp,
    hr.departments dep
    where emp.department_id = dep.department_id
    group by dep.department_id,
    dep.department_name;

    select dep.department_id,
    dep.department_name,
    count(emp.employee_id)
    from hr.departments dep
    left join hr.employees emp
    on dep.department_id = emp.department_id
    group by dep.department_id,
    dep.department_name
    having count(emp.employee_id) > 0;
    --4、查询所有没有员工的部门
    select emp.first_name || ' ' || emp.last_name 员工姓名,
    dep.department_name 部门
    from hr.employees emp
    right join hr.departments dep
    on dep.department_id = emp.department_id
    where emp.first_name is null
    order by 部门 asc;

    select dep.department_id,
    dep.department_name,
    count(emp.employee_id)
    from hr.departments dep
    left join hr.employees emp
    on dep.department_id = emp.department_id
    group by dep.department_id,
    dep.department_name
    having count(emp.employee_id) = 0;
    --5、查询所有在98~2000年入职的员工
    select emp.first_name || ' ' || emp.last_name 姓名,
    emp.hire_date 入职日期
    from hr.employees emp
    where emp.hire_date < to_date('2000-1-1', 'yyyy-mm-dd')
    and emp.hire_date > to_date('1998-1-1', 'yyyy-mm-dd')
    order by 入职日期 asc;

    select *
    from hr.employees
    where hire_date between '1-1月-1998' and '1-1月-2000';
    --6、查询所有部门以及部门领导
    select emp.first_name || ' ' || emp.last_name 领导姓名,
    dep.department_name 部门名称
    from hr.employees emp
    right join hr.departments dep
    on dep.manager_id = emp.employee_id
    order by 领导姓名 desc;

    select *
    from hr.departments dep
    left join hr.employees emp
    on dep.manager_id = emp.employee_id;
    --7、查询所有平均工资大于8000的部门
    select dep.department_name 部门,
    avg(emp.salary) 部门平均工资
    from hr.employees emp
    right join hr.departments dep
    on emp.department_id = dep.department_id
    group by dep.department_name
    having avg(emp.salary) >= 8000;
    --8、查询每个部门最高工资和最低工资是多少
    select dep.department_name 部门,
    max(emp.salary) 部门最高工资
    from hr.employees emp
    right join hr.departments dep
    on emp.department_id = dep.department_id
    group by dep.department_name
    having avg(emp.salary) > 0;
    --9、查询每个国家有多少个员工
    select cou.country_name 国家,
    count(*) 员工数
    from hr.employees emp
    left join hr.departments dep
    on emp.department_id = dep.department_id
    left join hr.locations loc
    on dep.location_id = loc.location_id
    right join hr.countries cou
    on loc.country_id = cou.country_id
    group by cou.country_name
    order by 国家;
    --10、查询每个部门总工资是多少
    select dep.department_name 部门,
    sum(emp.salary) 部门平均工资
    from hr.employees emp
    right join hr.departments dep
    on emp.department_id = dep.department_id
    group by dep.department_name
    having avg(emp.salary) > 0;
    --11、查询工资大于12000的员工姓名和工资
    select emp.first_name || ' ' || emp.last_name 员工姓名,
    emp.salary 工资
    from hr.employees emp
    where salary > 12000;
    --12、查询员工号为176的员工的姓名和部门号
    select emp.first_name || ' ' || emp.last_name 员工姓名,
    emp.department_id
    from hr.employees emp
    where emp.employee_id = 176;
    --13、选择工资不在5000到12000的员工的姓名和工资
    select emp.first_name || ' ' || emp.last_name 员工姓名,
    emp.salary 工资
    from hr.employees emp
    where salary < 5000
    or salary > 12000;
    --14、选择雇用时间在1908-02-01到1908-05-01之间的员工姓名,job_id和雇用时间
    select emp.first_name || ' ' || emp.last_name 员工姓名,
    emp.job_id 员工号,
    emp.hire_date 雇用时间
    from hr.employees emp
    where emp.hire_date between '31-1月-1998' and '2-5月-1998';
    --15、选择在20、50号部门工作的员工姓名和部门号
    select emp.first_name || ' ' || emp.last_name 员工姓名,
    emp.department_id
    from hr.employees emp
    where emp.department_id = 20
    or emp.department_id = 50;
    --16、选择在1908年雇用的员工的姓名和雇用时间
    select emp.first_name || ' ' || emp.last_name 员工姓名,
    emp.hire_date 雇用时间
    from hr.employees emp
    where emp.hire_date between '31-12月-1997' and '1-1月-1999';
    --17、选择公司中没有管理者的员工姓名及job_id
    select emp.first_name || ' ' || emp.last_name 员工姓名,
    emp.job_id 员工号
    from hr.employees emp
    where emp.manager_id is null;
    --18、查询员工姓名的第三个字母是a的员工姓名
    select emp.first_name || ' ' || emp.last_name 员工姓名
    from hr.employees emp
    where emp.first_name like '__a%';
    --19、查询每一个工种的人数
    select emp.job_id 工作类别,
    count(*) 员工数
    from hr.employees emp
    group by emp.job_id
    having count(*) > 0;
    --20、查询每一个领导手下的员工数量并排序
    select emp.manager_id 领导,
    count(*) 员工数
    from hr.employees emp
    group by emp.manager_id
    having count(*) > 0
    order by 领导;

    select * from hr.jobs;
    select * from hr.countries;
    select * from hr.employees;
    select * from hr.locations;
    select * from hr.departments;

    create table customers(customers_id number(10) primary key,
    customers_account varchar2(20) not null unique,
    customers_password varchar2(18) not null,
    customers_name varchar2(30),
    customers_gender varchar2(6),
    customers_birth date not null,
    customers_phone number(11) not null,
    customers_mail varchar2(30),
    customers_address varchar2(18) not null);

    create table orderdetail(

    orderdetail_id number(10) primary key,
    goods_serialnum number(10) not null unique,
    goods_num number(10) not null,
    goods_price number(10, 2) not null,
    customers_id number(10),
    foreign key(customers_id) references
    customers(customers_id));

    create SEQUENCE test_sequence INCREMENT by 1  start
    with 10000    NOMAXVALUE NOCYCLE  CACHE 10;

    insert into customers
    values
    (test_sequence.nextval, 'Dream68686868', '8888-6666', 'ycr', 'female',
    to_date('21-08-2003', 'DD-MM-YYYY'), 13886868987, '123456@qq.mail',
    'ChinaJiangSu');

    select * from orderdetail;
    select * from customers;
    select test_sequence.Currval from dual;

    drop table orderdetail;
    drop table customers;
    drop SEQUENCE test_sequence;

    alter table orderdetail rename column orderdetail to orderdetail_id;

    ------------------------------------------------------------------------------------------------------

    create table emp(emp_id number(10),
    first_name varchar2(20),
    last_name varchar2(20),
    salary number(10));

    create table interest(interestId number(10) primary key,
    interest varchar2(20) unique);

    create table users(userId number(10) primary key,
    USERNAME varchar2(20),
    PASSWORD varchar2(20),
    GENDER varchar2(20),
    CITY varchar2(20),
    TEXT varchar2(20));

    create table users_interest(interestId number(10),
    userId number(10),
    primary key(interestId, userId), --联合主键,当联合主键不同时和其让数据相同时,那么就不算主键重复
    foreign key(interestId) references
    interest(interestId),
    foreign key(userId) references users(userId));

    create SEQUENCE user_users INCREMENT by 1  start
    with 10000    NOMAXVALUE NOCYCLE  CACHE 10;

    select * from interest;
    select * from users;
    select * from users_interest;
    select * from emp;

    drop table emp;
    drop table users_interest;
    drop table users;
    drop table interest;
    drop SEQUENCE user_users;

    insert into emp value
    (select emp.employee_id,
    emp.first_name,
    emp.last_name,
    emp.salary
    from hr.employees emp);

    insert into users
    values
    (user_users.nextval, 'lu', '123', 'male', 'nanjing', 'aaaa');
    insert into users
    values
    (user_users.nextval, 'zhao', '123', 'female', 'guizhou', 'bbbb');
    insert into users
    values
    (user_users.nextval, 'qian', '123', 'female', 'beijing', 'cccc');
    insert into users
    values
    (user_users.nextval, 'sun', '123', 'male', 'changzhou', 'dddd');
    insert into users
    values
    (user_users.nextval, 'li', '123', 'female', 'suzhou', 'eeee');

    insert into interest values (1, '哭');
    insert into interest values (2, '玩');
    insert into interest values (3, '闹');
    insert into interest values (4, '蹦');
    insert into interest values (5, '跳');
    insert into interest values (6, '跑');
    insert into interest values (7, '睡');
    insert into interest values (8, '吃');
    commit;
    rollback;


    drop user lu;
    create user lu identified by lu123456;
    grant sysdba to lu;
    grant dba to lu;

  • 相关阅读:
    RHCE考试要求
    c语言:md5函数
    c语言:计算输入字符个数
    IP数据报之Internet Header Length
    常用的tar和rpm命令参数
    Oracle数据库实例的创建、删除、修改【转载】
    Internal类或Internal成员讲解
    序列化与反序列化 BinaryFormatter.Serialize 方法 (Stream, Object)
    oracle网络配置listener.ora、sqlnet.ora、tnsnames.ora
    Oracle启动模式及其常见问题探讨
  • 原文地址:https://www.cnblogs.com/Dream-Lasting/p/4184381.html
Copyright © 2011-2022 走看看