DB
[DB] SQL 기본 문법과 활용
by inyeong
2024. 5. 31.
CREATE 구문
- 데이터베이스 생성 : CREATE DATABASE [DB_NAME];
ex) create database example;
- 테이블 생성 : CREATE TABLE [NAME] ([COLUMN_NAME] [DATA_TYPE]);
ex) create table member(seq int, name char(20),email char(50));
INSERT 구문
- 데이터 삽입 : INSERT INTO [TABLE_NAME] ([COLUMN1]…) VALUES([DATA1]…);
ex) insert into member(seq,name,email) values(1,'iy','iy@tistory.com');
SELECT 구문
- 데이터 조회 : SELECT [COLUMN1] FROM [TABLE] WHERE [CONDITION];
ex) select * from member;
ex) select name, email from member;
ex) select name, email from member where seq=1;
UPDATE 구문
- 데이터 수정 : UPDATE [TABLE] SET [COLUMN1]=[DATA1] WHERE [CONDITION];
ex) update member set name='inyeong' where seq=1;
where절 생략하면 전체 수정
DELETE 구문
- 데이터 삭제 : DELETE FROM [TABLE] WHERE [CONDITION];
ex) delete from member where seq=2;
DROP 구문
- 데이터베이스/테이블 삭제 : DROP [DATABASE/TABLE] [NAME];
ex) drop table member;
SQL 연산자
- 산술 연산자 : +, -, *, /
ex) select 1+4;
ex) select 1+4*2;
ex) select * from member where seq=6-1;
- 비교 연산자 : >, >=, <, <=, ==, <>, !=
ex) select * from member where seq>2;
- 논리 연산자 : NOT, AND, OR
| NOT |
부정 |
우선순위 1 |
| AND |
그리고 (논리곱) |
우선순위 2 |
| OR |
또는 (논리합) |
우선순위 3 |
ex) select * from member where seq=1 and seq=5;
ex) select * from member where seq=1 or seq=5;
ex) select * from member where seq=1 and name='iy';
- 비트 논리 연산자 : &, |, ^
| ORACLE |
|| |
| MSSQL |
+ |
| MYSQL |
공백 |
- 연결 연산자 : 공백
| ORACLE |
|| |
| MSSQL |
+ |
| MYSQL |
공백 |
ex) select 'te' 'st';
ex) select name * from member where name='gue' 'st';
ex) select concat('in','yeong');
- IN 연산자 : [컬럼/값] IN (값1, 값2..)
ex) select name, email from member where id in ('admin', 'guest');
- NOT IN 연산자 : [컬럼/값] NOT IN (값1, 값2..)
ex) select name, email from member where id not in ('admin', 'guest');
- like 연산자
검색 기능에 많이 사용, 일부 문자만 입력해도 정보가 출력됨
% 모든 문자 :
함수
- 문자열 함수 substring
- 문자, 아스키코드 변환 함수
| DBMS |
CHAR → ASCII |
ASCII → CHAR |
| ORACLE |
ASCII |
CHAR |
| MSSQL |
ASCII |
CHAR |
| MYSQL |
ASCII, ORD |
CHAR |
- count 함수
집계, 레코드 개수 구하는 함수
select count(column) from [table]
ex) select count(*) from member;
- 길이 함수
| DBMS |
함수 |
| ORACLE |
LENGTH |
| MSSQL |
LEN |
| MYSQL |
LENGTH |
ex) select length('test');
ex) select name, length(email) from member;
조건문
| ORACLE |
DECODE 함수, CASE WHEN 구문 |
| MSSQL |
CASE WHEN 구문 |
| MYSQL |
IF 함수, CASE WHEN 구문 |
case when [condition] then [true] else [false] end
condition(조건)이 참일 때 true 실행, 거짓일 때 false 실행
ex) select case when 1=1 then 1 else 2 end;
ex) select * from member where seq=(case when 1=1 then 1 else 2 end);