데이터 베이스 선택
use 데이터베이스명;
use kdt;
테이블 만들기
create table 테이블명 (
필드명1 데이터타입 제약조건,
필드명2 데이터타입 제약조건,
필드명3 데이터타입 제약조건,
...,
필드명n 데이터타입 제약조건
);
create table member(
userid varchar(20) primary key,
userpw varchar(200) not null,
username varchar(20) not null,
hp varchar(20) not null,
email varchar(50) not null,
gender varchar(10) not null,
ssn1 varchar(6) not null,
ssn2 varchar(7) not null,
zipcode varchar(5),
address1 varchar(100),
address2 varchar(100),
address3 varchar(100),
regdate datetime default now(),
point int default 0
);
auto_increment
- 필드의 identity한 숫자를 자동으로 부여
- primary key로 등록해야됨
create table tel(
idx int auto_increment primary key,
name varchar(20) not null,
hp varchar(20) not null,
job varchar(20),
regdate datetime default now()
);
insert into tel (name, hp, job) values('김사과', '01011111111', '학생');
insert into tel (idx,name, hp, job) values(2,'반하나', '01022222222', '학생');
insert into tel (idx, name, hp, job) values(10,'오렌지', '01033333333', '학생');
# primary key로 등록되어 있기 때문에 중복값을 허용하지 않으므로 오류
insert into tel (idx, name, hp, job) values(2, '이메론', '01044444444', '학생'); # Error Code: 1062. Duplicate entry '2' for key 'tel.PRIMARY'
insert into tel (name, hp, job) values('이메론', '01044444444', '학생');
1 | 김사과 | 01011111111 | 학생 |
2 | 반하나 | 01022222222 | 학생 |
10 | 오렌지 | 01033333333 | 학생 |
11 | 김사과 | 01011111111 | 학생 |
12 | 이메론 | 01044444444 | 학생 |
테이블 확인하기
desc 테이블명;
desc member;
테이블 삭제하기
drop table 테이블명;
drop table member;
테이블 필드 추가하기
alter table 테이블명 add 컬럼명 데이터타입 제약조건;
alter table member add mbti varchar(10);
테이블 필드 수정하기
alter table 테이블명 modify column 컬럼명 데이터타입 제약조건;
alter table member modify column mbti varchar(20);
테이블 필드 삭제
alter table 테이블명 drop 컬럼명;
alter table member drop mbti;
데이터 삽입하기
insert into 테이블명 values (값1, 값2, 값3 ..)
insert into 테이블명 (필드명1, 필드명2, 필드명3 ..) values (값1, 값2, 값3 ..)
# desc 테이블명
desc member;
create table word(
eng varchar(50) primary key,
kor varchar(50) not null,
lev int
);
insert into word values('apple', '사과', 1);
# lev컬럼에 데이터를 삽입하지 않아 오류 발생
insert into word values('banana', '바나나'); # Error Code: 1136. Column count doesn't match value count at row 1
insert into word values('banana', '바나나', null);
# kor 컬럼이 not null 제약조건이 걸려있으므로 오류 발생
insert into word values('orange', null, null); # Error Code: 1048. Column 'kor' cannot be null
insert into word (eng, kor, lev) values ('melon', '메론', 1);
insert into word (eng, kor) values ('orange', '오렌지'); # lev에 자동으로 null값이 들어가서 오류가 발생하지 않음
# default 값이 들어가 있지 않으므로 오류 발생
insert into word (eng) values ('grapes'); # Error Code: 1364. Field 'kor' doesn't have a default value
insert into member(userid, userpw, username, hp, email, gender, ssn1, ssn2) values ('apple', '1111', '김사과', '010-1111-1111', 'apple@apple.com', '여자', '000000', '0000000');
insert into member(userid, userpw, username, hp, email, gender, ssn1, ssn2) values ('banana', '2222', '반하나', '010-2222-2222', 'banana@banana.com', '여자', '111111', '1111111');
insert into member(userid, userpw, username, hp, email, gender, ssn1, ssn2) values ('orange', '3333', '오렌지', '010-3333-3333', 'orange@orange.com', '남자', '222222', '2222222');
insert into member(userid, userpw, username, hp, email, gender, ssn1, ssn2) values ('melon', '4444', '이메론', '010-4444-4444', 'melon@melon.com', '남자', '333333', '3333333');
insert into member(userid, userpw, username, hp, email, gender, ssn1, ssn2) values ('grapes', '5555', '표도르', '010-5555-5555', 'grapes@grapes.com', '남자', '444444', '4444444');
데이터 삭제하기
delete from 테이블명;
delete from 테이블명 where 조건절;
# 안전 모드가 되어있어서 오류
delete from member; # Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
Safe mode 끄기
- Workbench 상단 Edit -> Preferences
- 왼쪽 상단 SQL Editor -> 밑으로 내려서 Safe Updates 체크박스 해제
delete from member; # 세이프 모드를 해제하고 실행하면 오류가 나지 않음
조건절이 들어간 delete문
delete from member where userid = 'apple'; # userid가 apple인 사용자를 삭제
delete from member where gender = '남자'; # 성별이 남자인 사용자를 삭제
데이터 수정하기
update 테이블명 set 필드명1=값1, 필드명2=값2 ...;
update 테이블명 set 필드명1=값1, 필드명2=값2 ... where 조건절;
update member set point=100; # 모든 사용자의 포인트를 100으로 수정
update member set point=point+50; # 모든 사용자 개인의 포인트에 50을 더해서 수정
조건절이 들어간 update문
update member set point=point+300 where gender='여자'; # 성별이 여자인 사용자에게 포인트를 300 추가하여 수정
update member set email='banana@naver.com' where userid='banana'; # id가 banana인 회원의 이메일 주소를 수정
# 오렌지 회원의 우편번호를 '12345', 주소1은 '서울시 서초구', 주소2는 '양재동', 주소3은 '아파트 101동 101호'로 변경
update member set zipcode='12345', address1='서울시 서초구', address2='양재동', address3='아파트 101동 101호' where username='오렌지';
'MySQL' 카테고리의 다른 글
5. 문자열 함수 (0) | 2023.03.20 |
---|---|
4. 정규화(Normalization) (0) | 2023.03.20 |
3. Select (0) | 2023.03.16 |
1. DataBase(데이터 베이스) (0) | 2023.03.16 |
0. MySQL 설치 (0) | 2023.03.15 |