테이블 생성과 제약 사항 연습 - 7

목차

    테이블 생성과 제약 사항 연습

    1. 데이터 베이스 생성 방법

    CREATE DATABASE [database_name];
    CREATE DATABASE mydb;

    2. 테이블 생성 방법 및 개념

    테이블이란

    • MySQL에서 테이블(table)은 데이터를 저장하는 기본적인 단위.
    • 테이블은 열(column)과 행(row)으로 이루어져 있으며, 각 열은 데이터 유형을 나타내는 데이터 형식(data type)을 가지고 있다.

    테이블은 다음과 같은 정보를 포함할 수 있다.

    • 테이블 이름
    • 열 이름
    • 열 데이터 형식
    • 빈 값 허용 여부
    • 기본값
    • 제약 조건 (Primary Key, Unique Key, Foreign Key 등)
    • 인덱스
    SQL (Structured Query Language)은 데이터베이스 관리 시스템 (DBMS)에서 데이터를 관리하고 검색하기 위해 사용되는 표준 데이터베이스 언어입니다. (안시 쿼리)
    create database mydb;
    
    use mydb;
    
    -- 테이블 생성
    create table student(
    	student_id int,
        name varchar(50) not null,
        grade int not null,
        major varchar(50) not null
    );
    
    select * from student;
    desc student;
    
    -- 과목 테이블 생성
    create table subject(
    	subject_id int,
        subject_name varchar(50) not null,
        credit int not null,
        department varchar(50),
        professor char(50) not null
    );
    
    SELECT * FROM subject;

     

    이미 생성된 테이블에 PK(기본키 - 제약 조건) 추가 해보기

    기본키를 추가하면 해당 열에 대한 중복 데이터가 저장될 수 없으며, 데이터 검색 속도가 향상됩니다. 기본키는 테이블 내에서 고유한 값이어야 하며, 해당 열에 대해 NOT NULL 제약 조건이 설정되어 있어야 합니다.
    desc student; 
    -- 이미 생성된 테이블에 기본 키 추가 하는 쿼리 사용방법 
    ALTER TABLE student ADD PRIMARY KEY(student_id); 
    -- 사전기반지식 : 특정 컬럼을 기본키로 만들게 되면 중복된 데이터를 허용 못하고 
    -- NULL 값이 있어서는 안됨 
    
    -- 먼저 쿼리구문 작성해보기 
    -- subject 테이블에 PK 추가 대상 - sbject_id 
    -- 제약 확인
    ALTER TABLE subject ADD PRIMARY KEY(subject_id);
    
    desc subject;
    • DESC 명령어는 특정 테이블의 구조(스키마) 정보를 출력하는 명령어.
    • DESC는 DESCRIBE 의 약어로, 테이블의 구조 정보를 보다 간략하게 확인할 수 있도록 지원하는 명령어.

    테이블 생성 시 PK를 추가하는 방법

    -- 테이블을 삭제하는 명령어 확인 
    DROP TABLE student; 
    DROP TABLE subject;
    
    
    -- 학생 테이블 생성 PK 추가 
    CREATE TABLE student(
    	student_id INT PRIMARY KEY, 
      name VARCHAR(50) NOT NULL, 
      grade INT NOT NULL, 
      major VARCHAR(50) NOT NULL
    ); 
    
    desc student; 
    
    
    CREATE TABLE subject(
    	subject_id INT PRIMARY KEY,
      subject_name VARCHAR(50) NOT NULL, 
      credit INT NOT NULL, 
      department VARCHAR(10) NOT NULL, 
      professor VARCHAR(20) NOT NULL
    ); 
    
    desc subject;

    3. SQL 의미와 사용 방법

    MySQL에서 가장 많이 사용하는 데이터 타입

    1. 숫자 타입: INT, BIGINT, FLOAT, DOUBLE
    2. 문자열 타입: VARCHAR, CHAR, TEXT, BLOB
    3. 날짜/시간 타입: DATE, TIME, DATETIME, TIMESTAMP
    4. 불리언 타입: BOOLEAN, BOOL
    데이터 타입은 테이블의 컬럼에 저장될 데이터의 형식을 결정하므로, 정확한 데이터 타입을 선택하는 것이 중요합니다. 이를 통해 데이터베이스의 성능을 최적화하고, 데이터 무결성을 보장할 수 있습니다.

    숫자 타입은 정수형(INT, BIGINT)과 실수형(FLOAT, DOUBLE)으로 구분됩니다. 정수형은 소수점 이하의 값을 저장하지 않으며, 실수형은 소수점 이하의 값을 저장할 수 있습니다. 문자열 타입은 고정 길이(CHAR)와 가변 길이(VARCHAR)로 구분됩니다. 고정 길이는 저장할 데이터의 길이가 일정하며, 가변 길이는 저장할 데이터의 길이가 가변적입니다.

    날짜/시간 타입은 날짜(DATE), 시간(TIME), 날짜와 시간(DATETIME, TIMESTAMP) 등으로 구분됩니다. 불리언 타입은 참(TRUE, 1)과 거짓(FALSE, 0) 두 가지 값을 저장할 수 있습니다

    TEXT는 대부분의 문자열 데이터를 저장하는 데 사용됩니다

    BLOB는 이진 데이터를 저장하는 데 사용됩니다. 최대 크기는 TEXT와 동일하지만, TEXT는 문자 집합(Character Set)과 관련된 처리를 합니다. BLOB은 이진 데이터로 간주되어 문자 집합에 영향을 받지 않습니다.

     

    -- 예약어는 기본적으로 테이블 이름으로 사용할 수 없다.
    -- 하지만 강제적으로 ``를 사용해서 테이블 이름이라고 명시할 수 있다.
    create table `order`(
    	id int primary key,
        price bigint,
        customer_order varchar(50),
        product_name varchar(20) not null,
        quantity int not null,
        order_data date not null 
    );
    
    desc `order`;
    -- 도전 과제 : 위 형식에 맞는 insert 를 진행하세요
    insert into `order` (id, price, customer_order, product_name, quantity, order_data)
    values (1, 5500, 'or123', '유가네 닭갈비 볶음밥', 2, '2024-05-30');

    date 형식을 맞추지 않아도 자동으로 인식하긴함

     

    도전 과제 1

    employee 테이블을 생성하며, id, name, age, department 네 개의 열(column)을 포함.
    name 는 null 값이 들어갈 수 없습니다.
    id 열은 기본키(Primary Key)로 설정.
    데이터 타입은 직접 결정하세요.
    CREATE TABLE employee (
      id INT PRIMARY KEY,
      name VARCHAR(50) NOT NULL,
      age INT,
      department VARCHAR(50) NOT NULL
    );

     

    도전 과제 2

    customer 테이블 생성
    id, name, email, address 네 개의 열을 포함
    - name, address 는 null 값이 있으면 안됨.
    id 열은 기본키(Primary Key)로 설정 데이터 타입은 직접 선정
    CREATE TABLE customer (
      id INT PRIMARY KEY ,
      name VARCHAR(50) NOT NULL,
      email VARCHAR(50),
      address VARCHAR(100) NOT NULL
    );

    MySQL 기본 목차로 돌아가기

     

    'MySQL > 정리' 카테고리의 다른 글

    SELECT 구문과 조건절 - 9  (0) 2024.05.31
    INSERT 구문과 제약 사항 - 8  (0) 2024.05.30
    테이블에 데이터 입력 - 6  (0) 2024.05.29
    데이터베이스 모델링 - 5  (0) 2024.05.29
    데이터베이스 구축 절차 - 4  (0) 2024.05.28