개발 블로그
[데이터베이스] SQL이란? 본문
SQL(Structed Query Language) 이란?
상용 DBMS와 대화하기 위한 고수준의 선언적 언어로
릴레이션 스키마의 규격에 따라 릴레이션을 추가하고 데이터를 저장하고 수정하고 삭제하는 과정을 거치며 데이터와 데이터 간의 관계를 이용하는 조인 연산을 통해 원하는 결과물을 가져올 수 있다.
이때 고수준의 선언적 언어란 직접 데이터베이스의 어떤 자료구조로 저장할지 명령하는 것이 아니라 데이터를 추가한다 수정한다, 삭제한다는 명령만으로 데이터를 이용할 수 있다.
DBMS는 클라이언트-서버 모델로 운영되고, 여러 기업에서 개발한 다양한 DBMS들이 존재한다.
사용자가 클라이언트 소프트웨어에 질의를 전달하면, 서버 소프트웨어에 전달되어 질의를 해석하고, 결과물을 클라이언트 서버 소프트웨어에 전달한다.
데이터베이스 매니지드 시스템인 상용 DBMS는 상당히 많은데, MySQL, Postgre SQL, Oracle DB, MSSQL 서버 등이 있다. DBMS마다 지원하는 SQL 구문이 조금씩 다르다.
SQL은 구문에 따라 크게 4가지로 나뉜다.
데이터 정의어: create, alter, drop, rename, modify, comment, truncate
데이터 조작어: select, insert, update, delete, call, explain
데이터 제어어: grant, revoke
트랜잭션 제어: commit, rollback, savepoint, transaction
테이블의 생성, 수정, 삭제
DBMS는 여러 개의 데이터베이스를 운용할 수 있다
(데이터베이스는 연관된 데이터의 모음)
데이터 정의어 - 테이블 생성
CREATE TABLE 테이블이름 (
칼럼이름 데이터타입 [제약조건],
칼럼이름 데이터타입 [제약조건],
...
);
CREATE TABLE MEMBER (
M_ID int not null,
M_MEMBER_ID varchar(96) not null,
M_NAME varchar(32) null,
M_GENDER varchar(32) null,
M_BIRTH char(32) null,
M_CREATED_DATETIME DATETIME null
);
데이터 정의어 - 테이블 삭제
DROP TABLE 테이블이름;
데이터 정의어 - 칼럼 삭제
ALTER TABLE 테이블이름 DROP 칼럼이름;
데이터 정의어 - 칼럼 추가
ALTER TABLE 테이블 이름 ADD COLUMN 칼럼이름 데이터타입 [null:not null];
데이터 정의어 - 테이블 이름 수정
ALTER TABLE 테이블이름 RENAME TO 변경될데이블이름;
MySQL
MySQL 데이터 타입
(참고: https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html#data-types-storage-reqs-strings)
BIT
BOOL
INT
FLOAT
DOUBLE
CHAR
TEXT
DATE
TIME
데이터베이스 생성
CREATE DATABASE 데이터베이스이름;
CREATE DATABASE Student;
질의할 데이터베이스 지정
DBMS는 여러 개의 데이터베이스를 가질 수 있는데, 그 중 어느 데이터베이스에 질의할지 정해줘야한다. 특정 데이터베이스를 사용하겠다는 명령어로 지정해야한다.
use 데이터베이스이름;
use Student;
데이터베이스 삭제
DROP DATABASE 데이터베이스이름;
DROP DATABASE Student;
테이블 생성
데이터베이스를 만들었으며녀 사상된 릴레이션을 테이블로 생성해줘야 한다.
CREATE TABLE 테이블이름 (
칼럼이름 데이터형식 [null|not null] [제약조건],
칼럼이름 데이터형식 [null|not null] [제약조건],
...
)
테이블 이름 수정
ALTER TABLE 테이블이름 RENAME TO 새로운테이블이름;
ALTER TABLE oldtable RENAME TO newtable;
테이블 삭제
DROP TABLE 테이블이름;
DROP TABLE newtable;
테이블 칼럼 추가
ALTER TABLE 테이블이름 ADD COLUMN 칼럼이름 데이터타입 [NULL | NOT NULL] [제약조건] [DEFAULT 기본값];
ALTER TABLE MEMBER ADD COLUMN M_NICKNAME VARCHAR(64) NULL;
테이블 칼럼 수정
//칼럼 자료형 수정
ALTER TABLE 테이블이름 MOIDFY COLUMN 칼럼이름 변경될_데이터타입 [NULL | NOT NULL] [제약조건] [DEFAULT 기본값];
ALTER TABLE member ADD COLUMN M_name VARCHAR(64) NULL;
//칼럼 이름 수정
ALTER TABLE MEMBER RENAME COLUMN 기존칼럼이름 TO 변경될칼럼이름;
ALTER TABLE member RENAME COLUMN M_name TO M_name2;
테이블 칼럼 삭제
ALTER TABLE 테이블이름 DROP COLUMN 칼럼이름;
ALTER TABLE member DROP COLUMN M_name;
'전공 공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터의 삽입, 수정, 삭제 (0) | 2022.12.04 |
---|---|
[데이터베이스] (0) | 2022.12.03 |
[데이터베이스] ERD를 스키마로 사상하기 (0) | 2022.10.10 |
[데이터베이스] 관계형 모델 설계 과정과 엔티티란? (0) | 2022.10.09 |
[데이터베이스] 릴레이션(relation)과 키(key)란? 용어정리 (1) | 2022.10.03 |