티스토리 뷰

관계형 데이터 모델을 주로 이용한다.

속성 - 열  튜플, 레코드 - 행

테이블의 특성
중복된 레코드가 존재하지 않음
레코드간의 순서는 의미 없음
자주쓰는걸 앞에 쓰는게 좋다고 생각한다 . (이론적으로는 의미없음)

레코드간의 순서가 의미가 없으므로 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
댓글
최근에 올라온 글
최근에 달린 댓글
250x250