Head First SQL 1. 데이터와 테이블

귀가길·2022년 4월 11일
0

Head First SQL

목록 보기
2/3
post-thumbnail

용어정리

SQL의 구성 요소는 데이터베이스라고 하는 테이블의 저장소 입니다.
테이블은 데이터를 열과 행으로 구조화하여 보관하고 있는 데이터베이스의 구성 요소입니다. 여기서 은 테이블에 저장된 하나의 데이터입니다. 은 한 객체에 대한 속성들을 나타내는 열 집합입니다. 열은 필드, 행은 레코드라고 부르기도 합니다.

명령어 입력

책에선 데이터베이스 시스템으로 MySQL을 사용하고 있어 사용하시는 데이터베이스 시스템이 따라 명령어가 약간 다를 수 있습니다.

우선 테이블을 포함할 데이터베이스를 생성해야 합니다. 이때 데이터베이스로 정보를 요청하는 행위를 쿼리()라고 합니다.

// 명령어(CREATE DATABASE:데이터베이스 생성) 데이터베이스의 이름;
CREATE DATABASE sql_list;

이렇게 위의 쿼리가 성공적으로 수행되었다면

> CREATE DATABASE sql_list;
Query OK, 1 row affected (0.01 sec)

과 같이 출력될 것입니다. 그 다음에는 시스템에 그 데이터베이스를 사용한다고 알려야 합니다.

USE sql_list;

그럼 터미널에선 "Database changed"라는 문구가 나올 것 입니다.

이제부터 우리는 테이블을 작성할 수 있습니다.

CREATE TABLE music_list
(
	music_name VARCHAR(30),
    music_type VARCHAR(5)
);

위의 명령어들을 이용해 우리가 만든 테이블에 카테고리를 추가할 수 있습니다. 이미 존재하는 데이터 베이스나 테이블은 다시 생성할 수 없기 때문에 확인하는 작업도 중요합니다.
이렇게 만든 데이터베이스가 제대로 저장되어 있는지 확인할때에는 DESC명령어를 사용하여 확인 할 수 있습니다.

> DESC music_list;

만약 테이블을 작성할때 오타가 났다거나 이제는 필요없는 테이블이 생기면 테이블을 삭제할 수도 있습니다.

> DROP TABLE music_list;

위의 방법은 테이블에 데이터가 있건 없건 수행되어 테이블이 삭제되니 사용에 주의해야 합니다.

다시 처음으로 돌아가서 우리가 만든 테이블에 데이터를 추가하려면 INSERT문을 사용하면 됩니다.

INSERT INTO music_list(music_name, music_type, ...)
			VALUE('Passionate Goodbye', 'MP3',...) 

위와 같이 데이터를 추가할 수 있으며 이때 값들은 열 이름과 같은 순서로 들어가야합니다.

이렇게 만든 테이블은 SELECT를 이용해 테이블을 볼 수 있습니다.

> SELECT * FROM music_list;

를 입력하면 우리가 작성한 테이블과 그 값을 볼 수 있습니다. 이때 *(이스터리크)는 모든것을 불러오라는 뜻입니다. 이때 우리가 선언하지 않은 값은 NULL값을 가지게 되는데 NULL이 많아지면 원하는 데이터를 찾기 어려워 집니다. 이를 방지하기 위해 NULL값을 받아들이지 않도록 설정하는 것이 가능하며, DEFAULT값을 넣어줄 수도 있습니다. 아래는 그 예시입니다.

CREATE TABLE music_list
(
	music_name VARCHAR(30) NOT NULL,
    music_type VARCHAR(6) NOT NULL DEFAULT 'MP3'
);

간단한 SQL컨벤션

  1. SQL명령어는 대문자로 쓴다.
    소문자로 써도 명령어가 작동하지만 테이블이름과 경계가 모호해져 구별하기 쉽게 SQL명령어는 대문자, 테이블이름이나 데이터베이스 이름은 소문자로 쓰는 것이 좋습니다.
  2. 데이터베이스, 테이블, 열이름은 소문자로 이름을 정하고 띄어쓰기를 할 수 없습니다.
    SQL은 대소문자를 구별하지 않으므로, 혼란을 줄수 있기 때문입니다. 띄어쓰기 대신 '_'를 이용합니다. 만약 camelCase 방식으로 쓴다면 데이터베이스의 모든 테이블 명명규칙을 고수해야합니다.
  3. SQL의 데이터 타입

    SQL데이터 타입의 종류와 역할

    데이터 타입의 이름은 데이터베이스 시스템에때라 다를 수 있기 때문에 아래와 같은 종류에 데이터 타입이 있다는 것만 참고하고 자신이 사용하는 데이터베이스 시스템 문서를 확인하는 것이 좋습니다.

  • CHAR : 정해진 길이의 문자데이터(CHAR, CHARACTER, ...)
  • VARCHAR : 길이가 255개까지의 문자 데이터, 유연하게 길이를 조정할 수 있습니다.
  • BLOB : 큰 덩어리의 문자 데이터
  • DATE : 날짜만 다루는 데이터, 시간은 다루지 않음
  • TIME : 시간만 다루는 데이터, 날짜는 다루지 않음
  • DATETIME : 날짜와 시간을 다루는 데이터
  • INT : 음수를 포함한 정수데이터(INT, INTEGER, ...)
  • DEC : 필요한 만큼의 십진 자릿수를 저장하는 데이터 (DECIMAL의 약어, DEC(6,2) 형태로 사용)
  • NULL : 빈 데이터
profile
블록체인 개발자

0개의 댓글

관련 채용 정보