본문 바로가기

블로그/DB(HeadFirstSQL)

Head First SQL(헤드퍼스트SQL) 핵심요약 - Chapter1. 데이터와 테이블

1. 데이터와 테이블

(1) 기본 용어 정리

데이터베이스란? : 테이블, 테이블과 관련된 SQL 구성 요소들을 담고 있는 저장소.

쿼리(질의)란? : 데이터베이스로 정보를 요청하는 것.

*데이터베이스 안의 정보는 수 많은 테이블로 구성되어있음.

테이블 ━열(필드) : 테이블에 저장된 하나의 데이터

         행(레코드) : 한 객체에 대한 속성들을 나타내는 열의 집합.


(2) MySQL명령어

1)데이터베이스 생성 : CREATE DATABASE gregs_list;

Tip. SQL의 키워드는 대소문자를 구별하지 않으므로 자유롭게 써도 좋지만

              가독성을 위해 대문자 로만 쓰는 것이 좋습니다.

   Tip. 데이터베이스 명과 테이블 명은 주로 소문자로 시작합니다명명 규칙으로                  언더바도 좋고캐멀 표기법(camel case)도 좋지만 일관성을 가져야 합니다

2)데이터베이스 사용 : USE gregs_list;

3)테이블 생성

CREATE TABLE doughnut_list 테이블의 이름은 소문자, 스페이스 대신 언더바 이용

(

[열의 이름] [데이터 타입] [크기]

doughnut_name VARCHAR(10), 

doughnut_type VARCHAR(6)

); 명령어의 끝을 나타내는 세미콜론 


※주로 사용되는 데이터 타입들

 데이터 타입(자릿수)

 특징 

 VARCHAR(n)

 길이 255개까지의 문자 데이터를 저장. 

 데이터 길이에 맞게 크기 조절. 

 DEC(n,n)

 십진수의 자릿수 할당.

 DEC(전체자릿수, 소수점 이하 자릿수)

 예) DEC(4,2) = 12.34

 CHAR or CHARACTER

 정해진 길이의 String 데이터 

 INT or INTEGER

 정수(음수도 가능) 

 BLOB

 큰 덩어리의 문자 데이터 

 DATE

 날짜 

 DATETIME or TIMESTAMP

 날짜 및 시간 

 Tip. DATETIME은 주로 미래에 일어날 일 시간

       TIMESTAMP는 보통 현재의 시간 나타낼때

 TIME

 시간 


4)테이블 정보 확 : DESC my_contacts; ←DESC = DESCribe(기술하다)의 줄임말.


Tip. 깜박 잊고 넣지 못한 열을 추가하기 위해서는, 기존의 테이블을 지우고 새로 테이블을 생성 해야 합니다.

Tip. 새로 입력하는 수고를 덜기 위해, 이전의 모든 SQL 문을 메모장이나 텍스트 에디터에 복사하 여 재사용 하는 방법을 추천합니다


5)테이블 지우기 : DROP TABLE my_contacts; ※주의 : 테이블과 그안의 데이터 모두 지움.

6)테이블에 데이터 추가하기 : 

INSERT INTO your_table (column_name1, column_name2, ...) VALUES (‘value1’, ‘value2’, ...);
[SQL 키워드] [테이블명] [추가할 열의 이름]                            [키워드] [작은따옴표 이용하여 값 추가

※중요 : 값들은 열 이름과 같은 순서여야함.


Tip. SQL 문을 작성할 때는 미리 텍스트 에디터에 입력해서 실수를 해도 바로 입력이 가능하 도록 합시다.

Tip. CHAR, VARCHAR, DATE, BLOB 값에는 작은 따옴표를 사용하고, DECINT같은 숫자 값은 따 옴표를 사용하지 않습니다


7)INSERT 문의 변형

① 열 순서의 변경 : 각 열 이름의 순서와 해당 값의 순서가 같기만 하면 열의 순서는 바꿀 수 있다.

② 열 이름의 생략 : 열 이름 리스트를 생략할 수 있음. 

   하지만 값들은 모두 열에 있을 때와 같은 순서로 있어야 함

③ 몇 개의 열 생략 : 몇 개의 열만 입력하고 나머지는 생략 가능. ※값이 없는 열에는 NULL값이 들어감.


8)NULL 제어하기

CREATE TABLE my_contacts

(

last_name VARCHAR (30) NOT NULL, ※데이터 타입 뒤에 NOT NULL을 추가하면

first_name VARCHAR (20) NOT NULL    그 열에 대해세는 값을 반드시 넣어야함.

);


9)빈 칸을 디폴트 값으로 채우기

CREATE TABLE doughnut_list

(

doughnut_name VARCHAR (10) NOT NULL,

doughnut_type VARCHAR(6) NOT NULL,

doughnut_cost DEC(3,2) NOT NULL DEFAULT 1.00 ※디폴트 값을 쓰면 빈 열을 지정된 값으로 채움.

);