1. Select (선택)
1.1 Basic
1
2
SELECT <column_name_1>, <column_name_2>, ...
FROM <table_name>
- SELECT로 columns name을 넣고 from에 table name을 하여 선택한다.
1
2
SELECT *
FROM user1
- SELECT에
*
을 넣으면 from에 넣은 테이블의 전체 컬럼을 선택한다.
1
2
SELECT user_id, name, rdate
FROM user1
- user_id, name, rdate 세개의 컬럼 데이터 조회
1.2 Alias
1
2
SELECT user_id as '아이디', name as '이름', rdate as '등록일'
FROM user1
- Alias 를 이용하여 컬럼명을 변경 할수 있음.
- as는 생략이 가능함
1.3 Distinct
1
2
SELECT DISTINCT(name)
FROM user1
- Distinct를 이용하여 특정 컬럼의 중복 데이터를 제거할수 있음
- name 컬럼을 중복 제거하여 조회
1.4 Where
1
2
3
SELECT *
FROM user1
WHERE age >= 30
- Where 절을 이용하여 나이가 30살 이상인 데이터만 조회
1
2
3
SELECT *
FROM user1
WHERE rdate >= '2016-01-01'
- 등록일이 2016-01-01일 이후의 데이터를 조회
1
2
3
SELECT *
FROM user1
WHERE rdate >= '2010-01-01' AND rdate <= '2017-12-13'
- 등록일이 2010-01-01에서 2017-12-31인 데이터를 조회
- AND는 둘다 true일때 true
- OR도 사용가능하다, 둘중에 하나만 true여도 true
1
2
3
SELECT *
FROM user1
WHERE rdate BETWEEN '2010-01-01' AND '2017-12-13'
- 위의 내용과 같은 코드 BETWEEN으로 사용 가능하다
- BETWEEN A and B : A와 B 사이
1.5 Order By
1
2
3
SELECT *
FROM user1
ORDER BY age ASC
- Order By를 이용하여 특정 컬럼으로 데이터 정렬이 가능
- Age로 오름차순(ASC) 정렬
- ASC는 생략 가능함
1
2
3
SELECT *
FROM user1
ORDER BY asge DESC
- Age로 내림차순 정렬
- DESC는 내림차순
1
2
3
SELECT *
FROM user1
ORDER BY age DESC, rdate
- Age는 내림차순으로 정렬하고 rdate는 오름차순으로 정렬함
1.6 Concat
1
2
SELECT email, CONCAT(name, '(', age,')') AS 'name_age'
FROM user1
- Concat을 사용하여 Select한 데이터를 합쳐서 새로운 컬럼으로 보여주는것이 가능함
- Name과 Age를 같이 보여주도록 조회
- ’(‘, age, ‘)’ 는 (age_data)로 표현하기 위해 넣은 것
1.7 Like
1
2
3
SELECT *
FROM 테이블
WHERE 컬럼 LIKE '%@gmail%'
- Like를 이용하여 특정 문자열이 들어간 데이터 조회가 가능
- %는 어떤 문자나와 같은 의미
- ‘%gmail’은 gmail 문자열 앞에 아무 문자나 올수 있음을 의미
- NOT LIKE를 사용하여 특정 문자가 들어가지 않는 데이터를 조회할수 있음
1
2
3
SELECT *
FROM user1
WHERE email LIKE '%@gmail%'
- Email에 gmail이 들어간 데이터 조회
1
2
3
SELECT *
FROM user1
WHERE email NOT LIKE '%@gmail%'
- Email에 Gmail이 들어가지 않는 데이터 조회
1.8 In
1
2
3
SELECT 컬럼
FROM 테이블
WHERE 컬럼 IN ('조회할 데이터 1', '조회할 데이터 2')
- In은 여러개의 조건을 만족하는 데이터를 조회하고 싶을때 사용
- Where절의 조건을 여러개 사용하는 것을 간단하게 사용 가능
1
2
3
SELECT *
FROM user1
WHERE name = 'peter' OR name = 'alice'
- Where 절의 OR을 사용한 name 컬럼이 peter이거나 alice인 데이터를 조회
1
2
3
SELECT *
FROM user1
WHERE name IN ('peter', 'alice')
- In을 사용하면 OR을 사용한것 보다 조금더 코드가 깔끔하다
- 위와 동일하게 name이 peter이거나 alice인 데이터를 조회
1.9 Limit
1
2
3
SELECT 컬럼
FROM 테이블
LIMIT 조회할 데이터 수
- Limit은 조회하는 데이터의 수를 제한할 수 있음
- 데이터가 너무 많은 경우에는 항상 Limit을 사용하여 적은 데이터를 조회하는것이 시간이나 업데이트시의 실수를 줄일 수 있음
1
2
3
SELECT *
FROM user1
LIMIT 3
- user1 테이블에서 3개의 데이터 조회
1
2
3
SELECT *
FROM user1
LIMIT 1,3
- user1 테이블에서 두번째에서 네번째까지의 3개의 데이터 조회
- 처음 시작은 0임
2. Update
2.1 Syntax
1
2
3
UPDATE 테이블
SET 컬럼_1 = 데이터_1, 컬럼_2 = 데이터_2
WHERE 조건
- Update시에는 항상 Select-Where로 변경할 데이터를 확인하고 Update를 해주어야 실수를 덜함
- 또한, 위의 Limit도 함께 사용해주면 좋음
2.2 실습
1
2
3
UPDATE user1
SET age = 20, email = 'abc@daum.net'
WHERE name = 'jin'
- 이름이 Jin인 사람의 나이를 20, 이메일은 abc@daum.net으로 변경
3. Delete
3.1 Syntax
1
2
DELETE FROM 테이블
WHERE 조건
- 테이블에서 조건에 맞는 데이터를 삭제
3.2 실습
1
2
DELECT FROM user1
WHERE rdate < '2016-01-01'
- Delete 2016-01-01 이전 데이터 삭제
3.3 Drop과 Delete의 차이
- DELETE : 데이터는 지워지지만 테이블 용량은 줄어 들지 않는다. 원하는 데이터만 지울 수 있다. 삭제 후 잘못 삭제한 것을 되돌릴 수 있다.
- DROP : 테이블 전체를 삭제, 공간, 객체를 삭제한다. 삭제 후 절대 되돌릴 수 없다.