-
[PHP] DB 기초, 게시물 테이블 만들기Web/PHP 2020. 7. 22. 22:06
MySQL SQL 종류
-
데이터베이스
-
생성 : CREATE DATABASE a1;
-
삭제 : DROP DATABASE IF EXISTS a1;
-
조회 : SHOW DATABASES;
-
테이블
-
생성 : CREATE TABLE article (id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, regDate DATETIME NOTN ULL, title CHAR(200) NOT NULL, `body` TEXT NOT NULL);
-
삭제 : DROP TABLE article;
-
조회 : SHOW TABLES;
-
수정 : ALTER TABLE article ADD COLUMN id CHAR(20) FIRST;
-
수정 : ALTER TABLE article DROP COLUMN id;
-
수정 : ALTER TABLE article MODIFY COLUMN id id CHAR(20) AFTER regDate;
-
데이터
-
생성 : INSERT INTO article SET regDate = NOW(), title = '제목 1', `body` = '내용 1';
-
수정 : UPDATE article SET title = '새 제목 1' WHERE id = 2;
-
삭제 : DELETE FROM article WHERE id = 1;
-
조회 : SELECT * FROM article;
쿼리 실행 방법
드래그하거나 shift + home 키를 눌러 선택한 후 f9를 누르면 실행된다.
쿼리 실행 예제
실행 전 mySQL을 켜야 한다. 당연하지만..
(#는 주석)
# 전체 데이터베이스 리스팅
SHOW DATABASES;
# `mysql` 데이터 베이스 선택
USE mysql;
# 테이블 리스팅
SHOW TABLES;
# 특정 테이블의 구조
DESC db;
# `test` 데이터 베이스 선택
USE test;
# 테이블 리스팅
SHOW TABLES;
# 기존에 a1 데이터베이스가 존재 한다면 삭제
DROP DATABASE IF EXISTS a1;
# 새 데이터베이스(`a1`) 생성
CREATE DATABASE a1;
# 데이터베이스(`a1`) 선택
USE a1;
# 데이터베이스 추가 되었는지 확인
SHOW DATABASES;
# 테이블 확인
SHOW TABLES;
# 게시물 테이블 article(title, body)을 만듭니다.
# VARCHAR(100) => 문자를 100자까지 저장가능
# text => 긴 글, 문자를 많이 저장가능
CREATE TABLE article(
title CHAR(200),
`body` TEXT
);
# 잘 추가되었는지 확인, 리스팅과 구조까지 확인
USE a1;
SHOW DATABASES;
SHOW TABLES;
DESC article;
# 데이터 하나 추가(title = 제목, body = 내용)
INSERT INTO article
SET title = '제목',
`body` = '내용';
# 데이터 조회(title 만)
SELECT title
FROM article;
# 데이터 조회(title, body)
SELECT title, `body`
FROM article;
# 데이터 조회(body, title)
SELECT `body`, title
FROM article;
# 데이터 조회(*)
SELECT *
FROM article;
# 데이터 또 하나 추가(title = 제목, body = 내용)
INSERT INTO article
SET title = '제목',
`body` = '내용';
# 데이터 조회(*, 어떤게 2번 게시물인지 알 수 없음)
SELECT * FROM article;
# 테이블 구조 수정(id 칼럼 추가, first)
ALTER TABLE article ADD COLUMN id INT(10) FIRST;
# 데이터 조회(*, id 칼럼의 값은 NULL)
DESC article;
SELECT * FROM article;
# 기존 데이터에 id값 추가(id = 1, id IS NULL)
UPDATE article SET id = 1 WHERE id IS NULL;
# 데이터 조회(*, 둘다 수정되어 버림..)
SELECT * FROM article;
# 기존 데이터 중 1개만 id를 2로 변경(LIMIT 1)
UPDATE article SET id = 2 WHERE id = 1 LIMIT 1;
# 데이터 조회(*)
SELECT * FROM article;
# 데이터 1개 추가(id = 3, title = 제목3, body = 내용3)
INSERT INTO article
SET id = 3,
title = '제목3',
`body` = '내용3';
# 데이터 조회(*)
SELECT * FROM article;
# 2번 게시물, 데이터 삭제 => DELETE
SELECT *
FROM article
WHERE id = 2;
DELETE FROM article WHERE id = 2;
# 데이터 조회(*)
SELECT * FROM article;
# 날짜 칼럼 추가 => regDte DATETIME
ALTER TABLE article ADD COLUMN regDate DATETIME AFTER id;
# 테이블 구조 확인
DESC article;
# 데이터 조회(*, 날짜 정보가 비어있음)
SELECT * FROM article;
# 1번 게시물의 비어있는 날짜정보 채움(regDate = 2018-08-10 15:00:00)
UPDATE article SET regDate = '2018-08-10 15:00:00' WHERE id = 1;
# 데이터 조회(*, 이제 2번 게시물의 날짜 정보만 넣으면 됩니다.)
SELECT * FROM article;
# NOW() 함수 실행해보기
SELECT NOW();
# 3번 게시물의 비어있는 날짜정보 채움(NOW())
UPDATE article SET regDate = NOW() WHERE id = 3;
# 데이터 조회(*)
SELECT * FROM article;
게시물 테이블 만들기 예제
SHOW DATABASES;
#데이터베이스 목록을 보겠다.
CREATE DATABASE blog;
# blog라는 이름을 가진 데이터베이스를 만들겠다.
USE blog;
#방금 만든 데이터베이스를 선택하겠다.
SHOW TABLES;
# 데이터베이스 안의 테이블들을 확인하겠다.
CREATE TABLE article(
id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
title CHAR(100) NOT NULL,
`body` TEXT NOT NULL
);
# 테이블 생성
# int = 정수, datetime = 날짜, char = 문자, 100자까지 들어갈 수 있음, text = 긴 글
# primary key = 중복을 허용하지 않음
# auto_increment = 자동으로 번호 삽입
DROP TABLE IF EXISTS article;
# 테이블 삭제 시 실행할 명령어테이블 생성 결과 화면 데이터베이스는 폴더,
테이블은 엑셀 파일으로 비유하여 생각하면
이해하기 쉽다.
'Web > PHP' 카테고리의 다른 글
[PHP] 상황에 맞는 SQL 작성, NOT NULL, auto_increment, LIKE, AND, OR, 칼럼이름, 칼럼순서 변경 (0) 2020.07.25 [PHP] php 변수를 사용한 구구단 출력 예제 (0) 2020.07.21 [PHP] PHP 기초 - Apache 사이트 추가 , 쉘 사용법 (0) 2020.07.11 -