오늘부터는 MySQL 공부를 합니다.
이번 공부는 생활코딩을 통해서 공부를 진행했고 또 정리해서 올릴 예정입니다.
MySQL은 cheat sheet가 있을만큼 굳이 모든것을 외울 필요는 없는데요.
리눅스 Bandit 공부한 것처럼 명령어를 계속 정리하면서 공부하려고 합니다.
먼저 사용환경부터 갖춰야겠죠?
https://opentutorials.org/course/3161/19532
이 영상을 보면서 설치하시면 됩니다.
바로 시작하겠습니다.
먼저
C:\>cd Bitnami\wampstack-7.3.15-2\mysql\bin
이렇게 작성해서 MySQL을 실행하기 위한 폴더에 들어갑시다.
(MySQL을 실행하기까지의 과정은 영상에 나와있을겁니다.)
들어간 뒤
mysql -uroot -p
이렇게 작성하면 MySQL을 실행할 수 있습니다.
여기부터는 이제 스크린샷으로 봅시다.
실행하면 이렇게 뜨게 됩니다.
이제 시작해보죠.
MySQL의 구조는 위의 사진처럼 생겼다고 합니다.
데이터베이스를 만들고
그 안에 여러개의 표를 생성할 수 있으며
또, 표 안에 여러개의 데이터를 입력할 수 있습니다.
데이터베이스(Database)
따라서 제일 먼저 해야할 일은 데이터베이스를 만드는 것이겠죠.
데이터베이스를 만드는 명령어는
CREATE DATABASE [데이터베이스 이름];
입니다.
또 만들 수 있으면 지울수도 있어야겠죠.
DROP DATABASE [데이터베이스 이름];
이렇게 만들어진 데이터베이스를 지울 수도 있습니다.
그런데, 내가 만들었던 데이터베이스들은 어떻게 확인할까요?
SHOW DATABASES;
이 명령어를 통해서 현재 만들었던 데이터베이스를 모두 확인할 수 있습니다.
위와 같이 사용할 수 있습니다.
CREATE DATABASE First; 로 First라는 데이터베이스를 만들었죠.
지우고
다시 만들고
목록을 봤네요.
이제 여러분은 데이터베이스를 만들 수 있게 되었습니다.
표(Table)
다음은 데이터베이스 내부에 표(Table)을 만들 차례입니다.
그 전에 여러개의 데이터베이스가 있을 때 어떤 곳에 만들지 정해줘야합니다.
그때 쓰는 명령어가
USE [데이터베이스 이름];
입니다.
이 명령어를 통해 데이터베이스를 선택해 줄 수 있습니다.
이제부터 표를 만들기 시작할건데 여기서부터 살짝 복잡해집니다.
표를 생성하기 위해서 위의 사진에 id title description created에 해당하는 것을 만들고 설정해줘야되기 때문입니다.
이런 방식으로 말이죠.
CREATE TABLE [표 이름]([필드명1] [타입], [필드명2] [타입], [필드명3] [타입], ......);
이 명령어를 통해 [표 이름]으로 된 표를 만들 수 있습니다.
또한 [필드명1] [필드명2]가 id, title이 될 것이라고 예상할 수 있습니다.
[타입]은 필드 각각이 구성할 내용에 따라서 달라집니다.
번호라면 숫자만 입력하고, 이름이라면 문자만 짧게 입력하고, 내용은 문자, 숫자로 길게 입력하고... 이런 방식으로 말이죠.
또한 공백으로 남겨져서는 안된다, 남겨도 된다와 같은 설정과, 입력 순서에 따라 자동으로 번호가 부여되는 설정도 존재합니다.
우선 입력 방식은 위와 같습니다.
원하는 데이터형을 찾아서 데이터형(size)의 방식으로 작성하면 됩니다. 위에 작성했던 코드처럼 말이죠.
그 뒤에 필드는 각각 여러개의 제약 조건을 가질 수 있습니다.
예를 들어 NOT NULL값이 붙은 필드는 데이터가 비어진 채로 저장될 수 없습니다.
또한 AUTO_INCREMENT를 붙여 자동으로 번호가 순서대로 이어지게 저장할 수도 있습니다.
자 이렇게 여러개의 필드를 포함하여 표를 만든 뒤에는 여러가지 데이터를 넣어야겠죠?
그 전에 필드가 제대로 만들어졌는지 확인하겠습니다.
DESC [표 이름];
이렇게 작성해주시면 각 필드가 어떤 타입인지, 어떤 제약조건을 가지고 있는지 알 수 있습니다.
DESC topic;
잘 들어있다는 것, 내가 잘 만들었다는 것, 이름을 잘못 썼다는것을(?)알 수 있었네요...
각설하고 데이터를 넣어보죠.
INSERT INTO [표이름] ( [필드1], [필드2], ..., [필드마지막] )
VALUES( '[필드1data]', '[필드2data]', ..., '[필드마지막data]' );
이렇게 작성해주시면 됩니다.
제가 표에 넣은 내용은 아래처럼이 됩니다.
설명하자면
title MySQL
description MySQL is...
creater NOW() 현재 시간을 나타내는 함수입니다.
author egoing
progile developer
이렇게 들어가는게 되겠네요.
이제! 데이터를 넣는 것까지 해 보았습니다.
여러개의 데이터를 넣은 다음 표가 어떻게 만들어졌는지 확인해보겠습니다.
SELECT * FROM [표 이름];
이렇게 작성하게 되면
[표 이름] 으로 된 표에서 모든 필드와 데이터가 출력되게 됩니다.
다 만들어졌습니다.
이렇게 만들 수 있습니다.
오늘은 여기까지 하겠습니다.
--------------------------명령어 정리----------------------------
mysql -uroot -p
: MySQL을 실행한다.
CREATE DATABASE [데이터베이스 이름];
: [데이터베이스 이름]으로 된 데이터베이스를 만든다.
DROP DATABASE [데이터베이스 이름];
: [데이터베이스 이름]으로 된 데이터베이스를 지운다.
SHOW DATABASES;
: 현재까지 생성한 데이터베이스를 모두 보여준다.
USE [데이터베이스 이름];
: [데이터베이스 이름]을 사용하기 위해 선택한다.
CREATE TABLE [표 이름]([필드명1] [타입], [필드명2] [타입], [필드명3] [타입], ......);
: 각각의 필드의 자료형과 제약 조건이 설정된 [표 이름]의 표를 만든다.
DROP TABLE [표이름];
: [표이름]을 삭제한다.
DESC [표 이름];
: [표 이름]의 필드의 이름, 자료형, 제약조건을 모두 확인한다.
INSERT INTO [표이름] ([필드1], [필드2], ..., [필드마지막]) VALUES('[필드1data]', '[필드2data]', ..., '[필드마지막data]');
: [표 이름]에 각 필드마다의 데이터를 삽입한다.
SELECT * FROM [표 이름];
: [표 이름]을 선택하여 전체 내용을 보여준다.
ALTER TABLE [표이름] MODIFY [필드명] [자료형] [제약조건];
: [표이름]의 [자료형]인 [필드명]에 [제약조건]을 추가한다.
제약 조건
NULL : 해당 필드의 데이터 값이 공백인 상태도 허용된다.
NOT NULL : 해당 필드의 데이터 값이 공백인 상태가 불가능하다.
AUTO_INCREMENT : 자동으로 값을 증가시킨다.
UNIQUE : 필드에서 데이터가 중복될 수 없지만, 공백인 상태가 가능하다.
PRIMARY KEY([필드명]); : [필드명]의 각 값이 중복될 수 없으며, 공백인 상태가 불가능하다.
'Web-기초 > MySQL' 카테고리의 다른 글
MySQL 기초(3)完 (0) | 2020.04.11 |
---|---|
MySQL 기초(2) (0) | 2020.04.11 |