728x90
반응형
MYSQL을 사용하여 실습해 보았습니다.
DDL
CREATE : 데이터베이스내 개체 (테이블, 인덱스 제약조건, 프로시저, 펑션 등)을 생성 할 때
DROP : 데이터베이스내 개체를 삭제할 때
ALTER : 데이터베이스내 개체의 속성 및 정의를 변경할 때
RENAME : 데이터베이스내 개체의 이름을 변경할 때
TRUNCATE : 테이블 내 모든 데이터를 빠르게 삭제할 때
show databases; => 현재 상태에서 database를 보여준다.
CREATE
# 데이터베이스, 테이블, view 생성
create database [ database name];
create table [table name] ( 컬럼명 데이터타입, 컬럼명2 데이터타입,,,,);
create view [view name] 조건;
create database mydb; => database를 사용한다.
use [database name] => database를 사용한다.
table 생성
create table [table name] (
컬럼명 데이터타입 옵션 ,
컬럼명 데이터타입 (옵션)
);
변수 종류
데이터 타입 | 의미 |
CHAR | 특정 문자열 개수를 지정할때 |
VARCHAR | 가변길이의 문자열을 저장할 때 사용, 최대 길이를 지정( 오라클은 사용하지 않음) |
VARCHAR2 | 가변길이의 문자열을 저장할 때 사용합니다. 최대 길이를 지정함(MYSQL, MariaDB지원안함) |
NUMBER | 숫자에 사용되는 데이터 타입, 소수점 저장 가능(MYSQL, MariaDB의 경우 INT로 사용) |
DECIMAL | 숫자에 사용되는 데이터 타입입니다. 소수점 저장 가능해요 (오라클에서 내부적으로 NUMBER로 변환되어 사용됩니다.) |
DATE | 날짜에 사용되는 데이터 타입입니다. |
제약 조건
제약조건 | 의미 |
NOT NULL | 값이 꼭 입력되어야 할 때 사용합니다. null 을 허용하지 않음 |
UNIQUE | 해당 컬럼에 중복 값을 허용하고 싶지 않을때 사용합니다. |
PRIMARY KEY | 기본키를 지정할 때 사용하는 조건입니다. 테이블 당 한개의 기본키만 생성 가능해요 |
FOREGIN KEY | 외래키를 지정할 때 사용합니다.(references 키워드랑 같이 쓰여요) |
CHECK | 컬럼에 입력되는 데이터를 체크해 특정 조건에 맞는 데이터만 입력받고 싶을 때 사용합니다. |
DEFAULT | 만약 값이 없이 입력되면 디폴트에 지정된 값으로 입력합니다. |
INDEX | 인덱스 지정할 때 사용합니다. |
describe [table name]; => table 의 상세 조건을 볼 수 있습니다.
view 생성
## 테이블에 코멘트 넣기
create table t_user (
c_ID int primary key auto_increment comment '유저 고유 아이디',
c_name char(20) not null comment '유저 이름'
) comment '유저 테이블';
##넣어준 코멘트 확인하기
테이블 코멘트 보기
SELECT
table_name, table_comment
FROM
information_schema.tables
WHERE
table_schema = 'testdb' AND table_name = 't_user';
칼럼 코멘트 보기
SELECT
table_name, column_name, column_comment
FROM
information_schema.columns
WHERE
table_schema = 'testdb' AND table_name = 't_user';
테이블 복사
create table [새로운 테이블 이름] as ( select * from [복사해올 테이블 이름])
※ MySQL은 지원하지 않음
SELECT * INTO B FROM A;
위 구문을 실행하기 전까지는 B 란 테이블은 존재하지 않지만
실행을 하게 되면 A라는 테이블의 칼럼과 데이터를 가지는 B 라는 테이블이 생성됩니다.
ALTER
[칼럼 추가]
새 칼럼 추가
alter table [tablename] add COLUMN 컬럼명 데이터타입 옵션;
지정 컬럼 뒤에 생성
alter table [tablename] add COLUMN 컬럼명 타입 after 컬럼이름;
새칼럼 제일 앞에 추가
alter table [tablename] add COLUMN 컬럼명 데이터타입 first;
[이름변경]
테이블 이름변경 : alter table [tablename] rename to [new tablename];
( rename table 테이블 명 to 바꿀이름; )
칼럼 타입 변경
alter table [table name] modify 칼럼명 새칼럼타입
이름타입 모두 변경
alter table [ tablename] change 기존칼럼이름 새칼럼이름 새칼럼타입;
[테이블 형식 변경]
Engine : ALTER TABLE [TABLE NAME] ENGINE=형식;
TYPE : ALTER TABLE [TABLE NAME] TYPE=형식;
[칼럼 삭제]
ALTER TABLE [TABLE NAME] DROP [칼럼명]
[인덱스]
인덱스에 새항목 추가
ALTER TABLE [TABLE NAME] DROP COLUMN INDEX [칼럼이름]
인덱스 삭제
ALTER TABLE [TABLE NAME] DROUP INDEX 칼럼이름
DROP INDEX 인덱스이름 ON [TABLE NAME]
[기본키]
기본키 지정하기
ALTER TABLE [TABLE NAME] ADD PRIMARY KEY 칼럼이름
기본키 삭제
ALTER TABLE [TABLE NAME] DROP PRIMARY KEY
TRUNCATE
테이블내의 데이터를 삭제하는 명령어
truncate table [table name];
DROP
view, table 제거
drop view [view name];
drop table [table name];
drop database test_db;
show tables;
를 하여 생성된 table들을 볼 수 있습니다
describe [table name];
728x90
반응형
'Database > mysql' 카테고리의 다른 글
[MYSQL/Database] 실습 alter, rename, view 생성 (0) | 2023.04.11 |
---|---|
[MYSQL/Database] DML 명령어 실습(UPDATE, ORDER BY, AUTO_INCREMENT) (0) | 2023.04.10 |
[MYSQL / Database] DML 명령어(INSERT,UPDATE,DELETE,SELECT) (0) | 2023.04.10 |
댓글