[DB] MySQL - 생성, 조회, 수정, 삭제

양희연·2020년 9월 6일
0

database

목록 보기
7/8
post-thumbnail

🎥 생성

--데이터베이스 생성
CREATE DATABASE DB명 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

--테이블 생성
--CREATE TABLE TABLE명 (컬럼명1 자료형 제약조건, 컬럼명2 자료형 제약조건);

create table test_table1 (
id int auto_increment,
name varchar(50) not null,
primary key (id)
);

💡 시퀀스

row를 추가할 때 자동으로 증가하는 값이 저장되는 것. auto_increment

mysql data type

💡 char vs varchar

  • char
    고정 길이 문자열.
    지정된 값만큼 최대길이를 갖고 할당된 변수값이 더 작은 경우에 그 차이만큼 공간으로 채워진다. (공간의 낭비)
    속도가 더 빠르다.
  • varchar
    가변 길이 문자열.
    지정된 값만큼 최대길이를 갖지만 가변길이로 조정되어 할당된 변수값의 바이트로만 채워진다.

> 제약조건

컬럼에 저장될 데이터의 조건을 설정하는 것

primary key
컬럼에 중복된 데이터를 저장할 수 없으며 null 값을 허용하지 않는다.
주로 각 row를 구분하기 위한 유일한 값을 저장하는 컬럼에 사용한다.
기본키라고도 부른다.

foreign key
지정된 테이블의 기본키 컬럼의 값만 저장할 수 있다.
흔히 참조키, 외래키라고 부르며, null 값을 허용한다.

create table test_table4 (
id int,
data1 int not null,
foreign key (data1) references test_table1(id) on delete cascade
);

not null
컬럼에 null 값을 저장할 수 없으며 쿼리문을 통해 반드시 값이 지정되어야 한다.

unique
컬럼에 중복된 값을 저장할 수 없다.
null 값을 허용한다. (null 값은 중복으로 저장될 수 있다.)

create table test_table5 (
id int,
data1 int not null,
unique (data1)
);

default
null이 들어올 경우 기본으로 설정되는 값을 지정한다.
default를 설정할 경우 컬럼에 null을 저장할 수 없다.

create table test_table6 (
id int,
data1 int not null,
data2 varchar not null default 'stranger'
);

+ 서브쿼리를 이용한 테이블 생성

select문을 통해 가져온 결과를 이용해 테이블을 생성할 때 사용
CREATE TABLE TABLE명 AS SELECT문

create table test_table2 as select name from table1;

--table1의 구조와 똑같은 테이블 생성
--항상 거짓이 되는 조건을 걸어 데이터 값이 생성되지 않게 한다.
create table test_table3 as select * from table1 where 1=0;



📷 저장

row 단위로 저장된다.
컬럼에 저장될 값을 지정하지 않으면 null이 저장된다.
컬럼명을 생략하면 값이 순서대로 저장된다.
INSERT INTO TABLE명 (컬럼명) VALUES (값);

insert into test_table1 values (1, 'Ryan');



📽 수정

UPDATE TABLE명 SET 컬럼명=값 WHERE 조건

update test_table1 set name='Sam' where id=1;



🚫 삭제

데이터가 모두 삭제된다. (테이블이 삭제되는 것이 아님)
DELETE FROM TABLE명 WHERE 조건

delete from test_table1 where id=1;



🧚 유용한 명령어

RENAME 테이블의 이름을 변경할 수 있다.
ALTER 테이블의 컬럼을 변경하거나 추가, 삭제할 수 있다.
DROP 테이블을 삭제할 수 있다.

--테이블명 바꾸기
rename table old_name to new_name;

--컬럼의 자료형을 수정
alter table TABLEmodify 컬럼명 자료형;

--컬럼명을 바꾸기
alter table TABLE명 change old_컬럼명 new_컬럼명 자료형;

--새로운 컬럼 생성
alter table TABLEadd 컬럼명 자료형;

--특정 컬럼 삭제
alter table TABLEdrop 컬럼명;

--테이블 삭제
drop table TABLE


참고자료: 소프트캠퍼스

profile
꾸준히 나아가자!

0개의 댓글