상세 컨텐츠

본문 제목

MYSQL 데이터베이스

MySQL

by 주초위왕 2023. 10. 12. 12:26

본문

DML (Data Manipulation Language) INSERT(레코드 입력), UPDATE(변경), DELETE(삭제), MERGE(합병) ** 테이블 내의 레코드나 컬럼 을 다루는 명령어
DDL (Data Definition Language) CREATE(생성), ALTER(수정), DROP(삭제), TRUNCATE(잘라내기),
DCL (Data Control Language) GRANT(권한 주기),  REVOKE(권한 뺏기)
TCL (Transaction Control Language) COMMIT(확정), ROLLBACK(취소)
DQL (Data Query Language) SELECT

데이블 생성

CREATE TABLE 테이블명 (

필드명 타입 제약조건,

필드명 타입 제약조건,

...

)


- DATABASE 선택 -- USE 데이터베이스명

 

CREATE TABLE phonebook(

id int PRIMARY KEY AUTO_INCREMENT,

name varchar(80) NOT NULL,

phonenum varchar(20) DEFAULT '010-0000-0000',

email varchar(100),

regdate datetime DEFAULT now()

);

 

- ID -

int : 이 컬럼의 테이터 타입은 정수형 입니다

PRIMARY KEY  : 주요 키로 설정하며, 각 레코드를 고유하게 식별하는 역할을 합니다.

중복된 값이 들어갈 수 없다.

AUTO_INCREMENT : 이 컬럼의 값이 자동으로 1씩 증가하는 속성입니다. 주로 식별자나 일련번호 역할을 하는 컬럼에 사용됩니다.

 

- NAME -

VARCHAR(80) : 데이터 타입은 최대 80자의 가변 길기 문자열 입니다.

NOT NULL : 이 컬럼은 값이 반드시 입력되어야 하는 속성입니다. NULL값이 들어갈 수 없다.

 

- EMAIL -

VARCHAR : 데이터 타입은 최대 20자의 가변 길이 문자열 입니다.

별도의 속성이 명시되지 않았기 때문에 이 컬럼은 NULL값을 허용합니다.

 

- PHONENUM -

VARCHAR(20) : 이 컬럼의 값은 최대 20자로 문자열 입니다. 

DEFAULT : '010-0000-0000' : 만약 값을 지정하지 않고 렠코드를 추가할 경우, 이컬럼에는 기본적으로 '010-0000-0000' 이라는 값이 저장됩니다.

 

    • regdate:
      • datetime: 이 컬럼의 데이터 타입은 날짜와 시간(datetime)을 저장하는 타입입니다.
      • DEFAULT now(): 이 속성은 MySQL에서 올바르지 않습니다. 올바른 방법은 DEFAULT CURRENT_TIMESTAMP를 사용하는 것입니다. 이 속성을 사용하면, 레코드가 추가될 때 현재의 날짜와 시간이 이 컬럼에 자동으로 저장됩니다.
  1. 오류 및 수정사항:
    • regdate 컬럼의 DEFAULT now()는 MySQL에서 올바르지 않습니다. 이를 DEFAULT CURRENT_TIMESTAMP로 수정해야 합니다.

 

 

CREATE TABLE items(

x id int (10) PRIMARY KEY,

content varchar (200),

created_on date, due_date datetime,

use int(1) NOT NULL DEFAULT 1

);

 

  1. 컬럼 및 속성:
    • x id:
      • 이 부분은 올바르지 않은 구문입니다. 컬럼 이름을 'x id'로 설정하려고 한 것 같지만, 이렇게 공백을 포함한 이름은 사용할 수 없습니다.
      • int(10)은 정수 데이터 타입을 나타냅니다. 괄호 안의 숫자는 표시 너비를 나타내며, 실제 저장 크기나 범위에는 영향을 주지 않습니다.
      • PRIMARY KEY는 해당 컬럼을 주요 키로 지정합니다. 주요 키는 테이블의 각 로우를 고유하게 식별하는 역할을 하며 중복 값이나 NULL 값을 허용하지 않습니다.
    • content:
      • varchar(200)은 최대 200자의 가변 길이 문자열을 저장할 수 있는 데이터 타입입니다.
    • created_on:
      • date는 날짜를 저장하는 데이터 타입입니다. 이 데이터 타입은 연도, 월, 일 정보만을 저장합니다.
    • due_date:
      • datetime은 날짜와 시간 정보를 모두 저장하는 데이터 타입입니다.
    • use:
      • int(1)은 정수 데이터 타입을 나타냅니다. 이 경우, 괄호 안의 숫자는 표시 너비에만 영향을 줍니다.
      • NOT NULL은 해당 컬럼에 NULL 값을 허용하지 않는다는 것을 나타냅니다.
      • DEFAULT 1는 해당 컬럼의 기본값을 1로 설정한다는 것을 의미합니다.
  2. 오류 및 수정사항:
    • x id: 'x id'는 올바르지 않은 컬럼명입니다. 'x_id' 또는 다른 유효한 컬럼명으로 변경해야 합니다.
    • use: 'use'는 SQL에서 사용하는 예약어입니다. 컬럼 이름으로 사용하면 혼동을 일으킬 수 있으므로 다른 이름을 사용하는 것이 좋습니다.

 


데이터 타입

  1. 숫자 타입 정수 : tinyint, smallint, meduimint, int, bigint ... 소수 : float, double
  2. 문자열 타입 텍스트 : char, varchar, text char(10) varchar(10) -> 최대 65,535 Byte -> varchar(65535) 바이너리 : binary, varbinary 열거 : enum enum('남자', '여자')

UNIQUE : 중복된 값을 허용하지 않는다

NOT NULL : NULL값을 허용하지 않겠당.(NULL값을 사용 불가)

일반적으로 컬럼에 아무런 값도 입력되지 않으면 기본적으로 NULL 값이 할당됩니다.

그러나 NOT NULL 제약 조건이 있는 컬럼은, 값을 지정하지 않고 데이터를 삽입하려 할 때 에러가 발생합니다.

따라서, 이러한 컬럼에는 반드시 값을 지정해야 합니다.

반응형

관련글 더보기

댓글 영역