[SQL] SQL 학습일지 01

이소티·2023년 7월 30일

SQL

목록 보기
1/7

1. SQL 이란 ?

: 데이터 베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어



2. SQL 구성


  • DDL (Data Definition Language) 데이터 정의 언어
  • CREATE, ALTER, DROP

  • DML (Data Manipulation Language) 데이터 조작 언어
  • INSERT, UPDATE, DELETE, SELECT

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

  • GRANT, REVOKE, COMMIT, ROLLBACK






3. DATABASE 관리



  1. 새로고침
FLUSH PRIVILEGES;

  1. DATABASE 생성
CREATE DATABASE db_name;

  1. DATABASE 삭제
DROP DATABASE db_name;

  1. USER 생성 (현재 PC에서만 접속 가능)
CREATE USER 'user_name'@'localhost' identifed by 'password';

  1. USER 생성 (외부에서 접속 가능)
CREATE USER 'user_name'@'%' identifed by 'password';

  1. USER 삭제
DROP USER 'user_name'@'localhost';
DROP USER 'user_name'@'%';

  1. USER 권한 확인
SHOW GRANTS FOR 'user_name'@'localhost';

  1. USER 권한 부여 (모든 권한)
GRANT ALL ON db_name.* to 'user_name'@'localhost';

  1. USER 권한 삭제
REVOKE ALL ON db_name.* from 'username'@'localhost';






4. TABLE 관리


  1. TABLE 정보
DESC table_name;

  1. TABLE 생성
CREATE TABLE table_name
(
  column_name datatype,
  column_name datatype
)

  1. TABLE 삭제
DROP TABLE table_name;

  1. TABLE name 변경
ALTER TABLE table_name
RENAME new_tablename

  1. TABLE column 추가
ALTER TABLE table_name
ADD COLUMN column_name datatype;

  1. TABLE column name 변경
ALTER TABLE table_name
CHANGE COLUMN column_name new_columnname new_datatype;

  1. TABLE column type 변경
ALTER TABLE table_name
MODIFY COLUMN column_name datatype;

  1. TABLE column 삭제
ALTER TABLE table_name
DROP COLUMN column_name;





5. DATA 관리


  1. DATA INSERT
INSERT INTO table_name VALUES (value1, ...);
INSERT INTO table_name (column1, ...) VALUES (value1, ...);

  1. DATA UPDATE
UPDATE table_name
SET column1=value1, ....
WHERE condition;

  1. DATA DELETE
DELETE FROM table_anme
WHERE condition;




6. UNION


  • UNION : 중복값 제거
  • UNION ALL : 중복값 포함

SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
SELECT column, ... FROM table WHERE condition1
UNION
SELECT column, ... FROM table WHERE condition2;




7. JOIN


  • INNER JOIN : 교집합
    (두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인방식)

  • LEFT JOIN
    (두 개의 테이블에서 공통영역을 포함해 왼쪽 테이블의 다른 데이터를 포함하는 조인방식)
  • RIGHT JOIN
    (두 개의 테이블에서 공통영역을 포함해 오른쪽 테이블의 다른 데이터를 포함하는 조인방식)

  • FULL OUTER JOIN : 합집합
    (두 개의 테이블에서 공통영역을 포함하여 양쪽 테이블의 다른 영역을 모두 포함하는 조인방식)
    (MySQL에서는 지원하지 않음)
    (LEFT JOIN과 RIGT JOIN 두 개를 UNION하면 됨)



SELECT column, ... FROM table_A
INNER JOIN table_B
ON table_A.column = table_B.column
WHERE condition;

  • SELF JOIN
SELECT column, ... FROM table_A,table_B
WHERE condition;

profile
데이터 관련 학습 일지

0개의 댓글