본문 바로가기

MySQL

MySQL 다운로드, 타입과 테이블 (2024-03-25)

1. 데이터(Data)

- 데이터는 정보를 나타내는 숫자, 문자, 기호의 집합으로
- 컴퓨터 또는 디지털 장치에서 처리하고 저장할 수 있는 형태

 


2. 데이터베이스(DataBase)

- 체계적으로 구성된 데이터의 집합이며 특정 목적을 위해 조직화되고 관리한다.
- 정보를 효율적으로 저장, 검색, 업데이트, 관리할 수 있는 기술적인 도구와 구조를 제공한다.
- 데이터베이스를 관리할 수 있는 기술적인 소프트웨어를 데이터베이스 관리 시스템이라고 한다.(DataBase ManagementSystem)
- https://db-engines.com/en/ranking
- 데이터베이스 시스템에서는 관계형 데이터베이스 시스템(RDBMS)이 있으며 이는 SQL을 사용하여 데이터를 관리한다.

 

3. MySQL 
- 설치 주소 : https://dev.mysql.com/downloads/installer/

 

4. SQL(Structured Query Language)
- 데이터베이스 관리 시스템(DBMS)에서 데이터를 관리하기 위해 사용되는 표준화된 프로그래밍 언어
- 주석문 : #, --, /* */, ''' 
- 대소문자를 구별하지 않음
- 문자열을 저장할 때 ''(작은 따옴표)만 사용한다 'apple' O / "apple" X
- sql = " select userid, userpw from member where userid = 'apple', userpw = '1111' "

 

------------------------------------------------------------------------------------

#데이터베이스 안에 테이블이 필요함

- 테이블 : 데이터를 행(레코드 또는 로우 라고 부름)과 열(컬럼 또는 필드라고 부름)로 스키마에 따라 저장할 수 있는 구조 
- 스키마 : 데이터베이스의 구조와 제약조건에 관한 명세를 기술한 집합 

 

  • 테이블을 만드는 방법

create table 테이블명(

필드명1 데이터타입 제약조건,
        필드명2 데이터타입 제약조건,
        필드명3 데이터타입 제약조건,
        ... 
)
-----------------------------------------------------------------------------------

- 데이터 타입

 

1. 숫자형 타입
- tinyint : 정수(1byte) # 하나 저장될 때 마다 1byte 소모됨
- smallint : 정수(2byte) 
- int : 정수(4byte) # 많이 쓰는 타입, 약 -21억~ 21억까지 들어갈 수 있음
- bigint : 정수(8byte)

- float : 부동 소수형 데이터 타입(4byte)
- double : 부동 소수형 데이터 타입(8byte) # 많이 쓰는 타입

- decimal(전체자릿수, 소수점자릿수) : 고정 소수형 데이터 타입 # 해당 길이만큼의 실수를 만듬

DECIMAL(7,2)  : -99999.99 ~ 99999.99 까지


--------------------------------------------


2. 문자형 타입
- char : 고정 길이 데이터 타입 (최대 255byte) 
- 지정된 길이보다 짧은 데이터를 입력하면 나머지 공간을 채워서 낭비함


- varchar : 가변 길이 데이터 타입 (최대 65535byte) 많이 쓰는 타입
- 지정된 길이보다 짧은 데이터를 입력하면 나머지 공간을 채우지 않아 아낄 수 있음  

- text : 문자열 데이터 타입 (최대 65535byte)
- longtext : 무제한 문자열 데이터 타입 


----------------------------------------------


3. 이진 데이터 타입 # 사진 같은 것은 DB에 경로를 복사해서 저장해둠 
- 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 값을 삽입할 때 기본이 되는 값을 설정함 (빈 칸으로 두면 default 값이 자동으로 삽입 됨)
- enum : 원하는 범위를 설정하고 해당 범위의 값만 저장 # 권장하지 않는 방법 
           예시) 성별을 입력할 때 남자 or 여자 만 범위로 두고 나머지 입력값을 넣으면 오류가 발생


- foeign key : 기본 키와 쌍으로 연결 됨
- 주 테이블에 primary 키를 걸면 서브 테이블에서 foeign key를 걸 수 있게 되고 
- 주 테이블에 없는 데이터는 서브테이블에 담을 수 없게 됨
  예시 ) 헬스장에 회원 등록(주 테이블)이 되어 있어야 프로필(서브 테이블)을 기록할 수 있는데


- 프로필 등록할 때 사용할 아이디(foegin key)가 회원 등록 아이디(primary key)에 없다면 담을 수 없음

-------------------------------------------------------------------------