데이터 베이스(스키마) 테이블이 있으며 데이터베이스 별로 묶을 수 있다.
- mysql -uroot -p => 루트(관리자) 로그인 엔터
- -u*** 표시는 사용자 아이디 이며 예를 들어 -utester계정이 있으면 로그인 가능
- 설치 시 설정한 비번 입력
CREATE DATABASE userinfo;
DROP DATABASE userinfo;
SHOW DATABASES;
USE userinfo;
CREATE TABLE user => user 테이블 이름 ( id INT(11) NOT NULL AUTO_INCREMENT, <=1열 id name VARCHAR(50) NOT NULL, <=2열 name address VARCHAR(50) NOT NULL, <=3열 address created DATETIME NOT NULL, <=4열 created description TEXT NULL, <=5열 description PRIMARY KEY(id) <= 테이블당 하나만 가질 수 있는 고유 값 이며 꼭 있어야 함 );
- MySQL에서 사용할 수 있는 제약조건
- NOT NULL 공백을허용하지 않음
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- DEFAULT- 속성
- AUTO_INCREMENT 자동으로 숫자를 증가 시킴- MySQL: Data Types 참조 사이트
- VARCHAR(50) , INT(11) , DATETIME ,TEXT 데이터 타입이며 아래 참조 사이트에서 확인 가능
- https://www.techonthenet.com/mysql/datatypes.php
SHOW TABLES;
DESC user;
- INSERT INTO user => user는 테이블명
- () 에는 Filed를 입력하고 입력한 순서대로 VALUES()에 값을 추가 한다.
INSERT INTO user (name,address,created,description) VALUES('김강남','서울',NOW(),'서울에 사는 김강남 입니다.');
SELECT * FROM user; // user 테이블 filed 전체 표시 SELECT name,address FROM user; // user 테이블 name,address filed만 표시 SELECT name from user WHERE address='서울' //user 테이블에서 address가 서울인 것만 찾아서 filed가 name만 표시 SELECT * from user WHERE address='서울' LIMIT 1; // address가 서울인 것만 조회 하면서 개수는 1개만 표시 SELECT * from user ORDER BY id DESC; // id 값으로 내림 차순 정렬
- id가 1인 행의 address를 서울에서 서초로 변경
UPDATE user SET address='서초' WHERE id=1;
- id가 8인 행을 삭제
DELETE FROM user WHERE id=8;
테이블 결합을 위한 테이블 생성
- 3개의(user, new_user, address) 테이블이 있다.
- user 테이블의 address filed의 내용은 중복 되는 값을 테이블로 만들어 JOIN을 이용하여 user 테이블 처럼 표현 할수 있다. user 테이블의 내용을 new_user, address로 분리 테이블을 만든다.
- new_user의 address 필드를 address 테이블로 만든다.
- new_user의 address 필드를 address 테이블의 id 값을 사용하도록 address_id 필드를 만들고 필드의 값을 address 테이블의 id를 참조하여 해당 주소에 맞게 id 값을 추가 한다. (new_user 테이블의 address_id 참조)
INNER JOIN
- new_user.address_id=address.id; =>두 테이블을 조인할 id 값을 설정 한다. (연관성이 있어야 함.)
- new_user테이블의 address_id 값에 4번 항목들이 존재 한다. address 테이블에는 4번 항목이 없다 INNER JOIN은 new_user의 4번 항목이 없는 값에 제외 후 address의 테이블의 서울,인천,수원 등을를 결합하여 표시 한다.
SELECT * FROM new_user INNER JOIN address ON new_user.address_id=address.id;
- new_user와 address 테이블의INNER JOIN을 이용하여 user 테이블 처럼 데이터를 결합한다. SELECT new_user.id,name,address,created,description FROM new_user INNER JOIN address ON new_user.address_id=address.id;
LEFT JOIN
- new_user.address_id=address.id; =>두 테이블을 조인할 id 값을 설정 한다. (연관성이 있어야 함.)
- new_user테이블의 address_id 값에 4번 항목들이 존재 한다. address 테이블에는 4번 항목이 없다 LEFT JOIN은 new_user의 4번 항목이 없는 값도 포함하여 address의 테이블의 표시되어 NULL 값을 가지게 된다.
SELECT * FROM new_user LEFT JOIN address ON new_user.address_id=address.id;
SELECT new_user.id,name,address,created,description FROM new_user LEFT JOIN address ON new_user.address_id=address.id;