SQL이란?
Structured Query Language의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어입니다. 1970년대 IBM에서 최초 개발되었으며 데이터를 저장하는 모든 회사에서 NoSQL과 함께 많이 쓰고 있습니다.
SQL 문법의 종류
SQL 문법은 크게 DDL, DML, DCL로 나누어집니다.
DDL(Data Definition Language, 데이터 정의 언어) - 관계형 데이터베이스의 구조를 정의하기 위해 사용하는 언어(ex - CREATE, ALTER, DROP...)
DML(Data Manipulation Language, 데이터 조작 언어) - 테이브렝서 데이터를 입력, 수정, 삭제, 조회하는 언어(SELECT, INSERT, UPDATE...)
DCL(Data Control Language, 데이터 제어 언어) - 데이터베이스 사용자에게 권한을 부여하거나 회수하는 언어(GRANT, REVOKE...)
TCL(Transaction Control Language) - 트랜잭션을 제어하는 명령어(COMMIT, ROLLBACK, SAVEPOINT...)
SQL의 언어적 특성
Python의 print("hello world"), C언어의 printf("%s", "hello world");처럼 각 프로그래밍 언어가 가진 고유한 특성은 구별 지어 알아야 합니다. SQL은 다음과 같은 특성을 갖습니다.
1. 대소문자를 가리지 않는다
-> CREATE와 create는 똑같이 CREATE로 인식한다.(단, 서버 환경이나 DMBS 종류에 따라 대소문자를 구분하기도 합니다.)
SELECT Contry;
select contry;
2. SQL 명령은 반드시 세미콜론(;)으로 끝나야 한다.
SELECT Country, COUNT(*) FROM [Customers]
WHERE ContactName LIKE 'A%'
GROUP BY Country;
3. 고유의 값은 따옴표(" ")로 감싸준다.
SELECT Country, COUNT(*) FROM [Customers]
WHERE ContactName = "James";
4. 한 줄 주석은 문장 앞에 --를 붙이고, 여러 줄 주석은 /* */로 감싸준다.
-- SELECT * FROM EMP;
/*
SELECT * FROM EMP
WHERE EMPID=(SLECT * FROM EMP WHERE NAME="James")
*/
DDL(Data Definition Language)
테이블 생성하기(Create)
Create Table EMP
(
empno number(10) primary key,
ename varchar2(20),
sal number(6)
);
Create Table EMP - EMP라는 테이블명을 생성한다.
empno number(10) primary key - empno라는 column을 기본키로 지정한다.
empno, ename, sal - 생성되는 EMP 테이블의 column명
number(10), varchar2(20), number(6) - 데이터 타입을 지정하고 ()안에는 가변 길이 문자를 의미함
테이블 변경하기(ALTER)
테이블명 변경하기(ALTER TABLE ~ RENAME TO)
ALTER TABLE EMP
RENAME TO NEW_EMP;
EMP테이블의 이름을 NEW_EMP로 바꿀 때 위와 같이 작성한다.
Column 추가(ALTER TABLE ~ ADD)
ALTER TABLE EMP
ADD(age number(2) default 1);
EMP테이블에 age column을 추가하는 쿼리이다.
column 변경(ALTER TABLE ~ MODIFY)
ALTER TABLE EMP
MODIFY(ename varchar2(40) not null);
EMP테이블에 ename column의 길이를 20에서 40으로 변경하고 not null이라는 조건을 부여하는 쿼리이다.
column 삭제(ALTER TABLE ~ DROP COLUMN)
ALTER TABLE EMP
DROP COLUMN age;
EMP 테이블에 age column을 삭제한다.
테이블 삭제하기(DROP)
DROP TABLE EMP;
DROP TABLE EMP CASCADE CONSTRAINT;
테이블 삭제는 DROP TABLE문을 사용해서 삭제할 수 잇고, 테이블의 구조와 데이터를 모두 삭제한다.
CASCADE CONSTRAINT라는 옵션을 사용하면 해당 테이블의 데이터를 외래키로 참조한 스레이브 테이블과 관련된 제약사항도 함께 삭제할 수 있다.
'데이터 분석 & 시각화 > SQL' 카테고리의 다른 글
SQL 실전쿼리 작성2 (0) | 2021.03.03 |
---|---|
SQL 실전쿼리 작성 (0) | 2021.03.03 |
최근댓글