표준 SQL이 있고 각 DB만의 특별한 함수도 있다(방언).
틀을 정하는가 안정하는가
입력수정삭제는 sql 읽기,조회는 nosql이 유리하다.
전통적 방법
-- 데이터 베이스 생성
CREATE DATABASE sparta_test;
-- 테이블 생성
CREATE TABLE sparta_test.student(
id int PRIMARY KEY AUTO_INCREMENT
,
name varchar(50) NOT NULL
,
email varchar(50) unique
)
sparta_test라는 db에 student라는 table을 만든다
dbeaver을 이용해 쉽게 만들기
database 우클릭 database생성 table 우클릭 생성 등 쉽게 할 수 있다.
데이터 입력 - into 목표테이블(컬럼) values(컬럼에 들어갈 내용)
INSERT
INTO
student (
id
, name
, email
)
VALUES(
1
, '정영훈'
, 'jye7@naver.com'
)
id는 자동으로 생성되게 설정했다. id에 숫자를 안넣어도됨
INSERT
INTO
student
VALUES(
Null
,
'가나다'
,
'111@mail.com'
);
데이터 지우기
DELETE
FROM
student
WHERE
id = 1;
where을 사용안하면 모든 데이터가 삭제 된다.
업데이트
UPDATE 테이블명 set 컬럼 = '수정할내용'
where id = 원하는 위치
검색
select * form 테이블
Where 컬럼 like = '%찾고자 하는 값' -> %뒤에 를 찾아라
NULL 검색
select * form 테이블
Where IS NULL -> not을 붙이면 null아닌것을 나타냄
실행 command+enter
creat table city(
id int primary key auto_increment - id자동 생성
,
name varchar(50) not null
)
insert
into
city (name)
values
('서울'),
('도쿄'),
('뉴욕'),
('상하이'),
('파리')
alter table '테이블명' add '컬럼명'
ALTER TABLE student
ADD city_id int;
ALTER TABLE student ADD FOREIGN KEY (city_id) REFERENCES city(id)
1.요구사항 수집 및 분석
2.설계
정규화 - 중복데이터를 없애고 관계를 단순하게, 종속성을 최대한 제거한다는 느낌으로 여러 테이블을 만드는것이 종속성을 유지하는 것보다 낳다. - 안하면 고생한다.
3정규화 까지 하고 4,5,는 천천히 해나가면됨
쿼리 코드를 배워야 하는 이유는 - 알아야 코드를 쓸수 있어서 - 프로그램이 다른 프로그램에게 요청과 응답을 할때 코드로 되기 때문에 구글링(orm)
nosql - 많은 데이터를 가져야 할 때 -> 구글링(샤딩) - 한곳에서 전부 가지고있지 않고 나눠가지고 메인이 찾으라 할때 찾는 sql은 모두가 원본을 그대로 가지고 있음 -nosql은 스키마를 가질 필요 없는 이유이고
db설계 - 잘 한 예시는 없다? -> 정규화를 하는게 잘한 예시
db처음 설계 할 때
1. 엑셀을 쓴다 생각하고 써보자. -> 엑셀을 예쁘게 정리하기
2. 통계를 낼 수 있게 정리를 하면서 써보자 -> id를 부여하는 이유 상품명 혹은 이름으로 표현하면 오류가 날 수 있어서
3. 목적이 있는 데이터 끼리 모으고 목적이 있는 데이터에 id를 준다.