728x90
목차
1. SQL 문법
- 데이터베이스
- 데이터베이스 확인하기
- 데이터베이스 생성하기
- 데이터베이스 삭제하기
- 데이터베이스 선택하기
- 테이블
- 테이블 만들기
- 테이블 확인하기
- 테이블 삭제하기
- 테이블 필드 추가하기
- 테이블 필드 수정하기
- 테이블 필드 삭제하기
- 데이터
- 데이터 값 확인 : select * from 테이블명
- 데이터 값 삽입하기
- 데이터 값 삭제하기
- 데이터 값 수정하기
1. SQL 문법
워크 벤치에서는 ;(세미클론)기준으로 실행 되기 때문에 넣어주어야 한다.
원래는 사용하지 않는데 SQL워크벤치에서 사용된다.
- SQL주석문 : /* */
- 한 줄 주석문 : # or --(타이푼)
2. 데이터베이스
- 데이터베이스 확인하기
show databases;
show databases;
- 데이터베이스 생성하기
-create database 데이터베이스명;
create database kdt;
- 데이터베이스 삭제하기
- drop database 데이터베이스명;
drop database kdt;
3. 테이블(table)
- 데이터를 행(로우)과 열(필드)로 스키마에 따라 저장할 수 있는 구조
- ✔스키마 - 데이터베이스의 구조와 제약조건에 관한 명세를 기술한 집합의 의미
- 엑셀의 시트와 같다.
테이블 생성 하는방법
create table 테이블명 (
필드명1 데이터타입 제약조건,
필드명2 데이터타입 제약조건,
필드명3 데이터타입 제약조건,
....
필드명n 데이터타입 제약조건
)
데이터 타입(Data Type)
- 1. 숫자형 타입
- tinyint : 정수형 데이트 타입 (1byte), -128 ~ 127 까지만 저장 할 수 있음
- smallint : 정수형 데이터 타입 (2byte), -32768 ~ 32767 까지 표현 가능
- mediumint : 정수형 데이터 타입 (3byte), -8388608 ~ 8388607 까지 표현가능
- int :정수형 데이터 타입 (4byte), ✔추천! 가장 기본형이라서 많이 쓰인다!
- bigint : 정수형 데이터 타입 (8byte), 거의 무제한 표현 가능
- float : 부동 소수형 데이터 타입 (4byte)
- decimal(길이, 소수) : 고정 소수형 데이터 타입 (길이 + 1byte)
- double : 부동 소수형 데이터 타입 (8byte), ✔추천! 소수점의 길이가 얼마인지 모를수 있기 때문에 많이 쓰임! 소수점이 민감한 곳(은행)
- 2. 문자형 타입
- char : 고정 길이 데이터 타입 (최대 255byte 저장 가능), 지정된 길이보다 짧은 데이터를 입력할 때 나머지 공간을 공백으로 채움(고정길이 때문에 자원 비효율적이다)!
- varchar : 가변 길이 데이터 타입 (최대 65535byte 저장 가능), ✔추천! 지정된 길이보다 짧은 데이터를 입력 할때 나머지 공간을 공백으로 채우지 않음
- text : 문자열 데이터 타입 (최대 65535byte 저장 가능)
- longtext : 무제한 문자열 데이터 타입 ,varchar이상 공간을 사용할거 같을때 사용 (예)게시판 내용
- 3. 이진 데이터 타입 (영상, 음악등이 담겨질수 있는 타입; 자주 사용하지 않는다.)
- binary 또는 byte : char의 형태의 이진 데이터 타입 (최대 255byte 저장 가능)
- varbinary : varchar의 형태의 이진 데이터 타입 (최대 65535byte)
- 4. 날짜 데이터 타입
- 날짜 계산 하기 위해서 존재, " 문자열 "로 만들면 계산 하기 힘드니깐
- date : 날짜(년도, 월, 일) 형태의 데이터 타입 (3byte)
- time : 시간(시, 분, 초) 형태의 데이터 타입 (3byte)
- datetime : 날짜와 시간 형태의 데이터 타입(8byte)
- timestamp : 1970년 1월 1일 0시 0분 0초부터 시작한 ms(밀리세컨드) 타입의 시간이 저장(4byte)
- 날짜 계산 하기 위해서 존재, " 문자열 "로 만들면 계산 하기 힘드니깐
제약조건(constraint)
- 데이터의 무결성을 지키기 위해 데이터를 입력 받을 때 실행되는 검사 규칙을 의미
- not null
- null 값을 허용하지 않는다.
- 중복값을 허용
- unique
- 중복값을 허용하지 않음
- null값을 허용
- primary key
- null 값을 허용하지 않음
- 중복값을 허용하지 않음
- 테이블에 단 하나만 사용 가능 !!!
- 테이블의 대표
- foreign key
- primary key를 가진 테이블과 연결하는 역할을 합니다.
- defult
- null 값을 삽입할 때 기본이 하는 되는 값을 저장할 수 있게 해주는 조건
- enum
- 원하는 범위를 설정하고 해당 범위의 값만 저장 해주는 제약조건 # 권장하지 않음
SQL 문법 실습
- 데이터베이스 선택 하기
- use 데이터베이스 명
use kdt;
- 테이블 만들기
- create table 필드명
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(), #회원가입한 날짜를 DB에서 직접 넣어 주는방법
point int default 0
);
- 테이블 확인하기
- desc 테이블명
desc member;
- 테이블 삭제하기
- drop table 테이블명
drop table member;
- 테이블 필드 추가하기
- alter table 테이블명 add 컬럼명 데이터타입 제약조건
alter table member add mbti varchar(10);
- 테이블 필드 수정하기
- alter table 테이블명 modify 컬럼명 데이터타입 제약조건
alter table member modify 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...)
insert into member (userid, userpw, username, hp, email, gender, ssn1, ssn2, zipcode, address1, address2, address3) values ('banana', '2345', '반하나', '010-2222-2222', 'banana@apple.com', '남자', '021122', '2222222', '2222', '경기도', '성남시', '중원구' );
4. 데이터
- 데이터 값 확인
- select * from 테이블명
select * from member;
- 데이터 삽입
- insert into 테이블명 values (값1, 값2, 값3, ....) #값은 필드 갯수 만큼 넣어줘야한다.
- insert into 테이블명 (필드명1, 필드명2, 필드명3 ...) values (값1, 값2, 값3...)
insert into member (userid, userpw, username, hp, email, gender, ssn1, ssn2, zipcode, address1, address2, address3) values ('banana', '2345', '반하나', '010-2222-2222', 'banana@apple.com', '남자', '021122', '2222222', '2222', '경기도', '성남시', '중원구' );
# 예시문)
insert into word values ('apple','사과',1);
# 필드의 갯수가 맞지 않아서 에러 발생 #Error Code: 1136. Column count doesn't match value count at row 1
insert into word values ('banana','바나나');
# 위의 에러 없애는법 : lev값을 넣고 싶지 않을땐 null값 넣어주기
insert into word values ('banana','바나나', null);
# 필드 제약조건에서 두번째 값은 not null 제약 조건을 넣어뒀기 때문에 오류
#Error Code: 1048. Column 'kor' cannot be null
insert into word values ('orange', null, null);
insert into word (eng, kor, lev) values ('melon', '멜론', 1);
# lev같은경우 필드 생성시 제약조건을 null들어갈수 있게 설정 해두었기 때문에
# 생략시 자동으로 null값이 들어간다.
insert into word (eng, kor) values ('orange', '오렌지');
#필드 제약조건 오류 #Error Code: 1364. Field 'kor' doesn't have a default value
insert into word (eng) values ('grapes');
- 데이터 삭제하기
- delete from 테이블명;
- delete from 테이블명 where 조건절;
- where 조건절 없이 삭제시 데이터가 싹 날라가기 때문에 한번에 지우는건 위험하다.
#그냥 사용하게 되면 오류가 발생하게 된다.
# mysql의 설정을 바꿔주던지 where절을 이용하시오.
delete from member;
- 조건절이 포함된 예시문
delete from member where userid = 'apple'; #userid가 apple인 행이 전체 삭제 된다.
delete from member where gender = '남자'; #gender값이 남자인 전체행이 삭제 된다.
- 데이터 수정하기
- update 테이블명 set 필드명1 = 값1, 필드명2=값2 ....
- update 테이블명 set 필드명1 = 값1, 필드명2=값2 .... where 조건절
#point의 값을 전부 100으로 바꾸고싶어 ~
update member set point=100;
#point가 100이 있는데 point에 +50 해주고 싶어 ~
update member set point=point+50;
#gender가 여자인 사람들만 point값을 300더 해주고싶어~
update member set point=point+300 where gender='여자';
#banana 회원의 이메일을 banana@naver.com으로 변경
update member set email='banana@naver.com' where userid = 'banana';
#오렌지 회원의 우편번호를 '12345', 주소 1은 '서울시 서초구', 주소2는 '양재동', 주소3은 '아파트 101동101호'
update member set zipcode='12345', address1='서울시 서초구', address2='양재동', address3='아파트101동101호' where username = '오렌지';
728x90
'개발 > MySQL' 카테고리의 다른 글
23.03.21MySQL 사용자, 뷰 (2) | 2023.03.21 |
---|---|
23.03.20MySQL 조인, 정규화, 문자열 함수 (0) | 2023.03.20 |
23.03.16MySQL연산자 이용하기 (1) | 2023.03.16 |
23.03.15 MySQL 설치 (0) | 2023.03.15 |
23.03.15 데이터 베이스(Data Base) (0) | 2023.03.15 |
댓글