>  기사  >  데이터 베이스  >  SQL 쿼리문이란 무엇입니까?

SQL 쿼리문이란 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2020-12-10 14:48:0668787검색

SQL 쿼리 문: 1. 테이블 구조 보기 [SQL>DESC emp] 2. 모든 열 쿼리 [SQL>SELECT * FROM emp] 3. 지정된 열 쿼리 5. 사용 6. 논리 연산 기호를 사용합니다.

SQL 쿼리문이란 무엇입니까?

권장(무료): sql tutorial

sql 쿼리문:

1. 간단한 쿼리문

1. 테이블 구조 보기

SQL>DESC emp;

2. )

%는 하나 이상의 문자를 나타내고, _는 하나의 문자를 나타내고, [charlist]는 문자 열의 단일 문자를 나타내고, [^charlist] 또는 [!charlist]는 문자 열에 없는 단일 문자를 나타냅니다.

SQL>SELECT * FROM emp;

7. where 조건

SQL>SELECT empmo, ename, mgr FROM emp;
SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项

8. 필드 내용이 비어 있거나 비어 있지 않은 문을 쿼리하세요

SQL>SELECT * FROM emp WHERE job='CLERK';

9. 쿼리 결과 변환 필드 값으로 정렬

SQL>SELECT ename, sal*13+nvl(comm,0)  FROM emp; 
nvl(comm,1)的意思是,如果comm中有值,则nvl(comm,1)=comm; comm中无值,则nvl(comm,1)=0。
SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal为别名,可按别名排序)
SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';

11. 사용 사례... 다음 경우... 쿼리 결과 처리 종료

SQL>SELECT * FROM emp WHERE ename like 'S__T%';

테이블에서 필드 a를 선택하고 이름을 XXX로 지정합니다. a의 내용은 original_a를 사용하는 경우 내용은 "새로 명명된 Aa"로 표시됩니다. 원본 목록

a

b

c

original_a

...

...

original_b... 쿼리 결과새 이름 Aa
...
XXX
새 이름 Bb
12. 날짜 데이터 형식 지정

SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
2. 복잡한 쿼리 1. grouping(max, min, avg, sum, count)2. group by(쿼리 결과의 통계를 그룹화하는 데 사용) 및 getting 절(그룹 표시 결과를 제한하는 데 사용)데이터 그룹화 요약 :
SQL>SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';

a. 그룹화 기능은 select list, had, order by 절에만 나타날 수 있습니다(where에는 나타날 수 없음)

b. 그 순서는 그룹화, 소유, 정렬입니다.

c. 선택 열에 열, 표현식 및 그룹화 기능이 있는 경우 해당 열 및 표현식이 group by 절에 나타나야 합니다. 그렇지 않으면 오류가 발생합니다. 즉, SELECT 절의 열 이름은 그룹화 열 또는 열 함수여야 합니다

3. 다중 테이블 쿼리

SQL>SELECT * FROM emp ORDER BY deptno, sal DESC; (按部门升序,并按薪酬降序)

4. table)
  • SQL>SELECT CASE a WHEN "original_a" THEN "新命名Aa" WHEN "original_b" THEN "新命名Bb" END AS XXX;

    5. 하위 쿼리(다른 SQL 문에 포함된 select 문, 중첩 쿼리라고도 함)
  • 5.1 단일 행 하위 쿼리

    SQL>SELECT DATE_FORMAT(start_time,"%Y-%m-%d") as "时间";
  • 쿼리 테이블에서 smith와 같은 부서에 있는 사람들의 이름을 쿼리합니다. 반환된 결과는 한 행뿐이므로 "="를 사용하여 하위 쿼리 문을 연결합니다
  • 5.2 다중 행 하위 쿼리

    SQL>SELECT MAX(sal),MIN(age),AVG(sal),SUM(sal) from emp;
    SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));
    SQL>SELEC COUNT(*) FROM emp;
  • 에서 10번째 부서와 동일한 직책을 가진 직원의 이름, 직업, 급여, 부서 번호를 쿼리합니다. 테이블. 반환된 결과에 여러 행이 있으므로 "IN"을 사용하여 하위 쿼리 문을 연결합니다.

5.3 ALL

SQL>SELECT deptno,MAX(sal),AVG(sal) FROM emp GROUP BY deptno;
SQL>SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000;
를 사용하여 부서 번호가 30인 전체 직원의 급여보다 급여가 높은 직원의 이름, 급여, 부서 번호를 쿼리합니다. 위의 두 문장은 기능적으로는 동일하지만, 실행 효율성 측면에서는 기능이 훨씬 더 높을 것입니다.

5.4 ANY

SQL>SELECT e.name,e.sal,d.dname FROM emp e, dept d WHERE e.deptno=d.deptno order by d.deptno;
SQL>SELECT e.ename,e.sal,s.grade FROM emp e,salgrade s WHER e.sal BETWEEN s.losal AND s.hisal;
Select a.*, b.x, c.y from a
  left outer join (Select * from tablex where condition1)b
  on a.id=b.id
  left outer join (Select * from tabley where condition2)c
  on a.id=c.id
where condition3;
를 사용하여 부서 번호가 30인 직원보다 급여가 높은 직원의 이름, 급여, 부서 번호를 쿼리합니다(연봉이 특정 직원보다 높은 경우). 위의 두 문장은 기능적으로는 동일하지만, 실행 효율성 측면에서는 기능이 훨씬 더 높을 것입니다.

5.5 다중 열 하위 쿼리

SQL>SELECT er.ename, ee.ename mgr_name from emp er, emp ee where er.mgr=ee.empno;
5.6 from 절에 하위 쿼리 사용

SQL>SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM emp where ename=&#39;SMITH&#39;);

5.7 페이징 쿼리

데이터베이스의 각 데이터 행에는 rownum이라는 해당 행 번호가 있습니다.

SQL>SELECT ename,job,sal,deptno from emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno=10);

쿼리 열을 지정하세요. 쿼리 결과 정렬 등의 경우 가장 안쪽 하위 쿼리만 수정하면 됩니다.

5.8 쿼리 결과로 새 테이블 만들기

SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ALL (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MAX(sal) FROM emp WHERE deptno=30);

5.9 병합 쿼리(합집합 합집합, 교차 교차점, 합집합 + 교차점, 빼기 차이 집합)

SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ANY (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MIN(sal) FROM emp WHERE deptno=30);

병합 쿼리의 실행 효율성은 and보다 훨씬 높으며, 또는 기타 논리 쿼리.

5.10 하위 쿼리를 사용하여 데이터 삽입

SQL>SELECT * FROM emp WHERE (job, deptno)=(SELECT job, deptno FROM emp WHERE ename=&#39;SMITH&#39;);

먼저 빈 테이블을 만듭니다.

 SQL>SELECT emp.deptno,emp.ename,emp.sal,t_avgsal.avgsal FROM emp,(SELECT emp.deptno,avg(emp.sal) avgsal FROM emp GROUP BY emp.deptno) t_avgsal where emp.deptno=t_avgsal.deptno AND emp.sal>t_avgsal.avgsal ORDER BY emp.deptno;

그런 다음 emp 테이블에 있는 부서 번호 10의 데이터를 새 테이블 myEmp에 삽입하여 데이터 일괄 쿼리를 구현합니다.

5.11은 쿼리를 사용하여 테이블의 데이터를 업데이트합니다

SQL>SELECT a2.* FROM (SELECT a1.*, ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal) a1 WHERE ROWNUM<=10) a2 WHERE rn>=6;

관련 무료 학습 권장 사항:

php 프로그래밍

(동영상)

위 내용은 SQL 쿼리문이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.