MySQL (1) -TCP SCHOOL

bin1225·2022년 1월 2일
0

DATABASE

목록 보기
3/19

구조

연관된 표들을 그룹핑 하는 것이 database ( 스키마 ) 이고 이 스키마들이 모여서 데이터베이스 서버를 구성한다.
데이터베이스 서버 -> MySQL

데이터베이스를 사용했을 때 얻을 수 있는 효용
- 보안
- 권한부여

기본 문법

서버와의 연결을 끊는 구문인 QUIT와 같은 경우를 제외한 일반적인 구문 뒤에는 세미콜론(;)을 붙인다.

SELECT * FROM Reservation;

MySQL은 키워드와 구문에서 대소문자를 구분하지 않는다. 하지만 테이블 명과 필드의 이름은 대소문자를 구분한다.

1. SELECT * FROM Reservation;

2. select * from Reservation;

3. SeLeCt * FrOm Reservation;

CREATE

데이터베이스 생성

MySQL에서는 다음과 같은 CREATE 문을 사용하여 데이터베이스와 테이블을 만들 수 있습니다.

1. CREATE DATABASE 데이터베이스 이름

데이터베이스의 선택

데이터베이스를 생성한 후에, 해당 데이터베이스를 사용하기 위해서는 우선 데이터베이스를 선택해야 한다.

USE 데이터베이스이름

테이블 생성

CREATE TABLE 테이블이름
(
    필드이름1 필드타입1,
    필드이름2 필드타입2,
    ...
)

제약 조건

제약 조건(constraint)
제약 조건(constraint)이란 데이터의 무결성을 지키기 위해 데이터를 입력받을 때 실행되는 검사 규칙을 의미한다.
이러한 제약 조건은 CREATE 문으로 테이블을 생성할 때나, ALTER 문으로 필드를 추가할 때도 설정할 수도 있다.

CREATE TABLE 문에서 사용할 수 있는 제약 조건은 다음과 같다.

  1. NOT NULL : 해당 필드는 NULL 값을 저장할 수 없게 된다.

  2. UNIQUE : 해당 필드는 서로 다른 값을 가져야만 한다.

  3. PRIMARY KEY : 해당 필드가 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 된다.

  4. FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만든다.

  5. DEFAULT : 해당 필드의 기본값을 설정한다.

ALTER

MySQL에서는 다음과 같은 ALTER 문을 사용하여 데이터베이스와 테이블의 내용을 수정할 수 있다.

  1. ALTER DATABASE

  2. ALTER TABLE

데이터베이스 수정

ALTER DATABASE문은 데이터베이스의 전체적인 특성을 수정할 수 있게 해준다.

1. ALTER DATABASE 데이터베이스이름 CHARACTER SET=문자집합이름

2. ALTER DATABASE 데이터베이스이름 COLLATE=콜레이션이름

테이블 수정

1. ADD

ALTER TABLE 문과 함께 ADD 문을 사용하면, 테이블에 필드를 추가할 수 있다.

ALTER TABLE 테이블이름 ADD 필드이름 필드타입

2. DROP

ALTER TABLE 문과 함께 DROP 문을 사용하면, 테이블의 필드를 삭제할 수 있다.

ALTER TABLE 테이블이름 DROP 필드이름

3. MODIFY COLUMN

ALTER TABLE 문과 함께 MODIFY COLUMN 문을 사용하면, 테이블의 필드 타입을 변경할 수 있다.

ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입

DROP

MySQL에서는 다음과 같은 DROP 문을 사용하여 데이터베이스와 테이블을 삭제할 수 있다.

  1. DROP DATABASE
  2. DROP TABLE
DROP DATABASE 데이터베이스이름
DROP TABLE 테이블이름

만약 테이블 자체가 아닌 테이블의 데이터만을 지우고 싶을 때는 TRUNCATE TABLE 문을 사용할 수 있다.

TRUNCATE TABLE 테이블이름

* IF EXISTS 절을 사용하면 삭제하려는 데이터베이스나 테이블이 존재하지 않아서 발생하는 에러를 미리 방지할 수 있다.

1. DROP DATABASE IF EXISTS Hotel;

2. DROP TABLE IF EXISTS Reservation;

INSERT

MySQL 에서는 INSERT INTO 문을 사용하여 테이블에 새로운 레코드를 추가할 수 있다.

1. INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...)
   VALUES (데이터값1, 데이터값2, 데이터값3, ...)

2. INSERT INTO 테이블이름
   VALUES (데이터값1, 데이터값2, 데이터값3, ...)

두 번째 문법처럼 필드의 이름을 생략할 수 있으며, 이 경우에는 데이터베이스의 스키마와 같은 순서대로 필드의 값이 자동 대입된다.

NULL이 허용되는 필드, DEFAULT값이 설정된 필드, AUTO_INCREMENT 키워드가 설정된 필드는 생략할 수 있다.

데이터의 값이 문자열이면 반드시 따옴표('')를 사용해야 한다.

insert into customer(ID,Name,Age,Address,PhoneNumber) values(1,'김규빈',23,'성남','01012345678');

추가하는 레코드가 모든 필드의 값을 가져야 할 필요는 없다.

UPDATE

MySQL에서는 UPDATE 문을 사용하여 레코드의 내용을 수정할 수 있다.

UPDATE 테이블이름

SET 필드이름1=데이터값1, 필드이름2=데이터값2, ...

WHERE 필드이름=데이터값

UPDATE 문은 해당 테이블에서 WHERE 절의 조건을 만족하는 레코드의 값만을 수정한다.

WHERE 절을 생략한다면 해당 테이블의 모든 필드값이 수정된다.

DELETE

MySQL에서는 DELETE 문을 사용하여 테이블의 레코드를 삭제할 수 있다.
UPDATE 문과 마찬가지로 WHERE 절의 조건을 만족하는 레코드만 삭제한다.

DELETE FROM 테이블이름

WHERE 필드이름=데이터값

SELECT

MySQL에서는 SELECT 문을 사용하여 테이블의 레코드를 선택할 수 있다.

SELECT 필드이름1,필드이름2...

FROM 테이블이름

[WHERE 조건]

DISTINCT : 중복되는 값 제거

만약 같은 필드에 중복되는 값을 가지는 레코드가 있다면, DISTINCT 키워드를 사용하여 그 값이 한 번만 선택되도록 설정할 수 있다.

SELECT DISTINCT Name

FROM Reservation;

ORDER BY : 선택한 결과의 정렬

SELECT 문으로 선택한 결과를 ORDER BY 절을 사용하여 정렬할 수 있다.

ORDER BY 절의 기본 설정은 오름차순이며, ASC 키워드를 사용하여 직접 오름차순을 명시할 수도 있다.
,를 이용해 여러가지 조건을 명시할 수 있다.

SELECT * 

FROM Reservation

ORDER BY ReserveDate (DESC),조건2,조건3...;

AS : 별칭(alias)을 이용한 처리

MySQL에서는 테이블과 필드에 임시로 별칭(alias)을 부여하고, 해당 별칭을 SELECT 문에서 사용할 수 있습니다.

1. SELECT 필드이름 AS 별칭

FROM 테이블이름;

2. SELECT 필드이름

FROM 테이블이름 AS 별칭;

0개의 댓글