MySQL, 1일차
데이터(Data)
: 데이터는 정보를 나타내는 숫자, 문자, 기호의 집합으로 컴퓨터 또는 디지털 장치에서 처리하고 저장할 수 있는 형태
데이터베이스(DataBase)
- 체계적으로 구성된 데이터의 집합이며 특정 목적을 위해 조직화되고 관리
- 정보를 효율적으로 저장, 검색, 업데이트, 관리할 수 있는 기술적인 도구와 구조를 제공
- 데이터베이스를 관리할 수 있는 기술적인 소프트웨어를 데이터베이스 관리 시스템이라고 함
(DataBase Management System)
- https://db-engines.com/en/ranking
DB-Engines Ranking
Popularity ranking of database management systems.
db-engines.com
- 데이터베이스 시스템에서는 관계형 데이터베이스 시스템(RDBMS)이 있으며 이는 SQL을 사용하여 데이터를 관리한다
MySQL
https://dev.mysql.com/downloads/mysql/
MySQL :: Download MySQL Community Server
Select Version: 8.3.0 Innovation 8.0.36 Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source
dev.mysql.com
SQL(Sturctured Query Language)
: 데이터베이스 관리 시스템(DBMS)에서 데이터를 관리하기 위해 사용되는 표준화된 프로그래밍 언어
- 주석문 #, --, /* */, ' ' '
- 대소문자를 구별하지 않음
- 문자열을 저장할 때 ' '(작은 따옴표)만 사용
데이터베이스 확인하기
show databases;
데이터베이스 만들기
create database kdt;
데이터베이스 -> 테이블
테이블
: 데이터를 행(레코드, 로우)과 열(컬럼, 필드)로 스키마에 따라 저장할 수 있는 구조
스키마
: 데이터베이스의 구조와 제약조건에 관한 명세를 기술한 집합
create table 테이블명(
필드명1 데이터타입 제약조건,
필드명2 데이터타입 제약조건,
필드명3 데이터타입 제약조건,
. . .
)
데이터타입
1. 숫자형 타입
- tinyint: 정수 (1byte)
- smallint: 정수 (2byte)
- int : 정수 (4byte), 약 -21억 ~ 약 21억
- bigint : 정수 (8byte)
- float : 부동 소수형 데이터 타입(4byte)
- double : 부동 소수형 데이터 타입(8byte)
- decimal(길이, 소수) : 고정 소수형 데이터 타입
2. 문자형 타입
- char: 고정 길이 데이터 타입(최대 255byte)
- 지정된 길이보다 짧은 데이터를 입력하면 나머지 공간을 채워서 낭비함
- varchar: 가변 길이 데이터 타입(최대 65535byte)
- 지정된 길이보다 짧은 데이터를 입력하면 나머지 공간을 채우지 않아 아낄 수 있음
- text: 문자열 데이터 타입(최대 65535byte)
- longtext : 무제한 문자열 데이터 타입
3. 이진 데이터 타입
- binary, byte : char의 형태의 이진 데이터 타입(최대 255byte)
- varbinary : varchar의 형태의 이진 데이터 타입(최대 65535byte)
4. 날짜 데이터 타입
- date : 날짜(년도 ,월, 일)형태의 데이터 타입(3byte)
- time : 시간(시, 분 ,초)형태의 타입(3byte)
- datetime : 날짜와 시간 형태의 데이터 타입(8byte)
- timestamp : 1970년 1월 1일 0시 0분 0초부터 시작한 ms타입의 시간이 저장(4byte)
제약 조건(constraint)
: 데이터의 무결성을 지키기 위해 데이터를 입력받을 때 실행되는 검사 규칙을 의미
- not null : null 값을 허용하지 않음, 중복값은 허용
- unique : 중복값을 허용하지 않음, null 값을 허용
- primary key: null 값을 허용하지 않음, 중복값을 허용하지 않음, 테이블에 단 하나만 설정, 참조키와 쌍으로 연결됨, 인덱싱을 설정
- default : null 값을 삽입할 때 기본이 되는 값을 설정함
- enum: 원하는 범위를 설정하고 해당 범위의 값만 저장 # 권장하지 않음
- foreign key: 기본키와 쌍으로 연결됨
데이터베이스 선택하기
use kdt;
create table member (
userid varchar(20) primary key,
userpw varchar(20) not null,
name varchar(20) not null,
hp varchar(20) unique not null,
email varchar(50) not null,
gender varchar(10) not null,
ssn1 char(6) not null,
ssn2 char(7) not null,
zipcode varchar(5),
address1 varchar(100),
address2 varchar(100),
address3 varchar(100),
regdate datetime default now(),
point int default 100
);