데이터베이스는 개인적으로 학교에서 가장 재미있게 수업을 듣고 조금 더 심도 있게 들어가고 싶은 수업 중 하나이다. 처음에는 재밌게 하지만 뒤로 갈수록 어려워져서 잘 생각하면서 쿼리를 작성해야한다.
✅ 데이터베이스도 프로그램이 여러 종류가 있다. 학교에서는 오라클을 위주로 수업을 했으나, 학원에서는 Mysql을 바탕으로 이루어지고 있다. 프로그램 별로 사용하는 언어가 조금씩 다를 수 있으니 참고 바란다.
데이터 베이스를 관리해주는 소프트웨어
String sql = "select * from TB_Member where userid = 'apple'";
show databases;
create database 데이터베이스명;
use 데이터베이스명;
drop databases 데이터베이스명;
CREATE TABLE 테이블명 (
필드명1 필드타입 제약조건,
필드명2 필드타입 제약조건,
...
필드명n 필드타입 제약조건
)

CREATE TABLE tb_member(
mem_idx bigint 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 char(6) not null, -- 주민번호 앞자리
mem_ssn2 char(7) not null, -- 주민번호 뒷자리
mem_zipcode char(5), -- 우편번호
mem_address1 varchar(100),
mem_address2 varchar(100), -- 상세주소
mem_address3 varchar(100), -- 특이 사항
mem_regdate datetime default now() -- 자동으로 시간을 저장할 수 있도록
);
DESC 테이블명;
DROP TABLE 테이블명;
ALTER TABLE 테이블명 ADD 컬럼명 컬럼타입 제약조건;
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 컬럼타입 제약조건;
ALTER TABLE 테이블명 DROP 컬럼명;
-- 방법1) 모든 테이블의 모든 값을 fix에서 넣을때만
INSERT INTO 테이블명 VALUES(값1, 값2, 값3...);
-- 방법2)
INSERT INTO 테이블명(필드명1, 필드명2,..) VALUES (값1, 값2...);
방법1) 전체 데이터 수정
UPDATE 테이블명 SET 필드 1 = 값1, 필드2 = 값2..
ex) UPDATE tb_member set mem_hobby = '운동';
방법2) 특정 행만 수정
UPDATE 테이블명 SET 필드 1 = 값1, 필드2 = 값2.. WHERE 조건절;
ex) UPDATE tb_member set mem_hobby = '운동' WHERE mem_userid = 'apple';
방법3) where절 이용
update tb_member set mem_point = mem_point + 500 where mem_userid = 'lemon';
방법1) 전부 삭제
DELETE FROM 테이블명;
ex) DELETE FROM tb_member;
방법2) 조건절을 사용하여 삭제
DELETE FROM 테이블명 WHERE 조건절;
ex) DELETE FROM tb_member WHERE mem_userid = 'apple';
(👉🏻가장 많이 사용되므로 잘알고 있기!👈🏻)
기본문법)
Select 필드명1, 필드명2... From 테이블명;
where절 이용)
Select 필드명1, 필드명2... From 테이블명;
정렬)
SELECT 필드명1, 필드명2, FROM 테이블명 ORDER BY 정렬할 필드(ASC, DESC);
group by 이용)
SELECT 그룹을 맺은 필드 또는 집계함수 FROM 테이블명 GROUP BY 필드;
기본 문법) 필드 as 별명
예시)
select mem_gender, count(mem_idx) as count, sum(mem_point) as sum, max(mem_point) as max , min(mem_point) as min
from tb_member
group by mem_gender;
select 컬럼명1, 컬럼명2... from 테이블 1(Inner, left, right) join 테이블2 on 테이블1.필드명 = 테이블2.필드명

-- 기본 문법
select 테이블별칭.조회할 칼럼, 테이블별칭.조회할칼럼
from 기준 테이블 별칭 Inner join 조인테이블 별칭 on 기준테이블별칭.기준키 = 조인테이블별칭.기준키..
-- 예시
select mem_idx, mem_userid, mem_name, pro_gender, pro_height, pro_weight
from tb_member
inner join tb_profile on tb_member.mem_idx = tb_profile.pro_useridx;

-- 기본 문법
select 테이블별칭.조회할 칼럼, 테이블별칭.조회할 칼럼
from 기준테이블 별칭
left join 조인테이블 별칭 on 기준테이블명.기준키 = 조인테이블별칭.기준키..
-- 예제
select mem_idx, mem_userid, mem_name, pro_gender, pro_height, pro_weight
from tb_member
left join tb_profile on tb_member.mem_idx = tb_profile.pro_useridx;

-- 기본 문법
select 테이블별칭.조회할칼럼, 테이블별칭.조회할칼럼
from 기준테이블 별칭
right join 조인테이블 별칭 on 기준테이블별칭.기준키 = 조인테이블별칭.기준키..
-- 예시
select mem_idx, mem_userid, mem_name, pro_gender, pro_height, pro_weight
from tb_member
right join tb_profile on tb_member.mem_idx = tb_profile.pro_useridx;