[22.10.26] 5일차 [데이터베이스] MySQL 워크벤치, 샘플DB 설치, DB, table 생성하기

W·2022년 10월 26일
0

국비

목록 보기
8/119

자료 출력하기

select * → 전체
from city

select id, name
from city

select *
from city
where 조건문;

hostname : 접속한 DBMS가 있는 IP입력
127.0.0.1 → 자기 자신 IP

workbench

  • 설정
[Edit] - [Preferences] - 왼쪽 [SQL Editor] 클릭
오른쪽 하단 [Safe Updates] 체크 해제 후 OK
- 이유 : 원활한 update와 delete를 위함

  1. 첫번째 번개 : 패드에 있는 모든 구문을 전체 실행
  2. 커서 번개 : 커서가 있는 라인의 커리구문만 실행 → 단축키 : ctrl + enter

샘플 DB 생성하기

emloyees, hr 샘플 파일

employees.sql

create database employees;
create table---;
create table---;
insert----;
insert----;

hr.sql

create database hr;
create table --- ;
create table ---;
insert ----;

  • TUI 환경에서 employees DB 생성
디렉토리 변경 후 mysql 접속 후
sql 파일 실행하기

- cd : change 디렉토리
- source : sql 스크립트 파일 실행하는 명령어
  • GUI 환경에서 hr DB 생성
    workbench 환경에서 사용

    hr.qsl 파일 열어서 첫번째 번개 버튼 눌려 전체 실행하면 DB 생성됨

데이터 베이스 필수 용어

- 데이터베이스 = 스키마(schema)
- 객체(object) - "table", view, index
- 데이터 하나하나 : 필드값, 레코드값

용어설명
데이터베이스(DB)조직화된 정보들의 모음 또는 데이터 집합.
데이터베이스는 고유한 이름을 가져야 함.
DBMSDatabase Management System(데이터베이스 관리 시스템)의 약자로 데이터베이스를 관리하는 시스템 또는 프로그램.
DBMS의 종류로 Oracle, MySQL, SQL Server, MariaDB 등이 있음.
테이블(Table)데이터베이스 내에서 데이터를 저장할 때 가장 많이 사용하는 객체 유형. 열(column)과 행(row)로 이루어져 있음.
객체(Object)사람, 사물, 장소, 개념, 사건과 같은 유무형의 정보를 가지고 있는 독립적인 실체.
객체 종류는 테이블, 뷰, 인덱스 등이 있음. 데이터베이스 내에서 가장 많이 사용되는 객체는 테이블임
열(column)컬럼 또는 속성(Attribute)이라고도 함.
테이블에서 세로 부분을 의미하며, 하나의 테이블은 여러 개의 열(column)으로 구성되어 있음.
열 이름(column name)각 열(column)을 구분하기 위한 이름.
열이름 또는 컬럼명은 테이블 내에서 고유해야 함.
행(row)로우 또는 레코드라고도 함.
테이블에서 가로에 해당하는 데이터 전체를 의미함
SQL사람과 DBMS가 소통하기 위해 사용하는 언어.
기본키(Primary key)테이블의 행을 구분해 줄 수 있는 대표 컬럼에게 부여하는 제약 조건.
기본키가 설정된 컬럼에는 중복값, 빈값 들어올 수 없음.
외래키(Foreign key)테이블과 테이블을 연결해 주는 제약조건.
스키마(Schema)DBMS들마다 스키마의 의미는 다르게 사용되고 있음.
스키마란 데이터를 담는 그릇을 의미함.
MySQL – 스키마가 데이터베이스와 동일한 의미로 사용됨.
Oracle – 스키마가 유저와 동일한 의미로 사용됨.

데이터베이스 구축 절차

데이터베이스 생성

쇼핑몰 데이터 베이스 구축하기

create database 데이터베이스명;
create schema 스키마명;

<순서>
1. DB 생성
2. table 생성
3. 데이터 삽입/수정/삭제
4. 데이터 조회

  1. DB 생성
    create schema shopdb;

  2. table 생성
    생성 전 설계부터 하기

    [문법] SQL> create table 테이블명
          (컬럼명1 데이터타입(컬럼사이즈),
          [컬럼명2 데이터타입(컬럼사이즈),
           컬럼명3 데이터타입(컬럼사이즈)]);
    [문법] SQL> create table 테이블명
          (컬럼명1 데이터타입(컬럼사이즈) default 기본값,
          [컬럼명2 데이터타입(컬럼사이즈),
           컬럼명3 데이터타입(컬럼사이즈)]);
    [문법] SQL> create table 테이블명
          (컬럼명1 데이터타입(컬럼사이즈) 제약조건유형,
          [컬럼명2 데이터타입(컬럼사이즈),
          컬럼명3 데이터타입(컬럼사이즈)]);

    데이터 타입

    1. 숫자 데이터 타입
      ✔ SMALLINT : 정수형 데이터 타입(2 byte)
      -32,768 ~ 32,767
      ✔ INT : 정수형 데이터 타입(4 byte)
      -2,147,483,648 ~ 2,147,483,647
      ✔ BIGINT : 정수형 데이터 타입(8byte)
      무제한 수 표현 가능
      ✔ FLOAT(p) : 부동 소수형 데이터 타입(4 byte)
      소수점 아래 7자리까지 표현 가능

    2. 문자데이터 타입
      ✔ CHAR(n) : 고정 길이 문자형
      n : 1~255 byte까지 지정 가능
      ✔ VARCHAR(n) : 가변 길이 문자형
      n : 1~65,535 byte까지 지정 가능
      ✔ LONGTEXT : 대용량 문자열 데이터 타입
      ✔ LONGBLOB : 대용량 바이너리 데이터 타입, 이미지 등

    ** a char(10)
    1자리가 들어와도 10자리만큼 공간을 잡음
    성능이 우수(자리가 몇자리인지 계산할 필요 없음)
    공간 효율 떨어짐
    자리수가 정해져 있는 핸드폰 번호 등
    ** b varchar(10)
    들어오는 자리만큼만 공간을 잡음
    성능이 낮음(자리가 몇 자리인지 알아보고 공간 확보)
    공간 효율 높음
    
    보통은 varchar 많이 사용함
    성능은 상대적인 것이고, 둘 다 빠름

    주민번호, 전화번호는 문자 타입으로 선언해야 함. 첫숫자 0 인식가능

    1. 날짜/시간 데이터 타입
      ✔ DATE : 날짜 데이터 타입
      YYYY-MM-DD 형식으로 사용됨.
      ✔ DATETIME : 날짜/시간 데이터 타입
      YYYY-MM-DD HH:MM:SS 형식으로 사용됨

0개의 댓글