데이터베이스 생성
1.데이터베이스 생성
CREATE DATABASE dbname DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
# DEFAULT CHARSET=utf8 COLLATE=utf8_bin
- 문자 인코딩(문자셋)과 관련된 설정
- 한글 데이터의 정확한 처리를 위해, 데이터베이스/테이블 생성시에 추가
- 문자셋(Character set)은 각 문자가 컴퓨터에 저장될 때 어떠한 '코드'로 저장될지에 대한 규칙의 집합을 의미
- 콜레이션(Collation)은 특정 문자 셋에 의해 데이터베이스에 저장된 값들을 비교 검색하거나 정렬 등의 작업을 위해 문자들을 서로 '비교' 할때 사용하는 규칙들의 집합을 의미
어지간하면 그냥 써주는게 좋다
2.데이터베이스 목록 보기
SHOW DATABASES;
3.데이터베이스 사용 시
USE dbname;
4.데이터베이스 삭제
DROP DATABSE IF EXISTS dbname;
테이블 생성
1. 테이블 생성
CREATE TABLE 테이블 이름 (
column1 데이터형,
column2 데이터형,
.
.
Primary Key(column1,...)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#
- ENUM 타입: 특정 값만 저장할 수 있도록 저장 가능 값을 지정해주는 데이터 타입
- ENGINE=InnoDB : 스토리지 엔진이 여러 가지 있습니다. 이 중에서 InnoDB로 스토리지 엔진을 정해주는 명령입니다. 이 명령을 안해줘도 최근 Mysql 버전은 디폴트로 엔진을 InnoDB를 쓴다고 합니다.
- 테이블을 만들때도 DEFAULT CHARSET=utf8 인코딩을 해주세요
테이블 조회
SHOW TABLES; #해당 데이터베이스 내 테이블 목록 조회
DESC 테이블명; #해당 테이블의 컬럼 목록 조회 (내림차순)
테이블 삭제
DROP TABLE IF EXISTS 테이블명;
테이블 구조 수정
1. 테이블에 새로운 컬럼 추가
ALTER TABLE 테이블명 ADD COLUMN [추가할 컬럼명] [추가할 컬럼 데이터형]; #괄호 빼고 입력해야함
2. 테이블 컬럼 타입 변경
ALTER TABLE 테이블명 MODIFY COLUMN [변경할 컬럼명] [변경할 컬럼 타입];
3. 테이블 컬럼 이름 변경
ALTER TABLE 테이블명 CHANGE COLUMN [기존 컬럼명] [변경할 컬럼 명] [변경할 컬럼 타입];
4. 테이블 컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN [삭제할 컬럼명];
데이터 [Create(생성), Read(읽기), Update(갱신), Delete(삭제)]
데이터 생성(Create)
1. 테이블 전체 컬럼에 대응하는 값을 모두 넣기
INSERT INTO [테이블명] VALUES(값1, 값2, ...);
2. 테이블 특정 컬럼에 대응하는 값만 넣기(지정되지 않은 컬럼은 디폴트값 또는 NULL값이 들어감)
INSERT INTO [테이블명] (col1, col2, ...) VALUES(값1, 값2, ...);
데이터 읽기(Read) ([]는 실제 코드 작성시에는 작성X)
1. 테이블 전체 컬럼의 데이터 모두 읽기
SELECT * FROM 테이블명;
2. 테이블 특정 컬럼의 데이터만 읽기
SELECT 컬럼1, 컬럼2, ... FROM 테이블명;
3. 테이블 특정 컬럼의 데이터를 검색하되, 표시할 컬럼명도 다르게 하기
SELECT 컬럼1 AS 바꿀컬럼이름1, 컬럼2 AS 바꿀컬럼이름2 FROM 테이블명;
4. 데이터 정렬해서 읽기
SELECT * FROM 테이블명 ORDER BY 정렬할 기준 컬럼명 DESC(or ASC);
#DESC는 내림차순, ASC는 오름차순 정렬
5. 조건에 맞는 데이터만 검색하기 (비교)
SELECT * FROM 테이블명 WHERE 컬럼명 < 값;
SELECT * FROM 테이블명 WHERE 컬럼명 > 값;
SELECT * FROM 테이블명 WHERE 컬럼명 = 값;
ex) SELECT * FROM mytable WHERE id > 0;
6. 조건에 맞는 데이터만 검색하기 (논리 연산자)
SELECT * FROM 테이블명 WHERE 컬럼명 = '값' OR/AND 컬럼명 ='값';
ex) SELECT * FROM mytable WHERE id>0 AND id<2;
7. 조건에 맞는 데이터만 검색하기 (LIKE를 활용한 부분 일치)
-홍으로 시작되는 값을 모두 찾을 경우
SELECT * FROM [테이블명] WHERE [컬럼명] LIKE '홍%';
-홍이 들어간 값을 모두 찾을 경우
SELECT * FROM [테이블명] WHERE [컬럼명] LIKE '%홍%';
-홍으로 시작되고 뒤에 2글자가 붙는 경우
SELECT * FROM [테이블명] WHERE [컬럼명] LIKE '홍__';
8. 결과중 일부만 데이터 가져오기 (LIMIT을 활용)
ex) 결과중 처음부터 10개만 가져오기
SELECT * FROM [테이블명] LIMIT 10
ex) 결과중 100번째부터 10개만 가져오기
SELECT * FROM [테이블명] LIMIT 100, 10
9. 위 1~8번 조건을 조합하여 동시에 사용 가능함
데이터 수정(Update)
-보통 WHERE 조건문과 함께 쓰여서, 특정한 조건에 맞는 데이터만 수정하는 경우가 많음
UPDATE [테이블명] SET 수정하고 싶은 컬럼명 ='수정하고 싶은 값' WHERE 특정 컬럼 ='값'
-다수의 컬럼 값을 수정할 수도 있음
UPDATE [테이블명] SET 수정하고 싶은 컬럼명1 = '수정하고 싶은 값', '수정하고 싶은 컬럼명2 = '수정하고 싶은 값' .... WHERE 특정 컬럼 < '값';
EX) UPDATE mytable SET name='i5', model_num='5500' WHERE ID = 3;
데이터 삭제(Delete)
테이블에 저장된 데이터를 삭제하는 작업
-보통 WHERE 조건문과 함께 쓰여서, 특정한 조건에 맞는 데이터만 삭제하는 경우가 많음
DELETE FROM [테이블명] WHERE 특정 컬럼 = '값';
-테이블에 저장된 모든 데이터를 삭제할 수도 있음
DELETE FROM 테이블명;