728x90
DML(Data Manipulation Language)
- insert
- update
- delete
- select
DDL(Data Definition Language)
- create
- alter
- drop
- truncate
- rename
DCL(Data Control Language)
- grant
- revoke
TCL(Transaction Control Language)
- commit
- rollback
- savepoint
Create
- 테이블 생성
create table student (
칼럼명 타입 조건(not null 등),
칼럼명 타입 조건(not null 등),
칼럼명 타입 조건(not null 등),
PRIMARY KEY ~~ );
Insert
- 테이블에 데이터 삽입
insert into student values(테이블에 맞는 데이터 양식);
Update
- 데이터 내용 수정
update 테이블 set 칼럼 = '값' where 조건;
Delete
- 데이터 삭제
delete from 테이블 where 조건;
select
- 모든 컬럼 조회
select * from student; - 필요한 컬럼 조회
select age, name from student;
select 문법 순서
- select
- from
- where
- group by
- having
- order by
*쿼리의 실행 순서는 from ▶ where ▶ group by ▶having ▶ select ▶ order by
Where
- 컬럼 조회의 조건
select * from student where id = 1; - and, or 조건
select * from student where sex='남자' and(or) address='서울'; - like 조건
% 로 표현
select * from student where name = '김%';
Limit
- 조회 결과 행의 수 제한
select * from student limit 1;
Group By
- 특정 칼럼 기준의 데이터 그룹핑
select age from student group by age;
Order by
- 특정 칼럼 기준으로 정렬
- ASC : 오름차순 1 2 3 4 5
- DESC : 내림차순 5 4 3 2 1
select * from student order by age desc;
Distinct
- 중복 행을 제거
select distinct name from student;
Alias
- 칼럼에 별칭을 주고 조회
select age '나이' from student where id = 3;
연산자
- 산술 연산자 : + - / *
- 비교 연산자 : > < >= <= = != ^= <>
- 논리 연산자 : and, or, not
- 비교 연산자2 : between and, in, is null, like
함수
문자 조작 함수
- UPPER(str) : 대문자 변환
- LOWER(str) : 소문자 변환
- INITCAP(str) : 첫 글자만 대문자로 변환
- CONCAT(str, tmp) : 두 문자값 결합
- SUBSTR(str,a,b) : 문자 추출 a = 시작위치, b = 개수
- LENGTH(str) : 문자열 길이 반환
- L/RPAD(대상,총길이,채울문자열) : 대상 문자열에 채울문자열을 총길이만큼 채워서 반환
LPAD('001',7,'0') ▶ 0000001 - LTRIM, RTRIM(대상, 제거할 문자열) : 대상 문자열에서 제거할 문자열을 없앤 뒤 반환
select LTRIM('00010' , '00') ▶ 010 - REPLACE(대상문자열,바꾸고싶은대상,바꾸고싶은내용) : 대상문자열에서 바꾸고 싶은 대상을 바꾸고 싶은 내용으로 수정한 뒤 반환
REPLACE('ABCDEFG','DEF','XXX') ▶ ABCXXXG
계산 함수
- max
- min
- count
- avg
- sum
select 계산함수(칼럼) from 테이블; 로 사용
JOIN
INNER JOIN
- 일반적인 조인, A와 B 테이블의 조인에서 A와 B 테이블 모두에 있는 레코드만 조회된다
- ON 대신 WHERE를 사용할 수 있다.
SELECT A.a, A.b, B.c
FROM A
JOIN B
ON B.a=A.c
LEFT OUTER JOIN
- A와 B 테이블의 조인 상황에서 A테이블 기준으로 B테이블에 A테이블의 칼럼과 일치하는 조건이 없으면 B테이블의 칼럼은 NULL로 조회된다.
SELECT A.a, A.b B.c
FROM A
LEFT OUTER JOIN B
ON B.b = A.c;
RIGHT OUTER JOIN
- A와 B 테이블의 조인 상황에서 B테이블 기준으로 A테이블에 B테이블의 칼럼과 일치하는 조건이 없으면 A테이블의 칼럼은 NULL로 조회된다.
SELECT A.a, A.b, B.c
FROM A
RIGHT OUTER JOIN B
ON B.b = A.c;
CROSS JOIN(Cartesian Join)
- 집합의 곱 개념으로
A= {a, b, c, d} , B = {1, 2, 3} 일 때
A CROSS JOIN B 는
(a,1), (a, 2), (a,3), (b,1), (b,2), (b,3), (c, 1), (c,2), (c,3), (d, 1), (d, 2), (d,3)의 결과가 된다.
결과의 개수는 n(A) * n(B) 이다.
SELECT A.a A.b B.c
FROM A
CROSS JOIN B;
// 위 아래 쿼리의 결과는 같다.
SELECT A.a, A.b, B.c
FROM A, B;
'SQL' 카테고리의 다른 글
SQL 계층형 쿼리(Hierarchical Query) (0) | 2023.08.10 |
---|---|
[SQL] 다중 INSERT (0) | 2023.08.10 |
[SQL] 카멜케이스 변환 (0) | 2023.08.09 |
MYSQL(마리아DB) 다운 (0) | 2023.07.05 |
SQL 만들기 (0) | 2023.06.26 |