2021. 8. 19. 02:40ㆍSERVER/SQL
Data Manipulation Language
데이터 조작 언어, 관리 체계에 저장된 자료에 접근하고 조회하기 위해 대화 방식으로 사용
SQL 문장을 말하며 선택 · 삽입 · 갱신 · 삭제 · 완료 · 복귀와 같은 명령이 DML의 모든 예시다
테이블의 데이터 호출
테이블에서 데이터를 가져올 때는 용도에 맞는 query문을 사용해야 한다
데이터베이스 테이블을 조작할 때의 대표적인 명령어는 아래와 같다
① SELECT : 검색
② FROM : ~로 부터 (Which table)
③ WHERE : 조건
* SQL에서 마침표 역할로 세미콜론(;)을 사용한다
SELECT
해당 테이블에서 어떤 컬럼의 데이터를 가져올 것인지 명시하여 검색할 수 있다
SELECT email, pw, name (FROM User;)
유저 테이블의 email, pw, name 컬럼을 검색한 것, SELECT는 컬럼을 대상으로 검색하게 된다
SELECT * (FROM User;)
* 는 all을 의미하는데, 데이터베이스 내의 데이터가 5GB 이상이면 사용하지 않는 것이 좋다
(모든 데이터를 검색해주는만큼 용량이 크면 클수록 비효율적이며, 멈출 수 있다)
SELECT DISTINCT name, age (FROM User;)
뚜렷한, 분명한이란 뜻을 가진DISTINCT는 컬럼의 중복을 제거한 데이터를 보여준다
단, 2개 이상의 컬럼이 있을 때 한 쪽에 중복이 있어도 다른 쪽 컬럼의 값이 다르면 다르게 취급
예) ① 이름 : 홍길동, 나이 20
② 이름 : 홍길동, 나이 25
FROM
어떤 테이블로부터 데이터를 가져올 것인지 명시한다
SELECT (...) FROM User
SELECT (...) FROM Project
SELECT (...) FROM Award
유저, 프로젝트, 어워드 각 테이블에 접근하여, 해당 테이블의 컬럼 데이터를 가져오게 된다
WHERE
검색하려는 데이터에 조건을 설정하여 원하는 데이터를 명확하게 검색할 수 있다
SELECT * FROM User
WHERE name = "testName";
이름이 testName인 데이터를 유저 테이블에서 검색 후 가져오게 된다
WHERE의 조건이 하나 이상인 경우
비교 연산자를 사용해서 조건을 추가해줄 수 있다, 비교 연산자는 아래와 같다
연산자 | 연산 방법 | 의미 |
>, < | N > 5 N < 5 |
N이 5보다 클때 N이 5보자 작을때 |
>=, <= | N >= 5 N <= 5 |
N이 5보다 크거나 같을때 N이 5보다 작거나 같을때 |
= | N = 5 | N이 5일 때 |
!= | N != 5 | N이 5와 같지 않을때 |
SELECT * FROM User
WHERE age >= 20;
유저 테이블에서 나이가 20이거나 이상인 데이터를 모두 검색한다
복합조건 연산자를 사용해서 조건을 추가하는 방법도 있다, 복합조건 연산자는 아래와 같다
연산자 | 연산 방법 | 의미 |
AND, && | A AND B A && B |
A와 B를 모두 만족하는 값 |
OR, || | A OR B A || B |
A 또는 B인 값 |
NOT, ! | NOT A, !A | A가 아닌 값 |
SELECT * FROM User
WHERE age <= 10 AND age >= 90;
유저 테이블에서 나이가 10이거나 이하 그리고 90이거나 이상인 데이터를 검색한다
기타 연산자를 사용하여 조건을 추가하는 방법도 있다, 기타 연산자는 아래와 같다
연산자 | 연산 방법 | 의미 |
BETWEEN | A BETWEEN 5 AND 10 | A가 5와 10 사이에 포함되는 값 |
IN | A IN B | B에 A가 포함되는 값 |
NOT IN | A NOT IN B | B에 A가 포함되지 않는 값 |
SELECT * FROM User
WHERE age BETWEEN 20 AND 30;
유저 테이블에서 나이가 20에서 30사이인 데이터를 검색한다 (20, 30도 포함된다)
LIKE
찾고자 하는 테이블에서 특정 문자가 포함된 문자열을 찾고 싶을 때 사용한다
SELECT * FROM User
WHERE name LIKE "testName";
유저 테이블에서 이름이 "testName"인 데이터만 검색한다
SELECT * FROM User
WHERE name LIKE "%Name";
위와 같이 사용시 이름이 Name으로 끝나는 데이터만 검색한다
SELECT * FROM User
WHERE name LIKE "test%";
위와 같이 사용시 이름이 test로 시작하는 데이터만 검색한다
SELECT * FROM User
WHERE name LIKE "%eNa%";
위와 같이 사용시 이름에 eNa가 포함된 데이터만 검색한다
ORDER BY
데이터를 검색할 때 정렬하여 결과를 출력하는 명령어
① ASC : 오름차순 정렬 (작은 값부터)
② DESC : 내림차순 정렬 (큰 값부터)
* 데이터베이스의 테이블 명을 검색할 때 사용한 DESC와 기능이 다르다
SELECT * FROM User
ORDER BY age ASC;
유저 테이블에서 나이가 낮은 수의 데이터부터 정렬하여 검색한다
SELECT * FROM User
ORDER BY age DESC;
나이가 높은 수의 데이터부터 정렬하여 검색한다
'SERVER > SQL' 카테고리의 다른 글
5. SQL (DML: DELETE) (0) | 2021.08.19 |
---|---|
4. SQL (DML: UPDATE) (0) | 2021.08.19 |
3. SQL (DML: INSERT) (0) | 2021.08.19 |
1. SQL (Prologue) (0) | 2021.08.19 |