티스토리 뷰
DB 생성 & 한글 인코딩 설정
- DB를 생성하고 한글값을 저장하기 위해서는 인코딩 값을 utf8로 설정해줘야 한다.
-- db 생성 & 한글 설정
create database test_db
character set = 'utf8'
collate = utf8_general_ci;
-- db 사용
use test_db;
Table 생성
-- table 생성
create table 테이블명 (
컬럼이름 자료형 제약조건,
컬럼이름 자료형 제약조건
);
-- 예시
create table test_table2(
data1 int(10) primary key,
data2 varchar(10) not null,
data3 float(10, 2)
);
테이블 생성시 type에 올 수 있는 것들
모든 자료형을 확인하고 싶다면 mysql 사이트에 가서 확인해보자 -> https://dev.mysql.com/doc/refman/8.0/en/data-types.html
참고) char(n)와 varchar(n)의 차이
- char 형은 char(10)으로 설정시 한글자만 넣더라도 메모리 공간은 10byte를 잡는다. 이에 반해 varchar는 varchar(10)으로 설정해도 한글자만 넣어으면 1byte만 메모리 공간을 갖게된다.
- 단, 조회의 속도는 char형이 varchar형보다 더 빠르므로 길이의 차이가 별로 나지 않는 곳에는 char를 사용하고, 본문 등 길이의 차이가 제각각인 곳에는 varchar를 사용하는것이 효과적이다.
create table post (
name char(10) not null,
body varchar(10000),
)
위와 같이 설정 시
name은 항상 10byte를 공간을 갖고,
body는 내용에 따라 가변적으로 공간을 갖게된다.
테이블 생성 모습
서브쿼리를 이용한 테이블 생성
- select 결과를 받아서 이를 테이블로 생성할 수 있다.
- 결과의 내용을 전부 옮길 수도 있고, 원하는 컬럼만 옮길 수도 있으며, 내용은 전혀 옮기지 않고 테이블 구조만 가져와서 만들 수도 있다.
-- select 결과를 가지고 테이블 생성
create table 테이블명
as
select * from 다른 테이블
-- select 결과 중 특정 열만 가지고 테이블 생성
create table dept
as
select dept_no from departments;
-- select 결과에 대해서 값은 가져오지 않고 테이블 구조만 똑같이 생성
-- 조건을 항상 틀리는 조건을 달면 된다.
create table dept
as
select * from departments where 1=0;
반응형
'CS > MySql 정리' 카테고리의 다른 글
mysql 학습정리 : 트랜잭션 (rollback, commit, savepoint, truncate) (0) | 2021.10.14 |
---|---|
mysql 학습정리 : 데이터 저장, 수정, 삭제 (insert, update, delete) (0) | 2021.10.13 |
mysql 학습정리 : set _ 집합연산 (0) | 2021.10.11 |
mysql 학습정리 : 서브 쿼리 (0) | 2021.10.09 |
mysql 학습정리 : Join (카티전 프로덕트, 동등조인) (0) | 2021.10.07 |
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday