[ 목차 ]
728x90
반응형
# 한 줄 주석문
-- 한 줄 주석문
/*
여러 줄 주석문
...
*/
# 데이터베이스 확인하는 방법
show databases;
# 데이터베이스 생성 법
# create database 데이터베이스명;
create database aidev;
#데이터베이스 삭제
# drop database 데이터베이스명;
drop database aidev;
# 데이터베이스 선택
# use 데이터베이스명
use aidev;
# 테이블 확인
# desc 테이블명
desc tb_member;
# 테이블 삭제
# drop table 테이블 명
drop table tb_member;
# 테이블 필드 추가
# alter table 테이블명 add 컬럼명 타입 제약조건
alter table tb_member add mem_point int default 0;
# 테이블 필드 수정
#alter table 테이블명 modify column 컬럼명 컬럼타입 제약조건
alter table tb_member modify column mem_point double default 0;
# 테이블 필드 삭제
# alter table 테이블명 drop 컬럼명
alter table tb_member drop mem_point;
# 테이블(table)
# 데이터를 행과 열로 스키마에 따라 저장할 수 있는 구조
# 스키마 : 데이터베이스의 구조와 제약조건에 관한 명세를 기술한 집합의 의미
/*
create table 테이블명 (
필드명1 타입 제약조건,-- 예) no int not null, -> 속성 명은 no이고 정수형 int가 와야하며 not null 데이터가 없으면 에러가 된다.
필드명2 타입 제약조건,
...
필드명n 타입 제약조건
)
*/
*
데이터 타입
1. 숫자 타입
- 정수 : tinyint, smallint, mediumint, int, bigint ...
- 실수 : float, double
2. 문자열 타입
- 텍스트 : char, varchar(65535byte까지 저장), text
char(10) -> 1byte만 저장하더라도 총 10byte를 소모
varchar(10) -> 1byte를 저장하면 총 1byte만 사용
- 바이너리 : binary, varbinary
EX) 이미지, 영상, 사운드 등
- 열거 : enum
EX) enum('남자','여자') -> 남자,여자가 들어있는 글자만 사용할 수 있다.
3. 날짜와 시간타입 - 날짜 연산하기 위해 사용
- 날짜 : date
- 날짜와 시간타입 : datetime, timestamp(1970년 1월 1일 0시0분0초 ~) ms(1000분에 1초마다 증가)
*/
/*
제약조건
데이터의 무결성을 지키기 위해 데이터를 입력받을 때 실행하는 검사 규칙
- NOT NULL
필드에 NULL 값을 저장할 수 없음
- UNIQUE
중복된 값을 저장할 수 없음(동일한 값은 저장불가)
NULL은 저장할 수 있음
- DEFAULT -> default 100 이면 null을 저장하면 null은 100이 된다.
기본값을 설정, NULL을 저장할 떄 기본값을 설정
- AUTO_INCREMENT
자동으로 숫자가 증가되어 추가
중복값이 저장되지 않음
직접 데이터를 추가할 수 없음
auto_increment를 사용한 필드는 primary key로 등록
no int auto_increment 자동으로 1번부터 증가하며 데이터가 들어간다.
- PRIMARY KET
UNIQUE제약과 NOT NULL제약을 동시에 적용
테이블에 오직 하나의 필드에만 적용
데이터를 쉽고 빠르게 검색할 수 있도록 설정(색인 - index)
외래키가 참조할 수 있도록 설정
EX) select 아이디, 비밀번호 from 회원 where 아이디 ='apple';
- FOREIGN KEY
기본 키에 저장되어 있는 값만 외래 키에 저장될 수 있다.
다른 테이블과 연결해주는 역할
기준이 되는 테이블의 내용을 참조해서 레코드를 입력
PRIMARY KEY를 참조
*/
# 테이블 만들기
create table tb_member(
mem_idx int auto_increment primary key,
mem_userid varchar(20) unique not null,
mem_userpw varchar(20) not null,
mem_name varchar(20) not null,
mem_hp varchar(20) not null,
mem_email varchar(50) not null,
mem_hobby varchar(100),
mem_ssn1 varchar(6) not null,
mem_ssn2 varchar(7) not null,
mem_zipcode varchar(5),
mem_address1 varchar(100),
mem_address2 varchar(100),
mem_address3 varchar(100),
mem_regdate datetime default now()
);
# 데이터 삽입
# insert into 테이블명 values (값1, 값2, 값3..)
-- 자동으로 들어가는 값이 있으면 사용할 수 없다.
# insert into 테이블명 (필드명1, 필드명2, 필드명3..) values ((값1, 값2, 값3..)
insert into tb_member(mem_userid,mem_userpw,mem_name,mem_hp,mem_email,mem_ssn1,mem_ssn2)
values ('apple', '1111','김사과','010-1111-1111','apple@apple.com','001011','4068518');
insert into tb_member (mem_userid, mem_userpw, mem_name, mem_hp, mem_email, mem_ssn1, mem_ssn2)
values ('banana', '2222', '반하나', '010-2222-2222', 'banana@banana.com', '001111', '4068518');
insert into tb_member (mem_userid, mem_userpw, mem_name, mem_hp, mem_email, mem_ssn1, mem_ssn2)
values ('orange', '3333', '오렌지', '010-3333-3333', 'orange@orange.com', '001212', '4068518');
insert into tb_member (mem_userid, mem_userpw, mem_name, mem_hp, mem_email, mem_ssn1, mem_ssn2)
values ('melon', '4444', '이메론', '010-4444-4444', 'melon@melon.com', '000101', '4068518');
insert into tb_member (mem_userid, mem_userpw, mem_name, mem_hp, mem_email, mem_ssn1, mem_ssn2)
values ('cherry', '5555', '채리', '010-5555-5555', 'cherry@cherry.com', '000202', '4068518');
insert into tb_member (mem_userid, mem_userpw, mem_name, mem_hp, mem_email, mem_ssn1, mem_ssn2)
values ('berry', '6666', '배애리', '010-6666-6666', 'berry@berry.com', '000303', '4068518');
create table tb_test(
t_idx int,
t_name varchar(20),
t_age int,
t_hp varchar(20)
);
insert into tb_test values(1,'김사과',20,'010-1111-1111');
-- 한 개는 유니크한 아이덴티티가 있어야 한다. 왜냐하면 위처럼 계속해서 중복값이 들어가고 구분을 할 수 없기 떄문이다.
insert into tb_test (t_idx,t_name,t_age) values (2,'반하나',23);
반응형
'DB > MySQL' 카테고리의 다른 글
MySQL 계정관리 (0) | 2022.10.17 |
---|---|
데이터베이스 CRUD (0) | 2022.10.13 |
데이터베이스 기본 (0) | 2022.10.12 |