DB 구조적 데이터 저장
RDB_관계를 테이블 구조적 정의
RDBMS_SW ex) MySQL
SQL_RDBMS와 사용자가 소통하는 프로그램, 구조화된 질의어
DDL 생성/정의
Table dealing
CREATE : 생성 - user, schema, database, table, index, view, procedure, function, trigger
ALTER : 수정 - column명/table명 변경, 제약조건 추가
ALTER TABLE table_name RENAME TO 변경할 이름
ADD COLUMN
RENAME COLUMN
ADD CONSTRAINT
ADD : 추가 - column, 제약조건, index
RENAME : 이름 변경 - column, table
DROP : 삭제 - user, database, table
DML 데이터 관리
Record(Data) dealing
INSERT INTO : 추가 - 데이터
INSERT INTO (col_name) VALUES ( );
SELECT : 조회 - Filtering DISTINCT - 중복값 없이 조회 , WHERE - 조건하에 조회
# 코딩 순서
SELECT select_list 집계함수
FROM table_name
WHERE 조건
GROUP BY 그룹화 데이터, 집계 함수
HAVING 조건 (그룹한 것에 대한 조건)
ORDER BY 정렬 ASC/DESC
LIMIT 조회 개수;
# 실행 순서
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY - LIMIT
UPDATE : 수정
UPDATE table_name
SET col_name = " value "
WHERE 조건;
DELETE : 삭제 - record
DELEETE FROM table_name
WHERE 조건; => WHERE 조건 없으면 전체 데이터 삭제 주의!!!! 테이블은 남음.
데이터 추가 시, 초기화 x, 기존 데이터 +1
TRUNCATE : 테이블 삭제 후, 재생성
= DROP table + CREATE table 의 효과
DCL 조작어 (권한관리, 적용)
GRANT : 권한 부여
REVOKE : 권한 삭제
CREATE USER _______@ host정보 IDENTIFIED BY "password"
DROP USER
GRANT 권한 ON db.table TO 사용자;
# 권한 : ALL PREVILEGES / SELECT / DELETE / 명령문
REVOKE 권한 ON db.table FROM 사용자;
TCL
COMMIT : DB에 적용/반영
ROLLBACK : 이전의 상태로 되돌리기
SAVEPOINT : 저장점 지정
START TRANSACTION;
작업
ROLLBACK; => START 전 마지막 저장 시점으로 돌아감.
SAVEPOINT savepoint_name; 저장점 지정
ROLLBACK TO savepoint_name; 지정한 저장 지점으로
MySQL 내장함수
문자형
CONCAT : 인자로 들어오는 문자열 하나로 연결
TRIM : 파이썬의 strip / 특정문자 삭제
REPLACE : 문자열 수정
LOCATE : 찾으려는 문자 첫 위치 반환 / 없으면 0 반환
숫자형
ABS 절대값
MOD 나머지
POW 제곱수
CEIL 올림
FLOOR 버림
ROUND 반올림
날짜
CURDATE 현재 날짜
CURTIME 현재 시간
NOW 현 날짜 + 시간
DATE_FORMAT 날짜 형식 지정
NULL
IFNULL
IFNULL(e1, e2)
=> e1 NULL 이면 e2
COALESCE
COALESCE(e1, e2, e3......)
=> e1 NULL 이면 e2, e2도 NULL 이면 e3.....
NULLIF
NULLIF (e1, e2)
=> e1 = e2이면 NULL 반환, e1 != e2 이면 1 반환
SELECT 문 실행 순서
SELET
FROM table-name
WHERE 조건식
GROUP BY 그룹하는 column
HAVING 조건
ORDER BY 정렬기준
LIMIT 조회 행수
SQL 재밌기는 한데 익숙해지려면 많이 해보는 수 밖에...
'SQL' 카테고리의 다른 글
MySQL] Mac user SQL 입문 _ 설치 및 연결 오류 해결 (0) | 2025.01.16 |
---|