SQL 첫걸음 4-5강 정리

책을 보면서 공부한 내용 복습 및 정리

mysql server 설치

먼저 mac에서 mysql을 설치하기 위해 아래 명령어를 순서대로 입력하였다.

$ brew update
$ brew search mysql
$ brew install mysql

설치를 마친 후 mysql server를 실행하기 위해 아래 명령어를 입력하자 에러가 발생했다.

$ mysql.server start
my_print_defaults: Can't read dir of '/usr/local/etc/my.cnf.d' (OS errno 2 - No such file or directory)
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
Starting MySQL
.my_print_defaults: Can't read dir of '/usr/local/etc/my.cnf.d' (OS errno 2 - No such file or directory)
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
my_print_defaults: Can't read dir of '/usr/local/etc/my.cnf.d' (OS errno 2 - No such file or directory)
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
 ERROR! The server quit without updating PID file (/usr/local/var/mysql/..).

마지막 에러 메세지를 검색하고 여러 방법을 따라하다가 아래 명령어를 통해 에러가 해결됐다.

$ brew remove mysql
$ brew cleanup
$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql

$ brew install mysql
$ mysqld --initialize --explicit_defaults_for_timestamp
$ mysql.server start

4강

먼저 한빛미디어에서 sample.dump 다운받고 아래 명령어를 실행하면 dump 파일을 import 한 후, mysql을 실행한다.

$ mysql -u root -p < sample.dump
$ sudo mysql

show databases; 를 입력해 sample 데이터베이스가 있는지 확인한 후, use sample; 로 sample 데이터베이스를 바꿔준다. show tables; 를 입력하면 앞으로 책에서 사용할 예제 테이블을 확인할 수 있다.

mysql> show databases;
mysql> use sample;
mysql> show tables;

아래 명령어는 sample21 테이블에서 모든 컬럼의 값을 가져오는 명령어이다. 명령어를 실행하면 no, name, birthday, address 총 4개의 컬럼이 있어 select no, name, birthday, address from sample21; 으로 할 수도 있지만, 모든 열을 의미하는 * 을 사용함으로써 간단하게 모든 열을 지정할 수 있다.

mysql> select * from sample21;

select_sample

select, *, from 등을 예약어라 부르는데, 이런 예약어는 테이블과 같은 데이터베이스 객체명에는 사용할 수 없다.

5강

4장에서 sample21 테이블의 컬럼과 값을 확인했다. 테이블 구조를 알고 싶을 때는 아래 명령어를 통해 확인할 수 있다.

mysql> desc sample21;

desc_sample

결과를 보면 테이블에 있는 필드, 타입, null 유무, key 종류, default 유무 등을 확인할 수 있다.

자료형

  • INTEGER: 정수값을 저장할 수 있는 자료형
  • CHAR: 문자열을 저장할 수 있는 자료형으로 열의 최대 길이를 지정해야 한다. CHAR형에서는 길이가 고정되므로 최대 길이보다 작은 문자열을 저장할 경우 공백문자로 나머지를 채운 후 저장된다.
  • VARCHAR: 문자열을 저장할 수 있는 자료형으로서 열읠 최대 길이를 지정해야하며 CHAR형과는 다르게 데이터 크기에 맞춰 저장공간의 크기도 변경된다.
  • DATE: 날짜값을 저장할 수 있는 자료형
  • TIME: 시간을 저장할 수 있는 자료형