환경 설정
최하단 부분에 추가.
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
https://github.com/naver/d2codingfont/releases
데이터베이스 생성, 삭제, 사용
- CREATE DATABASE DB이름;
- DROP DATABASE DB이름;
- DROP DATABASE IF EXISTS DB이름;
(입력한 DB이름의 DATABASE가 있을 경우 삭제)
- DROP DATABASE IF EXISTS DB이름;
- USE DB이름;
테이블 생성, 구조확인, 삭제
- CREATE TABLE 테이블이름 (
컬럼명 데이터타입 조건,
컬럼명 데이터타입 조건,
...
컬럼명 데이터타입 조건
); - DESC 테이블이름;
- DROP TABLE 테이블이름;
- DROP TABLE IF EXISTS 테이블이름;
(입력한 테이블이름의 테이블이 있을 경우 삭제)
- DROP TABLE IF EXISTS 테이블이름;
데이터 타입 종류
- 문자형
- CHAR() : 특정 문자열 개수를 지정할 때(ex. CHAR(10) = 10자리 문자열)
- VARCHAR() : 가변길이의 문자열을 저장할 때, 최대 길이를 지정
- TEXT : 가변길이를 크게 정하고 싶을때 VARCHAR로 해도 되지만 보통 TEXT를 사용함
- 숫자형
- BOOL : 0은 false, 0이 아닌 값은 true로 간주하는 논리형 데이터, TINYINT(1)로 대체하여 사용하는 것을 권장함
- INT : 숫자에 사용되는 데이터 타입, 정수형
- TINYINT : INT보다 작은 숫자에 사용되는 데이터 타입, 정수형
- DECIMAL : 숫자에 사용되는 데이터 타입, 소수점 저장 가능
- 날짜형
- DATE : 날짜를 표현하는 테이터 타입, 1000-01-01 ~ 9999-12-31
- DATETIME : 날짜와 시간을 같이 나타내는 데이터 타입, 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
- TIMESTAMP : 날짜와 시간을 같이 나타내는 데이터 타입, 1970-01-01 00:00:00 ~ 2037-01-19 03:14:07, INSERT와 UPDATE 연산에 유리함
- TIME : 시간을 표현하는 데이터 타입
- YEAR : 연도를 나타내는 데이터 타입, 1901~2155
제약조건
- NOT NULL : 값이 꼭 입력되어야 할 때 사용함. NULL을 허용하지 않음
- PRIMARY KEY : 기본키를 지정할 때 사용, 테이블 당 한개의 기본키만 생성 가능
- UNIQUE : 해당 컬럼에 중복 값을 허용하고 싶지 않을 때 사용
- FOREGIN KEY : 외래키를 지정할 때 사용
- UNSIGNED : 부호를 사용하지 못하게 하는 조건(음수 금지)
- AUTO_INCREMENT : 자동 넘버링
- DEFAULT : 값이 없는 상태로 입력되면 디폴트에 지정된 값으로 입력됨
테이블 수정
- ALTER TABLE 테이블이름 ADD COLUMN 컬럼명 데이터타입 제약조건;
- ALTER TABLE 테이블이름 ADD COLUMN 컬럼명 데이터타입 제약조건 AFTER 컬럼명;
- ALTER TABLE 테이블이름 DROP COLUMN 컬럼명;
- ALTER TABLE 테이블이름 MODIFY COLUMN 컬럼명 데이터타입 제약조건;
데이터 삽입
- INSERT INTO 테이블이름 (열1, 열2, ...) VALUES (값1, 값2, ...);
- INSERT INTO 테이블이름 VALUES (값1, 값2, ...);
- INSERT INTO 테이블이름 SET 열1 = 값1, 열2 = 값2 ...;
데이터 조회, 정렬
*은 전체를 의미함
- SELECT 컬럼명, 컬럼명... FROM 테이블이름;
- SELECT * FROM 테이블이름;
- SELECT * FROM 테이블이름 ORDER BY 컬럼명 ASC(DESC); //ASC는 디폴트 값이기 때문에 생략가능.
실제로 사용이 자주 되는 것들
SELECT DISTINCT(컬럼명) FROM 테이블명 : 중복된 값을 제거해서 보여줌
SELECT COUNT(컬럼명) FROM 테이블 명 : 값이 몇개 정도 들어가 있는가.
(단 null은 카운트 해주지 않는다!)