본문 바로가기
DB (DataBase) (국비)/DB 이론

SQL (Structured Query Language)

by Hwanii_ 2023. 6. 7.
728x90

1.

SQL (Structured Query Language) 란 ?

: 구조화된 질의 언어.

: 관계형 데이터베이스에서 사용되는 언어.

: 표준 SQL을 배우면 대부분의 DBMS를 사용할 수 있다.

 

2.

인터프리터 언어 (채팅형 언어)

: 한줄씩 코딩하고 실행할 수 있다.

 

3.

SQL은 대소문자 구분을 하지 않는다.

하지만, 가독성을 위해 모든 명령어를 대문자로 작성 한다.

 

4.

DB가 최적화가 안되어 있다는 말 == 중복 데이터가 발생할 여지가 있다. (높다)

 

실무에서 WHERE 절 (조건절) 뒤에 부분을 PK가 아닌,

다른것을 작성하는 경우는 굉장히 없는 케이스 라고 생각 하면 된다.

 

※ 데이터 자체는 몇개 없어도, 테이블은 많이 존재 할 수 있다 !

 

why ?

잘게 나눠서 데이터를 관리하는것이 데이터 중복을 더 잘 예방할 수 있어서 용이 하다 !

 

이렇게 관계를 가지는 테이블끼리는 우선순위가 존재 한다.

 

먼저 만들어야 하는 테이블을 편의상 부모 테이블 이라고 부른다.

 

아래의 예시를 확인.

 

예시)

 

[ 학생 테이블 ] >> 자식 테이블

 

학생명 동아리
학생1 13
학생2 14
학생3 12
학생4 13
학생5 14

 

FK, 외래키, 외부키 - 반드시 관계를 갖게되는 테이블의 PK 여야만 한다 !

 

[ 동아리 테이블 ] >> 부모 테이블

 

PK 동아리명
11 회화부
12 농구부
13 미술부
14 축구부

 

이런식으로 테이블을 2개 만들어서, INT 값인 PK로 값을 교체 한다.

 

참고,

만약에 무언가를 제거할 경우, FK로 사용하던 다른 테이블의 데이터도 함께 제거 하고 싶으면 ?

[ ON DELETE CASCADE ]

부모 테이블을 제거시, 자식 테이블도 제거 되는 느낌..

 

5.

1) --

: 주석

 

2) ;

: 마침표

 

3) 필드명 (column명) 자료형 의 순서 구조

: 기존 자바에서 배웠던 int num이 아니라, num int 이다.

: String 타입은 VARCHAR로 적어준다.

 

자료형(타입) 뒤에 적혀있는것은, "제약 조건"을 의미.

 

4) NUM INT PRIMARY KEY AUTO_INCREMENT

: 시스템에서 자동으로 PK 값을 증가 시켜줘.

 

5) NOT NULL

: 비어 있는 값을 받지 않겠다. == 값이 없으면 안된다는 의미.

 

6) DEFAULT

: 비어 있을 때 값을 설정해 주겠다. == 기본값을 0으로 설정.

 

7) ORDER

: 정렬

: ORDER BY 칼럼명 [ ASC / DESC ]

 

8) DESC

: 내림차순

 

9) ASC

: 오름차순

 

10) DELETE 할 경우

: FROM이 필요하다.

 

11) 이름을 포함한 경우를 찾고 싶을 때

: WHERE NAME LIKE '%아%'

 

예시)

 

6. CRUD : CREATE

 

CREATE TABLE 이름

: 테이블 생성

 

: 테이블 생성시 테이블 이름은 중복될 수 없다 !

 

예시)

 

: INSERT INTO 테이블명(칼럼명, 칼럼명, 칼럼명, ..) VALUES(데이터, 데이터, 데이터, ..);

>> 삽입

 

예시)

: INSERT INTO STUDENT(NAME,SCORE,POS,LV) VALUES('오리아나',24,'미드',8);

 

 

DROP TABLE 이름

: 테이블을 없애고 싶을때

 

7.  CRUD : READ

 

SELECT 문으로 특정 열 검색하기

: 데이터를 검색하려면 SELECT 문을 사용한다.

 

: SELECT [ 열 ] FROM [ 테이블 ]

 

1) SELECT : 데이터를 검색하는 구문.

 

2) [ 열 ] : 검색하려는 데이터의 열을 입력. 여러 열을 검색할 때는 쉼표 ( , )로 구분해 연결.

열 이름 대신 *를 입력하면 테이블의 전체 열을 검색 가능.

(하지만, 실무에서는 *를 거의 사용 하지 않는다)

(전체 열을 검색할 경우 불필요한 열의 데이터까지 검색하므로, CPU 등에 많은 부담을 가함)

 

3) FROM : 데이터를 가져올 테이블을 정하는 구문.

 

4) [ 테이블 ] : 데이터가 저장된 테이블 이름을 입력.

 

예시)

 

8.

WHERE 문으로 조건에 맞는 데이터 검색하기

: 시스템의 부하를 줄이려면 필요한 데이터만 검색.

: 위의 6번의 구문으로는

필요한 열만 검색했을때, 행 전체가 다 검색되므로,

아직 필요한 데이터를 검색했다고 볼 수 없음.

 

: SELECT [ 열 ] FROM [ 테이블 ] WHERE [ 열 ] = [ 조건값 ]

 

1) [ 열 ] : 조건을 적용할 열을 입력.

 

2) = : 조건을 적용할 연산자 종류를 입력.

 

3) [ 조건값 ] : 사용자 조건값을 입력.

 

※ 연산자 종류

연산자 설명
< 필터링 조건보다 작은 값을 검색.
<= 필터링 조건보다 같거나 작은 값을 검색.
= 필터링 조건과 같은 값을 검색.
> 필터링 조건보다 큰 값을 검색.
>= 필터링 조건보다 같거나 큰 값을 검색.
<>, != 필터링 조건과 같지 않은 값을 검색.
!< 필터링 조건보다 작지 않은 값을 검색.
!> 필터링 조건보다 크지 않은 값을 검색.

 

9.  CRUD : UPDATE

 

예시)

UPDATE STUDENT SET SCORE = 1, LV = 4 WHERE NUM = 12;

 

NUM = 2인 열에서, SCORE 하고 LEVEL을 새롭게 SET 하겠다는 의미.

 

10. CRUD : DELETE

 

예시)

DELETE FROM STUDENT WHERE NUM = 12;

 

 

11. Query OK 

: 문법이 맞다는 의미

 

 

반응형

'DB (DataBase) (국비) > DB 이론' 카테고리의 다른 글

JDBC  (0) 2023.06.08
Database (DB)  (0) 2023.06.07