릴레이션 == 테이블
릴레이션 스키마 : 컬럼 이름들의 집합
릴레이션 인스턴스 : 컬럼 외 값 부분 전체
컬럼 == 속성 == 필드
도메인 : 컬럼이 가지는 값들의 집합
로우 == 레코드 == 튜플 : 컬럼 값들의 집합, 테이블 내에서 유일
DDL
CREATE
CREATE DATABASE 데이터베이스명;
USE 데이터베이스명;
CREATE TABLE 테이블명(
);
DESC 테이블명;
* 테이블 정보
CREATE INDEX 인텍스명 ON 테이블명(컬럼);
DROP
DROP DATABASE IF EXISTS 데이터베이스명;
* 쿼리 실행시 데이터베이스가 존재하지 않으면 생기는 오류
ALTER
테이블 이름 변경 : ALTER TABLE 기존이름 RENAME 바꿀이름;
컬럼 추가 : ALTER TABLE 테이블명 ADD COLUMN 컬럼명 타입;
컬럼 삭제 : ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
인덱스 삭제 : ALTER TABLE 테이블명 DROP INDEX 인덱스명
테이블 컬럼 변경 : ALTER TABLE 테이블명 CHANGE 컬럼명 타입;
* 다 써줘야 함
테이블 컬럼 변경 : ALTER TABLE 테이블명 MODIFY 컬럼명 타입;
*
DML
데이터 추가 :
INSERT INTO 테이블명 VALUES(데이터, 데이터, 데이터);
* 있는 컬럼 빠짐없이 데이터 써줘야 한다
INSERT INTO 테이블명 (컬럼명, 컬럼명) VALUES(데이터, 데이터);
* 적어준 컬럼명 자리에 맞춰 데이터를 써준다.
데이터 수정 :
UPDATE 테이블명 SET 컬럼 = 데이터;
데이터 삭제 :
DELETE FROM 테이블명
LIKE
WHERE 컬럼명 LIKE '서%' --서로 시작하는 데이터 필터링
WHERE 컬럼명 LIKE '%도' -- 도로 끝나는 데이터 필터링
WHERE 컬럼명 LIKE '서_' -- 서로 시작하고 다음에 한 글자만 오는 데이터 필터링
DISTINCT
SELECT COUNT(DISTINCT 컬럼)
FROM 테이블명;
* COUNT 안에 DISTINCT 사용
SQL 쿼리 작성 순서와 실제 실행 순서
쿼리 작성 순서 | 실행 순서 |
SELECT |
5 |
FROM |
1 |
WHERE |
2 |
GROUP BY |
3 |
HAVING |
4 |
ORDER BY |
6 |
LIMIT |
7 |
ORDER BY 내림차순 DESC , 오름차순 ASC
집합연산자
UNION | 합집합. 중복된 행은 한 행만 출력 |
UNION ALL | 합집합. 중복된 행도 전부 펼쳐서 출력 |
INTERSECT | 교집합. 중복된 행은 한 행만 출력 |
EXCEPT | 차집합. |
'기술스택 > SQL' 카테고리의 다른 글
MySQL VIEW / CTE WITH / CASE WHEN THEN (0) | 2023.10.11 |
---|---|
MySQL 연산자 우선순위, IN vs EXISTS (0) | 2023.10.11 |
MySQL 함수 (0) | 2023.10.11 |
MySQL INDEX 정리 (0) | 2023.10.08 |
SQL, JDBC, DBMS, DB란? (0) | 2023.09.04 |