티스토리 뷰
관계형 데이터 모델을 주로 이용한다.
속성 - 열 튜플, 레코드 - 행
테이블의 특성
중복된 레코드가 존재하지 않음
레코드간의 순서는 의미 없음
자주쓰는걸 앞에 쓰는게 좋다고 생각한다 . (이론적으로는 의미없음)
레코드간의 순서가 의미가 없으므로 Key가 중요하다.
복합키, (두개이상의 키 )
수퍼키 ( 아무런 제약 조건 없이 레코드를 식별 )
후보키 ( 최소한의 필드만으로 구성된 키 )
기본키 ( Null 이 없어야함 Unique 해야함 변하면 안됨 ) -- 자연키는 원래 들어갈 속성 ( 학번 등 ,)
-- 대리키는 인위적으로 만들어 준 것 (인크리더블 키)
기본키는 크기가 작은게 좋기때문에 실무에서는 대리를 만들어서 사용한다 . user_sno
SQL 언어
DDL - 테이블을 바꾸ㅡㄴ 것 CREATE ARTER - 필드 추가할때 사용 , 제약조건 추가할때도 사용 [ 행을 고치지 않는이상 거의 알터 ] (스키마 추가) DROP - 테이블 삭제 ,,외래키가 있으면 그 키테이블을 먼저 삭제해주고 삭제해야한다. 아니면 오류
DML - 데이터 조작 언어 SEARCH INSERT DELETE UPDATE
외래키 지정은 Constrains 에서 할 수 있다 (3번 째 )
외래키를 지정하려면 외래키가 있는 테이블이 먼저 있어야 한다.
디폴트 벨류를 설정해주면 그 필드에 값이 안들어갔을때 그 값을 넣어준다.
Update 테이블 이름
set 수정 내여
where 조건 ,, 무조건 맨 밑에 잇어야함
이미 만들어진 행을 삭제하지 않아야함
delete 문은위험하ㅏ. (테이블 내의 필드를다 삭제한다 )
Select 테이블 이름
from 테이블 리스트
where 조건
Order by 이름등을 글자순 으로 표시하고 싶을 때 쓴다 . (오름 차순, 내림 차순)
동일 테이블이 두번 사용되는경우 등 무조건 재명명을 사용해야 하는 경우가 있다.
Umobi
//////////////////////////////////////
like 연산자 - 검색기능을 사용하고 싶을 때 MySQL 과 다른거 등이 다 다름 MySQL 은 %사용
where 필드 like '문자'
'%서울%' = 서울이 포함된 모든 글
'%서울' = 서울로 끝나는 것만
'서울%' = 서울로 시작하는것만
'___' = 문자 세개인것만
'___%' 세개 이상
'서__' 서로 시작하면서 세글자인 것만
//////////////////////////////////////////////////////////////
union 테이블을 동시에 같이 출력시키고 싶을때 사용할만 하다 . (교수테이블과 학생테이블을 한 화면에 보여줄때)
join
COUNT(*) , COUNT( distict<필드이름> ) ==> 그 필드가 Null 이 아닌값이 몇개인지
SUM(대상의 속성 ex. age) - 숫자여야함
AVG() - 숫자여야함
MAX()
MIN()
GROUP BY가 들어가계게 되면 그룹바이를 하게 된 필드랑 통계 함수밖에 못쓴다 오더바이 한 필드들이랑 통계함수만 쓰는게 맞다 그래서 그냥 max(name)이런식으로 사용함 그냥 name 만 쓰면 통계를 사용한게 아니라서
작성순서는 웨어 그룹바이 오더바이 순으로 작성해야한다
HAVING <집계함수 조건>
예를들어 where 는 뭘 제외 이런걸 못하는데 HAVING은 할 수 있다
오더바이 다음에 쓴다
NULL 은 바로 못참음
즉
SELECT *
from db
WHERE name is not null 또는 WHERE name is null 일반적일떈 WHERE name = 'jinhyeok' 하면 진혁을 찾는것
in은 여러개의 조건을 붙일때 (포함되었는가)
SELECT *
from db
WHERE age in (111,222,333) or WHERE age not in (111,222,333)
SELECT *
from db
WHERE age in (111,222,333) or WHERE age not in (111,222,333)
exits 조건 (만약 조건이 맞다면 TRUE 반환 아니면 FALSE 반환)
뷰는 셀렉트만 할 수 있는 것 (실무서 안 씀 )
MAPPER의 XML에 넣어두면 작동한다
'Web&App > 데이터베이스' 카테고리의 다른 글
스프링과 데이터베이스 연동2 (0) | 2020.01.22 |
---|---|
스프링과 데이터베이스 연동 (0) | 2020.01.22 |