SQL 데이터베이스 : 데이터 쿼리

데이터 쿼리

문 형식

그림 삽입 설명 여기

  • SELECT子句: 속성 열이 표시되는,
  • FROM子句: 쿼리 개체 (기본 테이블 또는 뷰)를 지정합니다
  • WHERE子문장 : 쿼리 기준을 지정합니다
  • GROUP BY절 : 지정된 순서의 패킷의 값으로 질의 결과 (예를 들어, 남성 그룹, 하나의 여자), 행 그룹과 속성 값 터플 동일. 일반적으로 사용되는 각 그룹 집계 기능 (예를 들어, 남성 및 여성의 그룹 수가 설정된 횟수)
    • HAVING구문 :는 지정된 기준을 충족하는 출력 전에 설정하기
  • ORDER BY절 : 테이블 열 값에 지정된 오름차순 또는 조회 결과의 내림차순

기능 분해 :

그림 삽입 설명 여기

1.SELECT 관련 사용

모든 학생들이 번호와 이름을 배울 쿼리 [예 1].

SELECT Sno,Sname   //选择属性  SELECT * 代表所有列
From Student		//指明表的来源
SELECT 보충 사용 :
SELECT Sno,2020-Sage   //可以得到出生年份,可以是表达式	
SELECT LOWER(Sdept)    //将得到的Sdept值全部化为小写
使用列的别名改变查询结果的列标题
SELECT Sname NAME,2020-Sage BIRTHDAY  //定义别名
중복 행을 제거
  • SELECT 기본 중복 행이 DISTINCT 키워드를 사용할 필요가 제거, 삭제 중복 행을하지 않습니다
SELECT DISTINCT Sno

2.WHERE 관련 사용

질문 술부
비교 =,>,> =,! =,!>
범위를 결정 BETWEEN AND, NOT BETWEEN AND
세트를 결정 IN, NOT IN
문자 일치 LIKE, NOT LIKE
IS NULL, 그렇지 NULL
논리 연산 AND, OR, NOT

비교 :
컴퓨터 과학 및 예 2 쿼리의 부 미만 20 세 학생의 목록

SECLECT Sname
FROM Student
WHERE Sdept='CS' AND Sage<20;      //注意,这个分号不能少

: 범위를 확인하려면
예 3. 쿼리 나이가 20-23년 세 사이의 학생의 이름이 아닌, 나이 라인은하지 않습니다

SELECT Sname,Sdpt,Sage
FROM Student
WHERE Sage NOT BETWEEN 20 AND 23;  

세트 결정 :
컴퓨터 과학의 예 4. 쿼리 부 (CS)을, 수학학과 (MA) 학생의 이름과 성별

SELECT Sname, Ssex
FROM Student
WHERE Sdept IN('CS','MA'); 

문자 일치 :

  • 구문 : 조건 : [NOT] LIKE '<매치 문자열>'[ESCAPE '<이스케이프 문자>']
  • <문자열> 전체 문자열이 와일드 카드 %를 포함 할 수 있고 될 수있다 _
    • %는 길이의 문자열의 끝에 문자열의 길이를 대표하는 %의 B, 대표 처음에 A, B를 가지고
    • _ 단일 문자 스탠드

예 5. 쿼리 학생들 1830130281의 수에 대한 자세한 내용을 보려면

SELECT *
FROM Student
WHERE Sno LIKE '1830130281'  //<==> WHERE Sno = '1830130281'
  • ESCAPE 이스케이프 문자 사용
    • 조치 : 와일드 카드 문자를 사용하여 이스케이프는 보통의 문자를 이스케이프합니다.
      예 6. 쿼리 DB_Design 코스 번호와 과정 학점
SELECT Cno , Ccredit
From Course
WHERE Cname LIKE 'DB\_Design'ESCAPE'\';

3.ORDER BY 절

  • 작업 : 하나 개 이상의 속성은 열 배열 될 수있다
  • ASC : ASC; 내림차순 : DESC; 기본값은 오름차순입니다

예 7. 결과가 하강 점수 배열되어, ORDER BY 절을 사용할 수 있습니다 반영

SELECT .....
FROM ....
WHERE ....
ORDER BY Grade DESC;  

상행 예 8. 결과 위치 기반 번호, 연령 내림차순

SELECT ...
FROM ...
WHERE ...
ORDER BY Sdept ASC , Sage DESC;    //ASC省略也可以

4. 집계 함수 (종종 BY 그룹과 함께 또는 SELECT 사용 HAVING)

  • 그것은에만 사용할 수 있습니다 SELECTHAVING
  • 통계 Ganso 번호 :COUNT(*)
  • 통계 가치의 수 :COUNT( [ DISTINCT|ALL ] <列名>)
  • 의 합을 계산 : SUM(同第二行)
  • 평균 값을 계산 : AVG(同第二行)
  • 최대 및 최소를 원하는 상대 : MAX(同第二行), MIN(同第二行)
  • 注意: DISTINCTA는 가지고 있어야하지, 그것은 디엠 퍼시스를 의미한다 (기본값은 ALL입니다)

예 9. 쿼리 학생들의 수는 과정에 등록.

SELECT COUNT(DISTINCT Sno)
FROM SC;

5.GROUP BY 절 그룹

  • 지정된 값이거나 패킷의 더 많은 열은 일련의 값은 동일하다.
    사용 주 :

错误示例:

SELECT Cnpo     //
FROM SC			//
GROUP BY Cno   //

식 뒤에 SELECT 및 GROUP BY 표현의 뒷면에 일치해야합니다. 선택 (SELECT)는 COUNT와 같은 집계 함수, 다음에 Y BY 그룹은 SELECT Y, 당신은 대응 (Cnpo을)이없는 경우 경우

실시 예 10 개개의 시크 등록 프로그램 넘버와 대응하는 번호. (아이디어 : 그룹으로 코스 동일한 수)

SELECT Cno, COUNT(Sno)
FROM SC
GROUP BY Cno;   //意思是课程号相等的所有列为一组。

아래 표와 비슷한 결과 :

누구 COUNT (SNO)
1 (22)
(34)
(45)
4 (12)

세 개 이상의 학생 수에 대한 예 11. 쿼리 선택 과목

SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*)>3;  //HAVING函数是在对每一个组进行操作,某一组列数大于3的输出

쿼리 포인트의 예 12 평균 점수는 90, 학생 수의 평균 점수입니다

SELECT Sno , AVG(Grade)
FROM SC
GROUP BY Sno   
HAVING AVG(Grade)>=90;  //AVG不能放在WHERE中!!!  

예제 및 통계의 13 부는 각 부서에서 남성과 여성의 학생 수를 구별하고, 유칼립투스의 내림차순으로 정렬하기

SELECT Sdept, Ssex , COUNT(Sno)
FROM Student
GROUP BY Sdept , Ssex
ORDER BY COUNT(Sno) DESC;
게시 22 개 원래 기사 · 원의 칭찬 0 · 조회수 154

추천

출처blog.csdn.net/weixin_42649617/article/details/104834312