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)에 없다면 담을 수 없음
-------------------------------------------------------------------------
'MySQL' 카테고리의 다른 글
파이썬과 MySQL연동 cursor, execute (2024-03-28) (0) | 2024.03.28 |
---|---|
문자열 함수, union, 서브쿼리, join, 뷰(view), 사용자 (2024-03-27) (0) | 2024.03.27 |
집계(그룹) 함수, 정규화, join (2024-03-26) (0) | 2024.03.26 |
필드와 데이터 수정, 삽입, 삭제 등 (2024-03-26) (0) | 2024.03.26 |