w3schools.com 의 ‘SQL’과정을 참고하였습니다.
SQL이란?
SQL(Structured Query Language)는 관계형 데이터베이스 관리시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. - 위키 백과 -
RDBMS 용어
row : tuple, recode 하나의 항목을 대표하는 데이터
SQL syntax
- sql명령어는 대소문자 관계 없이 사용 할 수 있다.
SQL 명령어들
- SELECT - extracts data from a database
- DELETE - deletes data from a database
- INSERT INTO - inserts new data into a database
- CREATE DATABASE - creates a new database
- ALTER DATABASE - modifies a database
- CREATE TABLE - creates a new table
- ALTER TABLE - modifies a table
- DROP TABLE - deletes a table
- CREATE INDEX- creates an index (search key) 조금 더 빠르게 검색 할 수 있음
- DROP INDEX - deletes an index
SQL SELECT
- 데이터베이스에 저장된 데이터를 가져오는데 사용함
SELECT 필드
FROM 테이블 이름;
-- CustomerName,City 정보만 Customers테이블에서 result-set
SELECT CustomerName,City FROM Customers;
SQL SELECT DISTINCT
- 데이터베이스에서 저장된 데이터를 가져올 때 중복된 값을 제외하는 명령어
SELECT DISTINCT 필드
FROM 테이블 이름;
SQL WHERE Clause
- WHERE 절은 지정된 조건을 충족하는 레코드만 추출하는 데 사용
SELECT 필드
FROM 테이블 이름
WHERE 조건;
-- 'Mexico'인 나라의 정보만 추출
-- 문자인 경우 작은따음표
SELECT * FROM Customers
WHERE Country = 'Mexico';
WHERE절에 사용하는 연산자
- BETWEEN
- LIKE : 패턴 찾을 때
- IN :
SQL AND, OR, NOT 연산자
- WHERE절에 사용하는 연산자
AND : 둘다 참인 경우
OR : 둘중에 하나만 참인 경우
NOT : 둘다 거짓인 경우
SELECT * FROM Customers
WHERE Country = 'Germany' AND City = 'Berlin';
-- 결합해서 사용 할 수 있음 , ()에 따라 우선순위가 달라짐
SELECT * FROM Customers
WHERE Country = 'Germany' AND (City = 'Berlin' OR City = 'Munchen')
SQL ORDER BY 키워드
- 특정 컬럼을 기준으로 정렬을 할 때 사용
DESC : 내림차순
ASC : 오름차순
SELECT * FROM Customers
ORDER BY Country DESC;
-- Country, City 칼럼들을 abc순서대로 정렬
SELECT * FROM Customers
ORDER BY Country, City;
SQL INSERT INTO
- INSERT INTO 명령어는 테이블에 새로운 레코드를 추가할 때 사용한다.
- 특정 컬럼만 지정했을 경우, 지정하지 않는 컬럼에는 null 값이 들어간다.
-- column 이름을 정확하게 할 때
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);
-- column 이름을 정확하게 알지 못 할 때
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
NULL value
- 데이터에 NULL 값 여부를 알기 위해선
IS NULL
혹은IS NOT NULL
명령어를 사용해야 한다. - = , <, > 이런 비교 연산자로는 알 수 없다.
SELECT column_names
FROM table_name
WHERE column_name IS NULL;
SQL UPDATE
- 테이블에 이미 존재하는 레코드를 수정할 때 사용
WHERE
절 생략할 경우, 테이블 전체에 변경 사항이 적용
UPDATE 테이블 이름
SET 컬럼 = 값
WHERE 조건
SQL DELETE
- 테이블에 있는 레코드를 삭제 할 때 사용
- UPDATE 명령어와 비슷하게
WHERE
조건절을 쓰지 않으면 전체 레코드가 삭제 된다.
DELETE FROM table_name
WHERE condition;
-- 특정 레코드 삭제 할때
DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste';
-- 테이블 전체 레코드를 삭제 할때
DELETE FROM 테이블 이름;
DELETE * FROM 테이블 이름;