[목차]
01. 데이터 정의어(DDL)
💡
데이터베이스를 구축하거나 수정할 목적으로 사용하는 언어입니다.
명령어를 입력하는 순간 작업이 즉시 반영(Auto Commit) 되므로 사용시 주의
명령어
➡️ CREATE : 데이터베이스 객체(스키마, 테이블, 뷰 등) 생성
-- 데이터베이스 생성 CREATE DATEBASE ‘DB명’; -- 테이블 생성 CREATE TABLE ‘테이블명’ ( ’속성명’ 타입, … )
➡️ ALTER : 테이블 구조 변경
- 종류 : ADD, ALTER, RENAME. MODIFY, DROP
-- 컬럼 추가 ALTER TABLE ‘테이블명’ ADD COLUMN ‘컬럼명’ ‘속성값’; -- 컬럼 삭제 ALTER TABLE ‘테이블명’ DROP COLUMN ‘컬럼명’; -- 컬럼 이름 변경 ALTER TABLE ‘테이블명’ CHANGE COLUMN ‘컬럼명’ ‘새로운 컬럼명’ 속성값; -- 테이블 이름 변경 ALTER TABLE ‘테이블명’ RENAME ‘새로운 테이블명’;
➡️ DROP : 데이터베이스 객체 삭제
- 종류 : CASCADE, RESTRICT
-- 데이터베이스 삭제 DROP DATABASE ‘데이터베이스 명’; -- 테이블 삭제 DROP TABLE ‘테이블명’;
➡️ SHOW : 데이터베이스 또는 테이블 목록을 조회
-- 데이터베이스 목록 조회 SHOW DATABASES; -- 테이블 목록 조회 SHOW TABLES;
➡️ USE : 데이터베이스 중 특정 데이터베이스를 사용하고 싶을 때
USE (데이터베이스 명);
02. 데이터 조작어(DML)
💡
데이터베이스 사용자가 저장된 데이터를 관리하는데 사용하는 언어입니다.
명령어
➡️ SELECT : 테이블에서 데이터 검색
- 종류 : LIKE, ORDER BY
-- SELECT 선택한 컬럼 출력 -- FROM 검색할 테이블 지정 SELECT (컬럼명) -- 컬럼명에 *을 작성하면 모든 컬럼 출력 FROM (테이블명); -- DISTINCT 컬럼의 중복 제거 SELECT DISTINCT (중복 제거할 컬럼명) FROM (테이블명); -- GROUP BY ~ HAVING 데이터를 그룹화 -- 내장 함수를 이용한 GROUP BY 사용 -- 특정 컬럼 COL에 대해 데이터의 개수 출력 SELECT COL, COUNT(*) FROM myData GROUP BY COL; -- 특정 컬럼 COL1에 대해 COL2의 합계 출력 SELECT COL1, SUM(COL2) FROM myData GROUP BY COL1; -- 특정 컬럼 COL1에 대해 COL2의 평균 출력 SELECT COL1, AVG(COL2) FROM myData GROUP BY COL1; -- 특정 컬럼 COL1에 대해 COL2의 최대값 출력 SELECT COL1, MAX(COL2) FROM myData GROUP BY COL1; -- 특정 컬럼 COL1에 대해 COL2의 최소값 출력 SELECT COL1, MIN(COL2) FROM myData GROUP BY COL1; --WHERE 조건 설정 SELECT (컬럼명) FROM (테이블명) WHERE (조건); -- 데이터 그룹에 조건 적용 -- 특정 컬럼 COL에 대해 데이터 개수를 기준으로 그룹화를 하되, 개수가 1보다 큰 경우만 출력 SELECT COL, COUNT(*) FROM myData GROUP BY COL HAVING COUNT(COL) > 1; -- LIKE는 주로 WHERE과 함께 사용되며, 아래 예시와 같이 사용되는 퍼센트 기호(%)는 '와일드 카드'라고 부른다. SELECT (컬럼명) FROM (테이블명) WHERE (컬럼명) LIKE (찾으려는 레코드의 일부 또는 전체); -- 와일드 카드(%) 이용 예시 WHERE (컬럼명) LIKE '%(문자열)'; -- 작성한 문자열로 끝나는 레코드 검색 WHERE (컬럼명) LIKE '(문자열)%'; -- 작성한 문자열로 시작하는 레코드 검색 WHERE (컬럼명) LIKE '%(문자열)%'; -- 작성한 문자열을 포함하는 레코드 검색 -- ORDER BY는 데이터를 검색할 때, 정렬된 결과로 출력하는 명령어이다. 아래와 같이 사용된다. SELECT (컬럼명) FROM (테이블명) ORDER BY (컬럼명) ASC/DESC; -- 오름차순(작은 값부터)/내림차순(큰 값부터). 생략하면 오름차순이 디폴트
➡️ INSERT : 테이블에 새로운 데이터 삽입
INSERT INTO (테이블명)(COL1, COL2, COL3) -- 테이블의 각 컬럼명. 컬럼 개수와 값 개수는 같아야 한다. VALUES(VAL1, VAL2, VAL3); -- 앞에 적은 컬럼 순서에 맞게 추가할 값을 작성. -- 앞에 컬럼을 명시하지 않으면 VALUES에서 작성한 값 순서대로 각 컬럼에 삽입
➡️ UPDATE : 테이블에 존재하는 데이터 내용 수정
UPDATE (테이블명) SET (컬럼명) = '대체/수정된 값' WHERE (조건);
➡️ DELETE : 테이블에 존재하는 데이터 삭제
DELETE FROM (테이블명) WHERE (조건); -- WHERE 조건이 없는 경우는 해당 테이블의 모든 데이터 삭제
03. 데이터 제어어(DCL)
💡
데이터 관리 목적으로 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는데 사용하는 언어입니다.
데이터베이스 관리자(DBA)가 사용한다.
명령어
➡️ GRANT : 사용자에게 사용 권한 부여
- 종류 : ALL, SELECT, INSERT, DELETE, UPDATE 등
-- 권한부여 GRANT [권한] ON [DB].[TABLE] TO [유저_ID]@[호스트]; -- 사용자 등록 및 권한부여 GRANT [권한] ON [DB].[TABLE] TO [유저_ID]@[호스트] IDENTIFIED BY '비밀번호'; -- 권한 확인 SHOW GRANTS FOR [유저_ID]@[호스트]; -- 테이블의 모든 권한 부여 GRANT ALL PRIVILEGES ON (table 명) TO 사용자명;
➡️ REVOKE : 사용자의 사용 권한 취소
-- 권한취소 REVOKE [권한] ON [DB].[TABLE] FROM [유저_ID]@[호스트]
04. 트랜잭션 제어어(TCL)
💡
트랙잭션(논리적 작업 단위)을 제어하는데 사용하는 언어입니다.
DML에 의해 조작된 결과를 트랙잭션이 별도 제어한다.
DCL의 일부로 분류하기도 한다.
명령어
➡️ COMMIT : 트랙잭션 처리가 정상적으로 완료된 후 결과를 데이터베이스에 반영
➡️ ROLLBACK : 트랙잭션 처리 과정에서 변경 되었으나 아직 COMMIT 되지 않은 모든 내용을 취소
➡️ SAVEPOINT : 트랙잭션 내에 ROLLBACK할 위치를 지정
SAVEPOINT T1; // 포인트 지점 설정 INSERT INTO play (ID, NAME, NO) VALUES ( 1, '가', 1000); SAVEPOINT T2; // 포인트 지점 설정 INSERT INTO play (ID, NAME, NO) VALUES ( 2, '나', 2000); ROLLBACK TO T2; // 2번 포인트 지점의 작업을 취소 COMMIT; // 작업 완료(저장) SELECT * from PLAY; // 결과 T1 지점 데이터만 출력
tag : #언어 #DDL #DML #DCL #TCL
Uploaded by N2T