DB
[DB] SQL 기본 문법과 활용
inyeong
2024. 5. 31. 14: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 연산자
- 산술 연산자 : +, -, *, /
* / 우선순위 1 + - 우선순위 2
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 공백 - 연결 연산자 : 공백
ex) select 'te' 'st';ORACLE || MSSQL + MYSQL 공백
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);