key
: 데이터베이스에서 튜플을 찾거나 순서대로 정렬할 떄 구분하고 정렬의 기준이 되는 속성PK, Primary key
)primary Key
DDL
(Data Definition Language)DCL
(Data Control Language)데이터 조작어 : DDL
(Data Manipulation Language)
데이터베이스 or 테이블을 정의하는 언어
종류 | 역할 |
---|---|
CREATE | 데이터베이스, 테이블 등을 생성하는 역할을 한다. |
ALTER | 테이블을 수정하는 역할을 한다. |
DROP | 데이터베이스, 테이블을 삭제하는 역할을 한다. |
TRUNCATE | 테이블을 초기화 시키는 역할을 한다. |
CREATE
CREATE DATABASE 이름 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE TABLE 테이블명(
필드1 값형식,
필드2 값형식
);
문자형 데이터 형식
CHAR(n) | 고정 길이 데이터 타입(최대 255byte) - 지정된 길이보다 짧은 데이터 입력될 시 나머지 공간 공백으로 채워진다. |
---|---|
VARCHAR(n) | 가변 길이 데이터 타입(최대 65535byte) - 지정된 길이보다 짧은 데이터 입력될시 나머지 공간은 채우지 않는다. |
TINYTEXT(n) | 문자열 데이터 타입(255byte) |
TEXT(n) | |
MEDIUMTEXT(n) | 문자열 데이터 타입(16777215byte) |
LONGTEXT(n) | 문자열 데이터 타입(4294967295byte) |
숫자형 데이터 형식
TINYINT(n) | 정수형 데이터 타입(1byte) -128 ~ +127 또는 0 ~ 255수 표현 가능하다. |
---|---|
SAMLLINT(n) | 정수형 데이터 타입(2byte) -32678 ~ 32767 또는 0 ~ 65536수 표현 가능하다. |
MEDIUMINT(n) | 정수형 데이터 타입(3byte) -8388608 ~ + 8388607 또는 0 ~ 16777215수 표현 가능하다. |
INT(n) | 정수형 데이터 타입(4byte) -2147483648 ~ +2147483647 또는 0 ~ 4294967295수 표현 가능하다. |
BIGINT(n) | 정수형 데이터 타입(8byte) - 무제한 수 표현 가능하다. |
FLOAT(길이, 소수) | 부동 소수형 데이터 타입(4byte) - 고정 소수점 사용 형태이다. |
DECIMAL(길이, 소수) | 고정 소수형 데이터 타입고정(길이+1byte) - 소수점 사용 형태이다. |
DOUBLE(길이, 소수) | 부동 소수형 데이터 타입(8byte) - DOUBLE 문자열로 저장한다. |
날짜형 데이터 형식
DATE | 날짜(년도, 월, 일) 형태의 기간 표현 데이터 타입(3byte) |
---|---|
TIME | 시간(시, 분, 초) 형태의 기간 표현 데이터 타입(3byte) |
DATETIME | 날짜와 시간 형태의 기간 표현 데이터 타입(8byte) |
TIMESTAMP | 날짜와 시간 형태의 기간 표현 데이터 타입(4byte) - 시스템 변경 시 자동으로 그 날짜와 시간이 저장된다. |
YEAR | 년도 데이터 타입(1byte) |
테이블을 생성하는 명령어
하나의 컬럼(속성)에 대해 '컬럼명 데이터 타입 제약조건'으로 구성
CREATE TABLE 테이블명
(
컬럼명 데이터타입 [제약조건],
...
)
EX)
CREATE TABLE member(
id VARCHAR(10) NOT NULL PRIMARY KEY,
name VARCHAR(10) NOT NULL,
birthday DATE NOT NULL
);
테이블 생성 | 생성확인 |
CREATE TABLE의 제약조건
제약조건 | 설명 |
---|---|
PRIMARY KEY | 1.테이블의 기본 키를 정의 2.유일하게 테이블의 각 행을 식별 |
FOREIGN KEY | - 외래 키를 정의 - 참조 대상을 테이블(컬럼명)으로 명시 - 열과 참조된 테이블의 열 사이에 외래 키 관계를 적용하고 설정 |
UNIQUE | -테이블 내에서 얻은 유일한 값을 갖도록 하는 제약 |
NOT NULL | - 해당 컬럼은 NULL값을 포함하지 않도록 하는 제약 조건 |
CHECK | - 개발자가 정의하는 제약 조건 - 참(TRUE)이어야 하는 조건을 지정 |
DEFAULT | - 데이터를 INSERT할 때 해당 컬럼의 값을 넣지 않는 경우 기본값으로 설정해주는 제약조건 |
ALTER TABLE
컬럼 추가ALTER TABLE 테이블명 ADD 컬럼명 데이터타입[제약조건]
ALTER TABLE
컬럼 추가ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입[제약조건];
ALTER TABLE
컬럼 삭제ALTER TABLE 테이블명 DROP 컬럼명;
ALTER INDEX
ALTER [UNIQUE] INDEX 인덱스명 ON 데이블명(컬럼명1, 컬럼명2 ...);
DROP TABLE 테이블명 [CASCADE|RESTRICT];
CASCADE
와 RESTRICT
가 있음CASCADE
와 RESTRICT
의 경우 외래 키(FOREIGN KEY)가 걸려 있을 때 해당 TRUNCATE TABLE 테이블명;
DROP VIEW 뷰이름;
DROP INDEX 인덱스명;
SHOW DATABASES;
DML(Data Manipulation Language)
데이터베이스의 내부 데이터를 관리하기 위한 언어
종류 | 역할 |
---|---|
SELECT | 데이터베이스에서 데이터를 검색(조회하는 역할을 한다. |
INSERT | 테이블에 데이터를 추가 하는 역할을 한다. |
UPDATE | 테이블에서 데이터를 수정 하는 역할을 한다. |
DELETE | 테이블에서 데이터를 삭제 하는 역할을 한다. |
대부분의 컴퓨터 소프트웨어가 가지는 기본적인 처리 기능
Create(생성)
Read(읽기)
Update(갱신)
Delete(삭제)
이름 | 조작 | SQL |
---|---|---|
Create | 생성 | INSERT |
Read | 읽기 | SELECT |
Update | 갱신 | UPDATE |
Delete | 삭제 | DELETE |
INSERT INTO 테이블명 (필드1, 필드2, 필드3) VALUES (값1, 값2, 값3);
방법2INSERT INTO 테이블명 VALUES(값1, 값2, 값3);
SELECT * FROM 테이블명;
SELECT * FROM 테이블명 WHERE 필드1 = 조건값1;
SELECT * FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC; //오름차순
SELECT 필드1, 필드2, 필드3 FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC;
SELECT 필드1, 필드2, 필드3 FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC LIMIT 개수;
연산자 | 의미 |
---|---|
= | 같다 |
> | 보다 크다 |
>= | 보다 크거나 같다 |
< | 보다 작다 |
<= | 보다 작거나 같다 |
연산자 | 의미 |
---|---|
!= | 같지 않다 |
^= | 같지 않다 |
<> | 같지 않다 |
NOT 컬럼명= | ~와 같지않다 |
연산자 | 의미 |
---|---|
BETWEEN a AND b | a와 b사이에 있으면 참(a,b 값도 포함) |
IN(list) | 리스트에 있는 값 중에서 어느 하나라도 일치하면 참 |
LIKE '비교문자열' | 비교 문자열과 형태가 일치하면 사용(%,_사용) |
IS NULL | NULL값인 경우 true, 아니면 false |
연산자 | 의미 |
---|---|
AND | 앞에 있는 조건과 뒤에 오는 조건이 참(TRUE)가 되면 결과도 참(TRUE) |
OR | 앞에 있는 조건과 뒤에 오는 조건 중 하나라도 참(TRUE)면 결과는 참(TRUE) |
NOT | 뒤에 오는 조건과 반대되는 결과를 돌려준다. |
UPDATE 테이블명 SET 필드1 = 값1 WHERE 필드2 = 조건2;
DELETE FROM 테이블명 WHERE 필드1=값1;
참고 사이트
1.https://luv-n-interest.tistory.com/555
2.https://velog.io/@sysop/DBMS-%EC%99%80-RDBMS%EC%9D%98-%EA%B0%9C%EB%85%90
3.https://computer-science-student.tistory.com/179