MySQL은 세계에서 가장 많이 쓰이는 오픈소스의 관계형 데이터베이스 관리시스템(RDBMS, relational database management system)이다.
구문
MySQL에서 데이터베이스에 대한 작업 명령은 SQL구문을 이용하여 처리한다. 키워드와 구문에서 대소문자를 구분하지 않지만, 되도록이면 대소문자를 일관되게 사용하는 것이 좋다. 그러나 테이블 명과 필드의 이름은 대소문자를 구분하므로 주의해서 사용해야 한다.
SELECT * FROM Reservation;
select * from Reservation;
SeLeCt * FrOm Reservation;
위의 예제는 모두 같은 결과를 보여주겠지만, 되도록이면 1번이나 2번처럼 일관되게 상요하는 것이 좋다.
주석
주석이란 코드에 대한 이해를 돕는 설명을 적거나 디버깅을 위해 작성하는 일종의 메모이다. MySQL 서버는 주석을 무시하므로, 실제 실행 결과에는 아무런 영향을 주지 않는다. 주석을 작성하는 방법은 다음과 같다.
1. # 한 줄 주석
2. -- 한 줄 주석
3. /* 두줄
이상의
주석 */
두 번째 방법에서는 두 개 이상의 하이픈(-) 뒤에 반드시 한 칸의 공백이 존재해야만 주석으로 정상인식된다.
기초 문법
데이터베이스 생성
CREATE DATABASE [DB 이름]
데이터베이스 선택
USE [DB 이름]
데이터베이스 삭제
DROP DATABASE [DB 이름]
테이블 생성
CREATE TABLE [테이블 이름]
(
[필드 이름1] [필드 타입1],
[필드 이름2] [필드 타입2],
...
)
CREATE TABLE 구문에서는 제약조건을 설정할 수 있다.
1. NOT NULL : 해당 필드는 NULL 값을 저장할 수 없게 됩니다.
2. UNIQUE : 해당 필드는 서로 다른 값을 가져야만 합니다.
3. PRIMARY KEY : 해당 필드가 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가지게 됩니다.
4. FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만듭니다.
5. DEFAULT : 해당 필드의 기본값을 설정합니다.
또한, AUTO_INCREMENT 키워드를 사용하면 해당 필드의 값을 1부터 시작하여 새로운 레코드가 추가될 때마다 1씩 증가된 값을 저장합니다. 이때 AUTO_INCREMENT 키워드 다음에 대입 연산자(=)를 사용하여 시작값을 변경할 수 있습니다.
테이블 삭제
DROP TABLE [테이블 이름]
테이블에 필드(컬럼) 추가
ALTER TABLE [테이블 이름]
ADD [필드 이름] [필드 타입]
테이블에 필드(컬럼) 삭제
ALTER TABLE [테이블 이름]
DROP [필드 이름]
테이블에 필드(컬럼) 타입 변경
ALTER TABLE [테이블 이름]
MODIFY COLUMN [필드 이름] [필드 타입]
테이블에 필드(컬럼)이름 변경
ALTER TABLE [테이블 이름]
RENAME COLUMN [변경 전 필드 이름] TO [변경 후 필드 이름]
테이블의 레코드(행) 추가
INSERT INTO [테이블 이름] ([필드 이름1], [필드 이름2], [필드 이름3], ...)
VALUES ([데이터 값1], [데이터 값2], [데이터 값3], ...)
INSERT INTO [테이블 이름]
VALUES ([데이터 값1], [데이터 값2], [데이터 값3], ...)
필드의 이름을 생략한 경우에는 데이터베이스의 스키마와 같은 순서대로 필드의 값이 자동 대입된다.
이때 생략할 수 있는 필드는 다음과 같다.
1. NULL을 저장할 수 있도록 설정된 필드
2. DEFAULT 제약 조건이 설정된 필드
3. AUTO_INCREMENT 키워드가 설정된 필드
테이블의 레코드(행) 수정
UPDATE [테이블 이름]
SET [필드 이름1 = 변경할 데이터 값1], [필드 이름2 = 변경할 데이터 값2], ...
WHERE [필드 이름] = [조건 데이터 값]
테이블의 레코드(행) 삭제
DELETE FROM [테이블 이름]
WHERE [필드 이름] = [조건 데이터 값]
테이블의 레코드(행) 선택
SELECT *
FROM [테이블 이름]
본 글은 아래 링크의 내용을 참고하여 학습한 내용을 나름대로 정리한 글임을 밝힙니다.
http://www.tcpschool.com/mysql/mysql_basic_syntax
https://velog.io/@taeha7b/mysql-in-a-nutshell
https://1coding.tistory.com/23
'DataBase' 카테고리의 다른 글
[MySQL] CHAR, VARCHAR 차이점 + TEXT (2) | 2022.02.24 |
---|---|
[MySQL] select 0 from A (select 1 from A) (0) | 2022.02.23 |
[MySQL] WEEKDAY(), CASE문 사용해 차트에서 '요일' 구현 (0) | 2021.11.01 |
[error/mysql] Unknown column '' in 'field list' (0) | 2021.10.29 |
[DB] 요구사항 정의서 작성법 (0) | 2021.10.06 |