SQL(Structured Query Language)
SQL이란?
- Structured Query Language
- 사용자와 관계형 데이터베이스(RDBMS)를 연결시켜주는 표준 검색 언어
- 데이터베이스에 데이터를 저장하고, 검색하고, 변경하는 데에 사용하는 데이터 처리 언어
- 관계형 데이터베이스가 알아듣는 유일한 언어
SQL 문장의 특징
- SQL은 데이터의 연산 처리가 절차적으로 진행되지 않고, 데이터의 집합 단위로 처리됨
- 비 절차적 언어(Non-Procedural)
- 즉, 절차적 언어처럼 처리과정을 일일이 기술할 필요가 없는 언어
- 구조화된 언어이기 때문에 일정한 규칙과 패턴에 맞게 조건을 나열하면, SQL문은 우리가 원하는 결과를 반환함
- 표준 SQL 문법(ANSI 표준)이 존재하기 때문에 DBMS 종류(Oracle, MSSQL, MySQL 등)에 얽매이지 않고 사용할 수 있음
- 공통적으로 사용할 수 있는 ANSI 표준을 제외하고
- 회사마다 자체적으로 추가한 SQL문법만 따로 정리하면 됨
- 영어 문장과 비슷한 구문을 갖추고 있어 쉽게 배우고 사용할 수 있는 언어
- 인터프리터 언어
- 한 줄씩 읽어서 처리함
프로그래밍 언어의 패러다임
Declarative Language | Imperative Language |
문제를 설명하는 고급언어 | 프로그래밍 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명함 |
무엇을 할 것인가에 중점 | 어떻게 할 것인지에 중점 |
기능이 이미 갖춰져 있음 | 기능을 구현해야 함 |
메뉴얼 | 도구 |
다수의 명령어 - 익혀야 할 기능이 많음 - 메뉴얼이 필요 |
소수의 명령어(범용적) |
기본적인 SQL 문법
종류 | 예시 | 설명 |
SELECT | SELECT 컬럼 FROM 테이블명 | 데이터 조회 |
INSERT | INSERT INTO 테이블명(컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...) |
데이터 삽입 |
UPDATE | UPDATE 테이블 SET 컬럼 = 값 | 데이터 업데이트 |
DELETE | DELETE FROM 테이블명 | 데이터 삭제 |
CREATE TABLE | CREATE TABLE 테이블명 | 새 테이블 생성 |
ALTER TABLE | ALTER TABLE 테이블명 | 테이블 수정 |
DROP TABLE | DROP TABLE 테이블명 | 테이블 삭제 |
GRANT | GRANT SELECT ON 테이블명 TO 사용자명 | 사용자에게 권한 부여 |
REVOKE | REVOKE INSERT ON 테이블명 FROM 사용자명 | 사용자 권한 회수 |
SQL 문장의 종류
1. 정의어 (DDL, Data Definition Language)
- 데이터베이스 구조를 정의하거나 수정하는 데 사용
- 테이블, 인덱스, 뷰 등을 생성하거나 수정하는데 활용
예시 | 설명 |
CREATE TABLE student | 새로운 student 테이블 생성 |
ALTER TABLE student ADD COLUMN address varchar(255) | student 테이블에 address 컬럼 추가 |
DROP INDEX index | index를 삭제 |
2. 조작어 (DML, Data Manipulation Language)
- 데이터베이스 내의 데이터를 검색하거나 조작하는데 사용
- 데이터의 삽입, 갱신, 삭제, 조회 등을 처리
예시 | 설명 |
SELECT name, age FROM student | student 테이블의 name, age 컬럼을 조회 |
INSERT INTO student (name, age) VALUES ("정공자씨", 20) |
student 테이블에 name, age 컬럼에 값을 삽입 |
UPDATE student SET age = 30 | student 테이블에 age를 30으로 데이터 변경 |
DELETE FROM student | student 테이블의 데이터 삭제 |
3. 제어어 (DCL, Data Control Language)
- 데이터베이스 사용자의 권한과 보안을 관리하는 데 사용
- 사용자에게 권한을 부여하거나 회수
예시 | 설명 |
GRANT SELECT ON student TO user | 사용자에게 student 테이블 SELECT(조회) 권한 부여 |
REVOKE INSERT ON student FROM user | 사용자로부터 student 테이블 INSERT(삽입) 권한 회수 |
출처
'SQL' 카테고리의 다른 글
[ORACLE] with절 : 서브쿼리를 미리 정의하여, 임시 테이블로 사용 (0) | 2024.05.14 |
---|---|
[ORACLE] extract() : 날짜 추출하는 함수 (0) | 2024.05.14 |