KDT 과정을 수강하며 그날 배운 내용의 확인과 복습을 위해 꾸준히 글을 써보려고 한다.
사전적인 지식보단 알기 쉽게 풀어놓은 내용으로 구성하고자 한다.
DAY 9 2023.03.15
오늘은 파이썬이 아닌 DBMS (Database Mangemet System) 즉 데이터 베이스를 관리해주는 소프트 웨어에 대해 공부해보았다.
DB란 데이터베이스로 자료를 통합하여 관리하는 집합체,저장소 이다.
DBMS를 사용하는 이유??
-중복된 데이터를 제거 또는 관리
-효율적인 데이터를 처리
-자료를 구조화 시킬 수 있음
-다양한 프로그램을 사용하는 사용자들과 데이터를 공유
DBMS 중 MySQL에 대하여 공부해 보겠다. MySQL은 RDBMS 에 한종류이다. RDBMS란 관계형 데이터 베이스이다.
RDBMS란 데이터가 하나 이상의 열과 행의 테이블에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이를 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 방법이다. 엑셀과 유사하고 SQL 언어를 사용한다.
용어를 먼저 살펴보자
행 : 로우 , 레코드 의 명칭으로 부른다
열 : 컬럼 , 필드
행 과 열을 합친 데이터들 : 테이블
테이블 (Table)
데이터를 행과 열로 스키마에 따라 저장할 수 있는 구조
✔스키마란?
데이터베이스의 구조와 제약조건에 관한 명세를 기술한 집합의 의미
SQL 이란?
파이썬처럼 하나의 프로그래밍 언어이다. 데이터베이스에서 데이터를 정의,조작 제어하기 위해 사용한다.
특징
- 대소문자를 구별하지 않음
- 문자열을 저장할 때 무조건 ''(싱글 쿼드) 만 사용한다.
- 주석 처리시 #는 파이썬과 동일하지만, 범위 주석 처리시 /* */ 로 묶어주어 사용한다.
오늘은 SQL 언어를 사용하는 RDMBS 중 하나인 MySQL 을 사용하고 MySQL Workbench 를 통해 알아보겠다.
MySQL Workbench 는 MySQL을 사용하는 에디터 즉, 구글 코랩 vscode 같은 하나의 툴이다.
이제부터 MySQL을 통해 작성한 코드를 불러오고 그에대한 설명을 붙이겠다.
기본적인 문법과 방법에 대해 알아보자
처음으로 문법 사용시 ';' 을 꼭 뒤에 붙여주자 다른 코드와 구별을 해주고 올바르게 코드를 실행시킬 수 있다.
# 데이터 베이스 확인하기
show databases; # ; workbench에서 사용하면 하나 실행하고 밑으로
#데이터 베이스 생성하기
#create database 데이터 베이스명;
create database kdt;
#데이터베이스 삭제하기
drop database 데이터베이스명;
drop database kdt;
#테이블 만들기
create table 테이블명(
필드명1 데이터타입 제약조건,
필드명2 데이터타입 제약조건,
필드명3 데이터타입 제약조건,
....
필드명n 데이터타입 제약조건
)
데이터 타입(Data Type)
파이썬 처럼 데이터들을 타입에 따라 관리하고 분류할 수 있다.
1. 숫자형 타입
tinyiny: 정수형 데이터 타입(1byte), -128~127 표현
smalliny: 정수형 데이터 타입(2byte), -32768 ~ 32767 표현
mediumint: 정수형 데이터 타입(30yte), -8388608 ~ 8388607 표현
int : 정수형 데이터 타입(4byte) , -21억 ~ 21억
bigint: 정수형 데이터 타입(8byte) ,모제한 표현
float : 부동 소수형 데이터 타입(4byte)
decimal(길이, 소수) : 고정 소수형 데이터 타입(길이 + 1byte)
double : 부동 소수형 데이터 타입(8byte)
2.문자형 타입
char: 고정 길이 데이터 타입(최대 255byte). 지정된 길이보다 짧은 데이터를 입력할 때 나머지 공간을 공백으로 채움 ->왠만하면 쓰지말자 돌아가는 속도가 느려짐
varchar: 가변 길이 데이터 타입(최대 65535byte).지정된 길이보다 짧은 데이트를 입력할 때 나머지 공간은 채우지 않음
text: 문자열 데이터 타입
longtext: 무제한 문자열 데이터 타입
3.이진 데이터 타입
binary 또는 byte :char 형태의 이진 데이터 타입(최대 255byte)
varbinary : varchar의 형태의 이진 데이터 타입(최대 65535byte)
4.날짜 데이터 타입
date : 날짜(년도,월,일) 형태의 데이터 타입(3byte)
time : 시간(시,분,초) 형태의 데이터 타입 (3byte)
datetime : 날짜와 시간 형태의 데이터 타입(8byte)
timestamp: 1970년 1월 1일부터 시작한 ms타입의 시간이 저장(4byte)
제약 조건(constraint)
데이터의 무결성을 지키기 위해 데이터를 입력 받을 때 실행되는 검사 규칙을 의미
not null
-null 값을 허용하지 않음
-중복값을 허용
unique
-중복값을 허용하지 않음
-null 값 허용
primary key
-null 값을 허용하지 않음
-중복값을 허용하지않음
-테이블에 단 하나
foreign key
-pirmary key 를 가진 테이블과 연결하는 역할
default
-null 값을 삽입할 때 기본이 되는 값을 저장할 수 있게 함
enum
-원하는 범위를 설정하소 해당 범위의 값만 저장 #권장하지 않음
#데이터베이스 선택
use 데이터베이스명
use kdt;
#테이블 만들기alter
#테이블 확인하기
#desc 테이블명
#테이블 삭제하기
#drop table 테이블명
drop table member;
#테이블 필드 추가
#alter table 테이블명 add 컬럼명 데이터타입 제약조건
alter table member add mbti varchar(10);
#데이터 필드 수정하기
#alter table 테이블명 modify column 컬럼명 데이터타입 제약조건
alter table member modify column mbti varchar(20);
#데이터 필드 삭제
#alter table 테이블명 drop 컬럼명
alter table member drop mbti;
#데이터 삽입하기
#insert into 테이블명 values (값1,값2,값3 ... ) #테이블 필드수에 맞게
#insert into 테이블명 (필드명1,필드명2,필드명3,...)values(값1,값2,값3 ...)
이제 앞써 데이터베이스를 생성해 줬고 그이후 각각 테이블명을 설정해 주었다. 그이후 테이블 안에 데이터를 넣어보자
코드가 길어 전부 첨부하진 못했지만 위에 예시처럼 튜플처럼 필드의 값을 대응시켜 데이터값을 추가해줄 수 있다.
#데이터 삭제하기
#delete from 테이블명;
#delete from 테이블명; where 조건절;
데이터를 삭제할 수 있다. 그렇지만 MySQL은 DB를 구축하고 관리하는 시스템이다. 그런의미로 데이터를 삭제할 때는 신중을 기하여야 한다.
#데이터 수정하기
#update 테이블명 set 필드명1=값1,필드명2=값2 .....;
#update 테이블명 set 필드명1=rkqt1,필드명2=값2 .... where 조건절;
데이터를 삭제하지 않고 조건 또는 필드=값 형태로 대응하여 수정할 수있다. 이또한 delete 와 마찬가지로 조심하여 사용하여야 한다.
그렇지만 여기서 update를 insert into 처럼 (필드명1,필드명2,...) values (값1,값2,.... ) 처럼 대응시켜 한번에 할 수 는 없다.
하나하나 = 을 사용하여 대응시켜 주어야 한다.
오늘은 파이썬이 아닌 다른언어를 처음으로 나갔다. 새로운 언어인만큼 잘배워보자
'코딩공부 > DBMS' 카테고리의 다른 글
DBMS(MySQL)_문자열함수 (3) | 2023.03.23 |
---|---|
DBMS(MySQL)_서브 쿼리 (sub Query) (0) | 2023.03.23 |
DBMS(MySQL)_데이터 정규화 (0) | 2023.03.23 |
DBMS(MySQL) _ 조인(join) (0) | 2023.03.23 |
DMBS(MySQL)_연산자,정렬문,조건문 (2) | 2023.03.23 |