웹개발/MySQL

[MySQL] 생활코딩 MySQL 1~14 실습

ruming 2021. 1. 27. 20:41

 

생활코딩의 강의를 바탕으로 MySQL을 공부해보자.

MySQL 재생목록

 

 

4)MySQL의 구조 ~ 13)DELETE

 


 

4. MySQL의 구조

 

관계형 데이터베이스는 스프레드시트와 비슷한 구조를 가지고 있다.

→ 정보가 표에 저장됨.

 

중요한 단어 몇가지를 알아보자.

 

데이터베이스 : 연관된 표들을 그룹핑한 것.

스키마 : 표들을 서로 그룹핑할 때 사용하는 일종의 폴더 (=데이터베이스)

데이터베이스 서버 : 스키마가 저장된 장소

 

 

*스키마와 데이터베이스가 완전히 같은 것인지 헷갈려서 찾아보았다.

스키마와 데이터베이스의 차이

MySQL에서의 스키마와 데이터베이스

 


5. 서버 접속 - 6. 스키마의 사용

 

데이터베이스의 장점 : 보안 / 권한기능 

 

mysql 사용자 추가하기

 

[MySQL 접속]

mysql -uroot -p

 

[데이터베이스 생성]

mysql create database

CREATE DATABASE 데이터베이스이름;

 

opentutorials라는 이름의 데이터베이스를 생성했다.

 

[데이터베이스 삭제]

mysql delete database

DROP DATABASE 데이터베이스이름;

 

[데이터베이스 생성 확인]

how to show database list in mysql

SHOW {DATABASES | SCHEMAS};

 

opentutorials가 생성된 것을 확인할 수 있다.

 

# USE opentutorials


7. SQL과 테이블의 구조

 

SQL = Structured Query Language

 

 table(표)

row(record, 행)와 column(열)으로 이루어져 있다.

column : 데이터의 구조

row : 데이터 자체

 


8.1 테이블의 생성 ~ 8.2 테이블의 생성

 

[테이블 생성]

create table in mysql

*명령어 팁 : cheat sheet 이용

 

기본 명령어

 

id값이 없으면 수정이나 삭제를 할 수 없다.

INT(m) → 저장이 아니라 얼마까지 노출시키는지에 대한 수이다.

보통 11을 많이 쓴다.

 

데이터타입

VARCHAR(size)

사이즈를 지정할 수 있다. 지정한 size 이외는 버린다.

255개의 문자까지 허용한다.

 

TEXT(size)

65,535개의 문자까지 허용한다.

 

DATETIME

날짜와 시간을 모두 표현할 수 있다.

 

제약조건

NOT NULL

공백을 허용하지 않는다.

 

NULL

공백을 허용한다.

 

PRIMARY KEY

중복을 방지

id값은 중복되면 안된다.

 

속성

AUTO_INCREMENT

자동으로 id값이 늘어나게 한다.

 

새로운 테이블 topic을 생성했다.

 

SHOW TABLES;

테이블 내용을 확인할 수 있다.

 

에러 내용을 확인하고 싶을 때는 다음과 같이 명령한다.

SHOW WARNINGS\G

 

패스워드 변경

SET PASSWORD = PASSWORD('111111');


10. INSERT

 

DESC topic;

테이블의 구조를 보여준다.

 

위와 같이 보여준다.

 

컬럼명에 description이 desciption으로 오타가 있는 걸 깨달았다.

 

컬럼명 변경

#ALTER TABLE 테이블명 CHANGE 기존컬럼명 변경할컬럼명 컬럼타입;

 

잘 변경된 것을 확인했다.

 

컬럼에 대한 명령어

 

mysql create row

 

INSERT INTO table_name (column1, column2, ...)

VALUES (value1, value2, ...)

컬럼명을 변경하기 전이라 desciption으로 썼다.

 

how to read row in mysql

 

SELECT * FROM topic;

데이터가 추가된 것이 잘 보인다.

 

같은 방법으로 4개의 데이터를 더 추가해보겠다.

5개의 데이터가 생겼다.

 


11. SELECT

 

SELECT 컬럼명 FROM 테이블명;

id, title, created, author만 출력

 

*컬럼, 필드 용어 차이

 

mysql select syntax

공식문서의 select문법을 첨부한다.

[ ]는 생략가능한 것이다.

 

 

select 뒤에는 컬럼의 목록이 나온다.

FROM은 생략가능하다.

 

WHERE

SELECT 컬럼 FROM 테이블명 WHERE 컬럼명='검색어';

저자가 ruming인 행만 가져올 수 있다.

 

ORDER BY

SELECT 컬럼명 FROM 테이블명 ORDER BY id DESC;

id값을 기준으로 내림차순(DESC)으로 정렬되어 나온다.

기본은 오름차순(ASC)이다.

 

LIMIT

SELECT 컬럼명 FROM 테이블명 LIMIT 표시할 데이터 수;

데이터가 많이 저장되어 있는 상태에서 그대로 출력해버리면 문제가 생기기 때문에

데이터를 가져올 때 제약을 걸어야 한다.

LIMIT 3;을 했더니 3개만 나왔다.

*LIMIT로 페이징 기능을 사용할 수 있다.


12.UPDATE - 13. DELETE

 

sql update mysql

 

UPDATE

UPDATE 테이블명 SET 컬럼명='변경내용' WHERE 조건;

※WHERE을 사용하지 않으면 모든 행이 수정된다.

 

 

sql delete in mysql

 

DELETE

DELETE FROM 테이블명 WHERE 조건;

※WHERE을 사용하지 않으면 모든 행이 삭제된다.

 

 

여기까지 기본적인 명령문을 실습해보았다.

기본 명령어는 더 간단하게 정리해서 포스팅하도록 하겠다.

 

 

'웹개발 > MySQL' 카테고리의 다른 글

[MySQL] 기본 명령어 정리  (0) 2021.03.01
[MySQL] 생활코딩 MySQL 15~21  (0) 2021.01.29