데이터베이스 -oracle 연구 노트 (7)

기본 쿼리 언어 SQL --DQL

1) 기본 쿼리 언어 선택 ...에서 ... 어디 ...;

  • 키워드에서 (1)
    쿼리에 지정된 어떤 테이블에서
  • (2) 별칭 문제 사용
    선택 문을 내부에서 열이 주어진 쿼리 선택
    가운데 추가 또는 키워드로 추가 할 수는 없습니다에 별칭을 쓰기 위해 밖으로 설정 한 후, 공백으로 구분 : 구문을.
    참고 : 대소 문자를 구분 문자 별칭을 원하는, 또는 별칭은 문자 나 공백이 포함 된 경우가 따옴표로 묶어야합니다.
列明 别名
列明 as 别名
select empno, ename, sal*12 from emp;
select empno as id, ename name, sal*12 as totalSal from emp;
select empno as "id", ename "name", sal*12 as "年薪" from emp;
  • (3)에 절을 선택하여
    열을 선택 조회 할
    그것을 선택 *의 뒷면에있는 테이블의 모든 열 인 경우
    는 특정 열 경우, 쓰기는 명확하게 뒤에 쉼표로 구분하는 열을 선택합니다.
select * from...
select id, name,age as 别名 from ....
  • (4) 제 경우
    절은 쿼리 제한의 조건 만드는 데 사용
    (선택, 갱신의 절을 사용할 수, 삭제)을
    강조 :
    where 절에서 ①, 조건이 경우 상대적으로 숫자, 당신은 하나를 사용할 수 있습니다
    인용 부호는하지 않는다
    ② where 절에, 해당 문자열, 날짜와 유형의 수 경우
    데이터를 비교, 그것은 작은 따옴표로 묶어야합니다.
查询在部门10下面的所有员工信息
select * from emp where deptno=10;
select * from emp where deptno='10';
查询员工表中职位是SALESMAN的职员
select * from emp where job='SALESMAN';
select * from emp where job=SALESMAN;   ORA-00904: "SALESMAN": 标识符无效

오라클 2) 쿼리 ---- where 절

  • (1)> <> = <=! = 등가 <>
查询员工表薪水低于2000的员工信息
select * from emp where sal<2000;
select * from emp where sal+nvl(comm,0)<2000;
查询员工表中不属于部门10的员工信息
select * from emp where deptno!=10;
select * from emp where deptno<>10;
查询员工表中在2002年1月1日以后入职的员工信息,比较日期类型数据
SELECT ENAME,SAL,HIREDATE FROM emp 
WHERE HIREDATE > TO_DATE('2002-1-1','YYYY-MM-DD');
  • (2) 나 또는 키워드
    원하는 결과는 다수의 조건을 만족해야 반품, 이러한 조건을 연결하는 데 사용되는 경우, SQL 동작은,
    은 SQL 동작을, 원하는 결과가 반환 된 경우 만족되는 복수의 조건 중 하나이다 에가, 또는 이러한 조건을 연결하는 데 사용.
查询底薪大于1000并且职位是'CLERK'的员工信息
select * from emp where sal>1000 and job='CLERK'; 正确
SELECT * FROM EMP WHERE SAL>1000 AND JOB='CLERK'; 正确
select * from emp where sal>1000 and job='clerk';   错误
select * from emp where sal>1000 and lower(job)='clerk'; 正确
select * from emp where sal>1000 and initcap(job)='Clerk';  正确
select job, upper(job), lower(job), initcap(job) from emp;
查询底薪大于1000或者职位是'CLERK'的员工信息
select * from emp where sal>1000 or lower(job)='clerk';
select * from emp where sal>1000 or job='CLERK';
  • 마찬가지로 (3) 사용 조건 - 퍼지 검색
    퍼지 매칭 쿼리 와일드 :
    0 다수의 문자 표현하기 %
    _는 : 단일 문자를 나타낸다
select * from emp where ename='SMITH';    精确值查询
select * from emp where ename like '_A%';   员工姓名中第二个字母是A的  模糊匹配查询
模糊匹配查询     查询员工姓名中包含A的所有信息
select * from emp where ename like '%A%';
模糊匹配查询    查询员工姓名中是S结尾的员工信息
select * from emp where ename like '%S';
  • (4)와, 사용하지 않을
    구문 (리스트 1,리스트 2, 목록 3가에서 , ...) 의 값리스트와 동일한 얻어
    NOT IN (리스트 1,리스트 2, 목록 3 ...) 하지 추출 된 데이터리스트 동일한
    파라미터리스트는, 값의리스트를 나타낸다 각 값의 쉼표로 구분
查询职位是MANAGER或者CLERK的员工信息
select * from emp where job='MANAGER' or job='CLERK';
select * from emp where job in('MANAGER', 'CLERK');
查询出不是部门10和不是部门20的员工信息
select * from emp where deptno !=10 and deptno !=20;   正确
SELECT * FROM emp WHERE DEPTNO NOT IN (10,20);    正确
select * from emp where deptno !=10  or deptno !=20;   错误
  • A1 및 A2 사이에 (5)를 사용하여
    데이터 (A2 A1 내지 사이의 범위에있어서, A1 및 A2)의 조건을 충족시키는 쿼리에 대한 값들의 범위
    는 디지털 형식 문자열 유형에 사용되는, 그리고 날짜 데이터 형식 범위.
查询底薪在1500~3000之间的员工信息
select * from emp where sal between 1500 and 3000;
select * from emp where sal>=1500 and sal<=3000;
  • (6)이 아닌 널가 null
    널 값 = 비교시 사용할 수없는 특별한 값이다.
    널 (null)과 동일하다 널
    null로 동일되지는 null가 아닌
查询提成为空的员工信息
select * from emp where comm is null;
查询提成不为空的员工信息
select * from emp where comm is not null;
  • 임의의 모든 (7)를 사용하여
    임의의 모든 비교 연산자 필요 << >> = = 사용과 함께, 단독으로 사용될 수있다
>any(list1,list2,list3,....):大于()里的最小值
<any(list1,list2,list3....):小于()里的最大值
>all(list1,list2,list3...):大于()里的最大值
<all(list1,list2,list3...):小于()里的最小值
select * from emp where sal>any(3500,4000,4500);  工资大于3500
select * from emp where sal<any(3500,4000,4500);  工资小于4500
select * from emp where sal>all(3500,4000,4500);    工资大于4500
select * from emp where sal<all(3500,4000,4500);    工资小于3500
any   大于最小的,小于最大的
all     大于最大的,小于最小的
  • 별개의 중복 제거 (8)를 사용하여
    데이터 테이블에서 같은 데이터를 저장할 수있는 데이터의 행은 기본 쿼리는 경우가 어디 모든 라인의 데이터입니다.
    중복 데이터가 의미가없는 경우, 당신은 별개의 중복 제거를 사용할 수 있습니다.
    참고 : 선택 절을 사용하여 열 이름 앞에 별개.
select deptno from emp;    查询员工表中的所有部门编号
查看员工表中有哪些部门,过滤重复数据
select distinct deptno from emp;
查询员工表中部门和职位
select deptno, job from emp;
查看每个部门的职位--去掉重复
select distinct deptno, job from emp;
게시 53 개 원래 기사 · 원의 찬양 (36) · 전망 2415

추천

출처blog.csdn.net/qq_44458489/article/details/104671850