SQL 기본 쿼리문 ( 1 )

2024. 7. 11. 10:06·빅데이터 분석가 양성과정/MySQL
목차
  1. SQL의 분류
  2. SELECT문
  3. USE 구문
  4. SELECT *
  5. SELECT 열 이름
  6. 주석
  7. DB, TABLE, 열의 이름이 확실하지 않을 때 조회하는 방법
  8. 현재 서버에 어떤 DB가 있는지
  9. 현재 서버에 어떤 TABLE이 있는지 보기
  10. employees 테이블의 열이 무엇이 있는지 확인
  11. 특정한 조건의 데이터만 조회
  12. GROUP BY 및 HAVING 그리고 집계함수
  13. GROUP BY 절
  14. HAVING 절
  15. ROLLUP
  16. SQL분류
  17. DML(Data Manipulation Language, 데이터 조작 언어)
  18. DDL(Data Definition Language, 데이터 정의 언어)
  19. DCL(Data Control Language, 데이터 제어 언어)
  20.  

SQL의 분류

SELECT문

  • 원하는 데이터를 가져와 주는 기본적인 <SELECT * FROM 테이블 명>
    • 가장 많이 사용되는 구문
    • 데이터베이스 내 테이블에서 원하는 정보 추출하는 명령

USE 구문

  • SELECT문 학습 위해 사용할 데이터베이스 지정
  • Workbench 에서 직접 선택해서 사용가능
    
          
    USE database명;

SELECT *

  • 선택된 DB가 employees라면 다음 두 쿼리는 동일

      
SELECT * FROM employees.titles;
SELECT * FROM titles;

 

SELECT 열 이름

  • 테이블에서 필요로 하는 열만 가져오기 가능

      
SELECT first_name FROM employees;
  • 여러 개의 열을 가져오고 싶을때는 콤마로 구분

      
SELECT first_name, last_name, gender FROM emplyees;
select first_name as 이름, last_name as 성 , from employees;
  • 열 이름의 순서는 출력하고 싶은 순서대로 배열 가능

주석

  • MySQL은 ‘--’ 이후부터 주석으로 처리된다.
  • -- 뒤에 바로 붙여서 쓰면 안되고 공백이 하나 이상 있어야 한다.
  • 여러 줄 주석은 ‘/* */’로 묶는다.

DB, TABLE, 열의 이름이 확실하지 않을 때 조회하는 방법

현재 서버에 어떤 DB가 있는지


      
SHOW DATABASES;

 

현재 서버에 어떤 TABLE이 있는지 보기

  • 데이터베이스에 있는 테이블 정보 조회
    
          
    SHOW TABLE STATUS;
  • 테이블 이름만 간단히 보기
    
          
    SHOW TABLES;

employees 테이블의 열이 무엇이 있는지 확인


      
DESCRIBE employees or DESC employees;

 

 

특정한 조건의 데이터만 조회

  • <SELECT … FROM … WHERE>
  • 기본적인 WHERE절
    • 조회하는 결과에 특정한 조건을 줘서 원하는 데이터만 보고 싶을 때 사용

      
select * from usertbl where name = '조관우';
select * from usertbl where name LIKE '김%' ;
select name, height from usertbl where name LIKE '김%' ;
select name, height from usertbl where name LIKE '_종신' ;

      
select * from usertbl where height = 182;
select * from usertbl where height >= 182 AND birthYeaar >=1970;

      
select * from usertbl where height >= 180 and height <= 183;
select * from usertbl where height between 180 and 183;
select name, height from usertbl where height > 177 ;
select name, height from usertbl
where height > ( SELECT height FROM usertbl WHERE name = '임재범' );

      
select * from usertbl where addr = '서울' or addr = '경남' ;
select * from usertbl where addr IN ( '서울' , '경남') ;
select name, height from usertbl
where height > ANY( SELECT height FROM usertbl WHERE addr = '경남' );
select name, height from usertbl
where height > ALL( SELECT height FROM usertbl WHERE addr = '경남' );
SELECT DISTINCT addr FROM usertbl; -- 중복 제외

      
SELECT name, mdate FROM usertbl;
SELECT name, mdate FROM usertbl ORDER BY mDate; -- 오름차순
SELECT name, mdate FROM usertbl ORDER BY mDate DESC; -- 내림차순
SELECT * FROM employees ORDER BY hire_date ASC LIMIT 5; --5개만
SELECT * FROM employees ORDER BY hire_date ASC LIMIT 0, 5;
SELECT * FROM employees ORDER BY hire_date ASC LIMIT 10, 5; --10번째부터 5개만

      
CREATE TABLE buytbl2 (SELECT * FROM buytbl); -- 테이블 복사하기
CREATE TABLE buytbl3 (SELECT userID, prodName FROM buytbl); -- 특정 열만 복사

 

 

GROUP BY 및 HAVING 그리고 집계함수

GROUP BY 절

  • 그룹으로 묶어주는 역할
  • 집계함수와 함께 사용
    • 효율적인 데이터 그룹화
    • 자주 사용되는 집계함수
      • AVG(), MIN(), MAX(), COUNT(), SUM() 등
  • 읽기 좋게 하기 위해 별칭(Alias) AS 사용

HAVING 절

  • WHERE와 비슷한 개념으로 조건 제한하는 것이지만, 집계 함수에 대해서 조건을 제한하는 것
    • WHERE 절 뒤에는 집계함수를 쓸 수 없다.
    • ⇒ HAVING 절 써주면 뒤에 집계함수 사용가능
  • HAVING 절은 꼭 GROUP BY 절 다음에 나와야함 (순서 바뀌면 안됨)

      
SELECT userID AS'사용자 아이디', SUM(amount) AS'총 구매'
FROM buytbl GROUP BY userID;
-- 각 userID의 amount를 다 더해서 알려준다.
SELECT userID AS'사용자 아이디', SUM(amount * price) AS'총 구매액'
FROM buytbl GROUP BY userID;
SELECT userID, AVG(amount) AS '평균구매개수'
FROM buytbl GROUP BY userID;
SELECT name, height
FROM usertbl
WHERE height = (SELECT MAX(height)FROM usertbl)
OR height = (SELECT MIN(height)FROM usertbl);
-- 키가 제일 큰사람과 제일 작은사람 둘을 불러온다.

      
SELECT COUNT(*) FROM usertbl; --갯수
SELECT COUNT(mobile1) FROM usertbl;

      
SELECT userID AS'사용자' , SUM(price*amount) AS'총 구매액'
FROM buytbl GROUP BY userID
HAVING SUM(price * amount) > 1000;
SELECT userID AS'사용자' , SUM(price*amount) AS'총 구매액'
FROM buytbl GROUP BY userID
HAVING SUM(price * amount) > 1000
ORDER BY SUM(price*amount) DESC;

 

ROLLUP

  • 총 합과 중간 합 구할 수 있다. num에 null이 들어갈 때 groupName의 중간 합이 나타나고 마지막 열에 총 합이 나타난다.
  • GROUP BY 절과 함께 WITH ROLLUP문 사용

      
SELECT num, groupName, SUM(price * amount)
FROM buytbl
GROUP BY groupName, num
WITH ROLLUP;

 

SQL분류

DML(Data Manipulation Language, 데이터 조작 언어)

  • 데이터를 조작(선택, 삽입, 수정, 삭제)하는 데 사용되는 언어
  • DML 구문이 사용되는 대상은 테이블의 행
  • DML 사용하기 위해서는 테이블이 정의되어 있어야 함
  • SQL문 중 SELECT, INSERT, UPDATE, DELETE 가 이 구문에 해당
  • 트랜잭션(Transaction)이 발생하는 SQL도 DML에 속함
    • 테이블의 데이터를 변경(입력/수정/삭제)할 때 실제 테이블에 완전히 적용하지 않고, 임시로 적용 시키는 것
    • 취소 가능

DDL(Data Definition Language, 데이터 정의 언어)

  • 데이터베이스, 테이블, 뷰, 인덱스 등의 데이터베이스 개체를 생성/삭제/변경하는 역할
  • CREATE, DROP, ALTER 자주사용
  • DDL은 트랜잭션 발생시키지 않음
  • 되돌림(ROLLBACK)이나 완전적용(COMMIT) 사용불가
  • 실행즉시 MySQL에 적용

DCL(Data Control Language, 데이터 제어 언어)

  • 사용자에게 어떤 권한을 부여하거나 빼앗을 때 주로 사용하는 구문
  • GRANT/REVOKE/DENY 구문

 

 

'빅데이터 분석가 양성과정 > MySQL' 카테고리의 다른 글

MySQL의 데이터 형식  (2) 2024.07.11
SQL 기본 쿼리문 ( 2 )  (0) 2024.07.11
유틸리티 사용법  (0) 2024.07.11
MySQL DB Modeling  (1) 2024.07.11
MySQL DB 운영  (0) 2024.07.11
  1. SQL의 분류
  2. SELECT문
  3. USE 구문
  4. SELECT *
  5. SELECT 열 이름
  6. 주석
  7. DB, TABLE, 열의 이름이 확실하지 않을 때 조회하는 방법
  8. 현재 서버에 어떤 DB가 있는지
  9. 현재 서버에 어떤 TABLE이 있는지 보기
  10. employees 테이블의 열이 무엇이 있는지 확인
  11. 특정한 조건의 데이터만 조회
  12. GROUP BY 및 HAVING 그리고 집계함수
  13. GROUP BY 절
  14. HAVING 절
  15. ROLLUP
  16. SQL분류
  17. DML(Data Manipulation Language, 데이터 조작 언어)
  18. DDL(Data Definition Language, 데이터 정의 언어)
  19. DCL(Data Control Language, 데이터 제어 언어)
  20.  
'빅데이터 분석가 양성과정/MySQL' 카테고리의 다른 글
  • MySQL의 데이터 형식
  • SQL 기본 쿼리문 ( 2 )
  • 유틸리티 사용법
  • MySQL DB Modeling
황규진
황규진
글쓰기 관리
황규진
Data Analyst Hwang
홈
|
로그인

  • 노션 포트폴리오
  • 전체 글 (507)
    • 코드 및 쿼리문 (98)
      • 코드 정리 (10)
      • SQL 공부 (80)
      • 강의 - 메타코드M (8)
    • 개인 활동 (29)
      • 현직자 특강 & 인터뷰 (4)
      • 직무 공부 (22)
      • 독서 (2)
      • 근황 공유 (1)
    • 자격증 (7)
      • 빅데이터분석기사 (1)
      • 정보처리기사 (1)
      • 경영정보시각화 (1)
      • SQL개발자(SQLD) (1)
      • 데이터 분석 준전문가(ADsP) (1)
      • 통계적품질관리(SPC) (1)
      • AICE Associate (1)
    • 취업사관학교 9기 (199)
      • 모닝스쿨 (54)
      • 스스로 모닝스쿨 (125)
      • 직무 스터디 (20)
      • 반성과 다짐 (0)
    • 빅데이터 분석가 양성과정 (174)
      • Python (88)
      • Python - 머신러닝 (26)
      • Python - 딥러닝 (32)
      • PyQt (4)
      • JavaScript (10)
      • MySQL (13)
      • Node.js (1)
hELLO· Designed By정상우.v4.6.1
황규진
SQL 기본 쿼리문 ( 1 )
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.