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 |