PHP 7, 8일차

Fohanist·2020년 5월 5일
0

PHP

목록 보기
5/6
post-thumbnail

1. 데이터 베이스 MySQL

우선 MySQL 워크벤치를 설치하려야 한다. 그리고 SQL 쿼리를 실행 할 것이다. 우선 데이터를 저장하려면 데이터베이스에 접속 해야한다. 서버주소, 사용자명, 비밀번호를 알아야한다. 홈스테드 임프루브 베이그런트 박스의 MySQL 서버에 접속하려면 아래 항목이 필요하다.
서버 주소: 192.168.10.10
사용자명: homestead
비밀번호: secret
웹 서버와 데이터베이스 서버가 하나의 가상 머신 안에서 실행되기에 서버 IP 주소가 같다.
데이터베이스에 접속을 구성하는 정보들을 묶에 커넥션이라고 하고 접속을 담당하는 자원 또는 객체들이다. 커넥션을 새로 만들어서 서버주소랑 사용자명을 입력하면 된다. 접속 할 때 베이그런트를 실행해둬야 한다.

데이터베이스테 접속했다면 시작화면이 뜨고 우리는 먼저 스키마(Schema)에 집중을 할 것이다. 데이터베이스를 지칭하는 또 다른 표현이다. 스키마 패널에 보면 이미 homestead와 sys라는 데이터베이스가 있다. 홈스테드가 기본적으로 제공하는 DB이고 사용할 수 있다.

2. 구조화 된 쿼리 언어(SQL)

우리는 MySQL(DB SW), SQL(language)를 구별할 줄 알아야 한다. 또한, MySQL 명령어는 대소문자를 구별하지 않는다. 하지만 데이터베이스명과 테이블면은 운영체제에 따라 대소문자를 구별한다. 예를들어 리눅스나 맥OS는 대소문자를 구별한다. 앞으로 일관성을 위해 데이터베이스 명령어는 모두 대문자로 쓰자. 데이터베이스, 테이블, 칼럼명 등의 엔티티는 모두 소문자로 표기한다.

명령어

//**모든 데이터 조회**
SELECT * FROM `table_name`

//**선택한 Column 테이터 조회**
SELECT `column_name1`, `column_name2` FROM FROM `table_name`

//**일부 데이터 조회**
SELECT `column_name1`, LEFT(column_name2, 글자 수), `column_name3` FROM `table_name`

//**반환 결과 개수 세기**
SELECT COUNT(*) FROM `table_name` //전체 엔트리
SELECT COUNT(`column_name1`) FROM `table_name` //특정 속성 엔트리

//**조건 조회**
SELECT `column_name2` FROM `table_name` WHERE `column_name3` >= "2020-01-01"
//위 예시에서 컬럼3이 날짜일 때 '크거나 같은 날짜'는 당일 혹은 그 이후의 날짜 의미

SELECT `column_name2` FORM `table_name` WHERE `column_name2` LIKE "%content%"
//이것은 content라는 단어가 포함된 글의 전체 내용을 가져온다

SELECT `column_name2` FORM `table_name` WHERE
`column_name2` LIKE "%content%" AND
`column_name3` >= "2020-01-01" AND
`column_name3` < "2020-03-01"
// 2020년 1, 2월에 등록된 데이터 중 content만 포함된 글을 가져온다

//**데이터 추가(1)**
INSERT INTO `table_name` SET
`column_name2` = culumn_value2,
`column_name3` = culumn_value3,
...

//**데이터 추가(2)**
INSERT INTO `table_name`
(`column_name2`, `column_name3`)
VALUES (culumn_value2, culumn_value3)

//**데이터 수정**
UPDATE `teble_name` SET
	`column_name` = value, ...
WHERE 조건

UPDATE `table_name` SET `column_name` = "2020-01-01" WHERE id = "1"
//id를 통해 지목한 컬럼을 수정한다.

UPDATE `table_name` SET `column_name` = "2020-01-01"
WHERE `column_name` LIKE "%content%"
// content가 들어간 모든 엔트리의 등록일자를 바꾼다
// WHERE을 생략할 수 있지만 모든 엔트리가 UPDATA의 영향을 받는다

//데이터 삭제
DELETE FROM `table_name` WHERE 조건

//MySQL 한글 삽입 설정
ALTER TABLE deal CONVERT TO character SET utf8;
profile
Support Full-Stack | JavaScript Developer

0개의 댓글