SQL(Structured Query Language)
관계형 데이터베이스에 접근하고 조작하기 위한 표준 언어
데이터베이스에 대한 쿼리 실행, 데이터 검색, 레코드 삽입/업데이트/삭제, 새로운 데이터베이스 생성, 새 테이블 생성, 뷰 생성, 권한 설정, 저장 프로시저 생성 등의 역할을 할 수 있다.
SELECT
: 데이터베이스에서 데이터 추출UPDATE
: 데이터 업데이트DELETE
: 데이터 삭제INSERT INTO
: 새로운 데이터 삽입CREATE DATABASE
: 새로운 데이터베이스 생성ALTER DATABASE
: 데이터베이스 수정CREATE TABLE
: 테이블 생성ALTER TABLE
: 테이블 수정DROP TABLE
: 테이블을 삭제합니다CREATE INDEX
: 인덱스(검색 키)를 생성DROP INDEX
: 인덱스 삭제1) SELECT 구문
// SELECT CustomerName,City FROM Customers; 처럼 특정 필드 추출 가능
SELECT * FROM Customers;
2) INSERT INTO 구문
/*
1. 삽입할 열 이름과 값 모두 지정하는 방법
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
*/
/*
2. 테이블의 모든 열에 대한 값 추가하는 방법
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
*/
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');
3) Table 생성 쿼리
CREATE TABLE member (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4) 데이터베이스 확인을 위한 SHOW 구문
SHOW DATABASES;
5) findById()
메소드 실행 시 나가는 쿼리
SELECT * FROM member WHERE id = 1;
// WHERE은 특정 조건을 만족하는 레코드만 추출할 때 사용
6) 레코드 수정을 위한 UPDATE 구문
UPDATE member SET name = 'jieun', email = 'jieun@velog.com' WHERE id = 4;
7) 삭제를 위한 DELETE FROM 구문
DELETE FROM member WHERE member_id = 1;
SQL 명령의 종류
SQL은 다루는 객체와 형태에 따라 DDL(Data Definition Language), DML(Data Manipulation Language), DCL(Data Control Language), DQL(Data Query Language), TCL(Transaction Control Language)로 나뉘어진다.
: 데이터베이스와 테이블을 정의하고 생성, 수정, 삭제하는 역할(데이터 X)
ddl-auto
를 활용ddl-auto
옵션create | create-drop | update | none(default) | validate |
---|---|---|---|---|
기존 테이블 삭제 후 다시 테이블 생성(DROP+CREATE) | 기존 테이블 삭제 | 테이블 구조 변경 | Entity와 테이블이 정상 매핑되었는지 확인 | 이외의 모든 경우 |
: 데이터베이스에서 데이터를 가져와 작업을 수행하기 위한 역할
: 데이터베이스 내에 존재하는 데이터를 조작하는 역할
: 데이터베이스 시스템의 권한, 사용 권한 및 기타 제어를 처리하는 역할
e.g. GRANT(사용자 계정에 새로운 권한 할당해 액세스 제어), REVOKE(사용자 계정에 부여된 권한 제거)
: 일련의 작업을 단일 실행 단위로 그룹화하는 트랜잭션의 실행을 제어하는데 사용
(트랜잭션에 대해서는 13번 글에서 자세히 정리할 예정)
e.g. BEGIN TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT
참고자료
33기 DO SOPT 서버 파트 3차 세미나 자료(배포 불가)
SQL Introduction
SQL Commands | DDL, DQL, DML, DCL and TCL Commands