[SQL] 1~9강(DB,USER,TABLE+UNION,JOIN)

JONGYOON JEON·2024년 2월 3일
0

SQL

목록 보기
1/13
post-thumbnail

수강내역

Chapter 01. Database 설치
Chapter 02. Database 이용
Chapter 03. Table
Chapter 04. INSERT
Chapter 05. ORDER BY
Chapter 06. Comparision Operators
Chapter 07. Logical Operations
Chapter 08. Union

SQL = DB data를 정의, 조작, 제어하기 위해 사용하는 언어

데이터베이스 생성

CREATE TABLE tablename()

유저 생성


CREATE USER username

사용자에게 권한 부여 및 제거


GRANT ALL ON dbname.* TO ‘username’@’%’
REVOKE ALL ON dbname.* FROM 'username'@'%'

데이터베이스 생성 > use > 테이블 생성


CREATE DATABASE databasename DEFAULT character set utf8mb4

테이블 생성


CREATE TABLE tablename(
Field, Type, NULL(NOT NULL), PRIMARY KEY, Default, AUTO_INCREMENT

테이블 변경

ALTER TABLE tablename 이후


테이블 이름 변경 
- RENAME 변경name
열 추가 
- ADD COLUMN columnname
열타입 변경
- MODIFY COLUMN columnname
열이름 변경
- CHANGE COLUMN columnname 변경name
열 삭제 
- DROP COLUMN 
내용 삽입 
- INSERT INTO tablename
  VALUES(1, 'JJY’, 20, ‘M’);
내용 변경 
- UPDATE tablename
  SET age=76 
  WHERE name=’JJY’
삭제 
- DELETE FROM tablename
  WHERE name=’JJY’

SELECT 문장 구성

[ORDER BY]
기본 ASC(Ascending) 오름차순 / DESC(Descending) 내림차순

비교연산자

A=B : A와 B가 같은
A>B : A가 B보다 큰(초과)
A<B : A가 B보다 작은(미만)
A≥B : A가 B보다 크거나 같은(이상)
A≤B : A가 B보다 작거나 같은(이하)
A<> : A가 B보다 같지 않은
A≠B : A가 B가 같지 않은

논리연산자

And : 조건을 모두 만족하는 경우 TRUE
OR : 하나의 조건이라도 만족하는 경우 TRUE
NOT : 조건을 만족하지 않는 경우 TRUE
BETWEEN : 조건값이 범위 사이에 있으면 TRUE
IN : 조건값이 목록에 있으면 TRUE
LIKE : 조건값이 패턴에 맞으면 TRUE , '%__' '%JJY%'

홀수 (columnname%2)=1
짝수 (columnname%2)=0

UNION (수직 결합)

여러 개의 SQL문을 합쳐서 하나의 SQL 문으로 만들어주는 방법
칼럼의 개수가 같아야 하며, 잘못된 쿼리를 작성할 경우 값이 섞일 수 있음
UNION

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

JOIN (수평 결합)

두 개 이상의 테이블을 결합하는 것

INNER JOIN

  • 테이블의 교집합 결합
    FULL OUTER JOIN
  • 테이블의 합집합 결합
  • mysql 미지원 -> LEFT JOIN + UNION + RIGHT JOIN 사용
    LEFT JOIN
  • 공통 부분 + left 테이블 전체
    RIGHT JOIN
  • 공통 부분 + right 테이블 전체
    SELF JOIN
  • 두개 이상의 테이블을 from 으로 불러내어 결합
    from celeb, snl_show where celeb.name = snl_host.name

조심!

SELF JOIN 주의

and not ( A and B ) 내가 자주하는 error
-> and not ( A or B)

profile
효율적인 걸 좋아해요

0개의 댓글