카테고리 없음

테이블 만들기

Study 2021. 2. 27. 20:14

 

study-lag.tistory.com/10

 

테이블스페이스, 유저 생성 및 유저 권한부여

study-lag.tistory.com/9 sys (최고권한 계정) 로그인, 유저 변경 로그인 하는 방법 !!! 실행창을 연 뒤 cmd 실행! sqlplus 입력! sys as sysdba 입력해줍니다! 오라클 설치 시 입력했던 비밀번호를 입력하면 이렇.

study-lag.tistory.com

이전 시간에 이어서 

 

 

 

 

테이블의 사용목적을 설정 해 봅시다.

 

예를들어 같은반 학생들이 얼마의 금액을 언제 냈는지 기록 후 선생님께 보고한다고 가정할 시

이름, 금액, 낸 날자를 기록해서 보고드리면 되겠죠?

 

이런식으로 표로 만들어서 저장 후 보고 할 수 있습니다.

 

오라클 데이터베이스로 

name 1 column

money 1 colimn

givendate 1comumn

이렇게 3 컬럼이 들어가는 classmate 테이블 하나를 구축해 봅시다

 

미리 만들어둔 유저 ex 로 로그인 합시다!

 

conn ex/1234

 

create table classmate(

name  varchar(20),
money number,
givendate date
);

 

상기 쿼리문을 입력하면 되겠습니다.

 

이렇게 한줄한줄 입력하셔도 무방하고

- 도스창에 한줄한줄 입력 할 때에는 무조건 마지막에 세미콜론(;)을 넣어주셔야 명령의 종료인걸 인식합니다.

 

아무 명령이나 내린 뒤 

 

ed 를 입력하여 메모리 버퍼 메모장을 열어도 무방합니다 

- ed로 열어주신 메모장에는 세미콜론(;)을 사용하지 않으셔야 합니다.

 

 

저장 후 메모장 종료

 

run 또는 / 입력 후 엔터 

 

 

 

 

주로 사용하는 옵션값

 

  • INT: 정수, 소수까지 저장하고 싶다면 FLOAT나 DOUBLE 자료형을 사용하면 된다.
  • CHAR(n): 고정 길이 n을 갖는 문자열. 주어진 길이보다 짧은 문자열을 넣으면 부족한 자릿수만큼 스페이스가 채워진다.
  • VARCHAR(n): 가변 길이 n을 갖는 문자열. 0~n 의 길이를 갖는 문자열을 넣을 수 있다.
  • TEXT: 긴 글을 저장할 때 사용하며, 보통 수백 자 이내의 문자열은 VARCHAR로 많이 처리하고, 그보다 길면 TEXT로 처리한다.
  • TINYINT: -128부터 127 까지의 정수를 저장할 때 사용한다. 1 또는 0만 저장한다면 불리언값 (boolean) 과 같은 역할을 할 수 있다.
  • DATETIME: 날짜와 시간에 대한 정보를 담는다. 날짜 정보만 담는 DATE와 시간 정보만 담는 TIME도 있다.

주로 사용하는 컬럼 옵션값

  • NULL, NOT NULL: 빈칸을 허용 또는 허용하지 않음.
  • AUTO_INCREMENT: 숫자를 저절로 올림. 예를 들어 데이터를 하나 넣으면 자동으로 id에 1을 부여하며, 그 다음 데이터를 넣으면 id에 2를 부여, 이와 같은 기능을 MySQL이 알아서 해준다.
  • UNSIGNED: INT 자료형에 적용되는 옵션. 숫자 자료형은 기본적으로 음수 범위를 지원한다. 예를 들어 INT는 -2,147,483,648 ~ 2,147,483,647 까지의 숫자를 저장할 수 있지만, UNSIGNED가 적용되면 (즉, 부호, sign이 생략되면) 음수는 무시되고 0 ~ 4,294,967,295 까지의 숫자를 저장할 수 있다. FLOAT와 DOUBLE에는 사용이 불가하며, 나이처럼 음수가 나올 수 없는 컬럼에는 체크해두는 것이 좋다.
  • ZEROFILL: 숫자의 자릿수가 고정되어 있을 때 사용할 수 있다. 가끔 자료형으로 INT 대신 INT(자릿수)로 표현하는 경우가 있는데, 이 때 ZEROFILL을 설정해둔다면 비어있는 자리에 모두 0을 넣는다. 예를들어 INT(4)인데 숫자 1을 넣었다면 0001이 기록된다.
  • DEFAULT: 데이터베이스 저장 시 해당 컬럼에 값이 없다면 MySQL이 기본값을 대신 넣는다. 위 예제에서 created_at에 DEFAULT로 넣은 now()는 현재 시각을 넣으라는 뜻이며, CURRENT_TIMESTAMP 또한 같은 뜻이다. 사용자 정보를 넣으면 컬럼에 넣는 순간의 시각이 자동으로 기록되게 된다.
  • PRIMARY KEY: 해당 컬럼이 기본 기인 경우 PRIMARY KEY 옵션을 설정할 수 있다. 기본 키란 로우를 대표하는 고유한 값을 의미하는데, 데이터베이스에 데이터를 넣을 때는 로우 단위로 넣기 때문에 각 로우를 구별할 고유한 식별자가 필요하다. id는 중복될 수 없으므로, 이를 고유한 식별자로 부여한 것이다.
  • UNIQUE INDEX: 해당 값이 고유해야 하는지에 대한 옵션이며, 위의 예제에선 name 컬럼이 해당된다. 인덱스의 이름은 name_UNIQUE로, name 컬럼을 오름차순 (ASC) 으로 기억하겠다는 뜻이다 (내림차순은 DESC). PRIMARY KEY나 UNIQUE INDEX의 경우 데이터베이스가 별도로 컬럼을 관리하므로 조회 시 속도가 빨라진다. 기본 키인 id도 사실 고유해야 하지만, PRIMARY KEY는 자동으로 UNIQUE INDEX를 포함하므로 따로 적지 않아도 된다.

이후에 선언된 것들은 테이블 자체에 대한 설정이다.

  • COMMENT: 테이블에 대한 보충 설명을 의미한다. 이 테이블이 무슨 역할을 하는지 적을 수 있다. 필수는 아니다.
  • DEFAULT CHARACTER SET: 한글을 입력하기 위하여 utf8을 설정할 수 있다.
  • ENGINE: 테이블이 구동되는 엔진이다. 여러가지가 있지만, MyISAM과 InnoDB가 제일 많이 사용된다.

옵션값 출처: lgphone.tistory.com/82

 

MySQL - 자료형과 옵션 (Data Types and Options)

2020/08/11 - [Database/SQL - MySQL] - MySQL - 설치, 워크벤치, 첫 데이터베이스 생성 (Installation, Workbench, Creating First Database) MySQL - 설치, 워크벤치, 첫 데이터베이스 생성 (Installation, Work..

lgphone.tistory.com