SQL 기초 문법

한지훈·2023년 6월 28일
0

SQL

목록 보기
1/9

select는 데이터를 조회하거나 산술식, 함수 등을 실행할 때 사용된다. SQL은 대소문자를 가리지 않지만, 구문에 해당되는 것은 대문자로만 적는다.

*(에스터리스크, 별표)는 모든 항목을 다 출력할 때 사용함.

SELECT * FROM Customers;

여기서 원하는 컬럼만 출력하고 싶을 때에는 아래와 같이 사용함.

SELECT CustomerName, City FROM Customers;

DISTINCT는 중복값을 제거합니다. 넘파이의 Unique() 함수와 기능이 동일.

SELECT DISTINCT Country FROM Customers;

ORDER BY

출력 결과 정렬.

  • 오름차순 : ASC(기본, 작은 수에서 큰 수로, Ascending)
  • 내림차순 : DESC(큰 수에서 작은 수로, Descending)
SELECT * FROM Customers ORDER BY CustomerID DESC;
SELECT * FROM Customers ORDER BY CustomerName ASC;

AS

별칭을 정한다. 기존 Table의 값은 변하지 않음.

SELECT CustomerID AS 회원이름
FROM Customers;
SELECT CustomerID AS 회원이름, Country AS 나라
FROM Customers;

연결 연산자

SELECT Country || ' ' || City || ' ' || Address AS 주소 FROM Customers

실행결과

각 열의 데이터를 공백을 기준으로 합침. CONCAT과 상이함.

논리 연산

SELECT *
FROM Customers 
WHERE CustomerID LIKE '1%'
AND City = 'London';
SELECT *
FROM Customers 
WHERE CustomerID LIKE '1%'
AND (City = 'London' OR City = 'Berlin');

BETWEEN 연산

A AND B : A와 B를 포함한 사이의 값

SELECT CustomerID, CustomerName
FROM Customers 
WHERE CustomerID BETWEEN 30 AND 50;

실행결과: Customers 데이터에서 가져온 CutomerID가 30이상 50이하에 해당하는 CustomerID, CustomerName

IN 연산

IN A : A안에 값과 일치하는 값을 조회

SELECT CustomerID, CustomerName
FROM Customers 
WHERE CustomerID IN (10, 20, 30);

실행결과: Customers 데이터에서 가져온 CutomerID가 10, 20, 30에해당하는 CustomerID, CustomerName

LIKE 연산

대소문자를 안가림

만약 데이터가 Paullab, Paultest, Paulcode가 있다 하자.

SELECT CustomerID, CustomerName
FROM Customers 
WHERE CustomerName LIKE 'Paul___';

결과: Paullab만 검색. 언더바(_)는 모든 문자를 의미함.

SELECT CustomerID, CustomerName
FROM Customers 
WHERE CustomerName LIKE 'Paul%';

결과: Paullab, Paultest, Paulcode 전부 검색. %는 뒤에 어떤 문자열이 와도 되고, 문자 자체가 없어도 됨.

Paul이 들어가는 모든 값

SELECT CustomerID, CustomerName
FROM Customers 
WHERE CustomerName LIKE '%Paul%';

IS NULL

NULL 값을 갖는 값.

SELECT CustomerID, CustomerName
FROM Customers 
WHERE CustomerID IS NULL;

WHERE

  • 조회하려는 데이터에 조건 부여
  • 여러 연산자를 결합하여 사용 가능
  • 결합 가능한 연산자의 종류 : 비교연산자(=, <, >, !=, >=, <=), SQL연산자(BETWEEN), 논리 연산자(AND, OR) 등
SELECT *
FROM Customers 
WHERE CustomerID > 80 AND Country='France';

결과: Customers에서 가져온 데이터 중, CustomerID가 80보다 크고, Country가 France인 모든 컬럼 검색.

INSERT

새로운 행을 추가함. 파이썬의 append 함수와 상이함. 만약 컬럼이 부족하다면 부족한 컬럼은 null로 추가됨.

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('leehojun', 'jejusi', 'korea');

코드의 의미: Customers 테이블에 CustomerName, City, Country 열에 'leehojun', 'jejusi', 'korea'란 값을 넣는다. 다른 나머지 열은 null으로 추가됨.

UPDATE

값을 수정, 변경하는 함수. 한 번 바꾸면 다시 되돌릴 수 없으니 신중히 해야함.

UPDATE Customers
SET CustomerName='하르방', City='한라산', Country='선계'
WHERE CustomerID = 1;

코드의 의미: Customers 테이블에 CustomerID가 1인 행에 CustomerName란 열에 '하르방', City란 열에 '한라산', Country란 열에는 '선계'란 값으로 수정한다.

DELETE

WHERE 구문을 적지 않으면 모든 데이터가 삭제됨.

DELETE FROM Customers WHERE CustomerName='hojun';

코드의 의미: CustomerName이 hojun인 행 삭제.

실습 wschools
제주코딩베이스캠프 강의

profile
노력하는 개발자

0개의 댓글