SQL(SELECT/WHERE/INSERT/UPDATE/DELETE)

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 테이블 이름;