Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

つ⋅⌄⋅)づ⌁⌁도움⌁⌁⋆

2020.06.08_수업일지 ( 데이터베이스 ) 본문

카테고리 없음

2020.06.08_수업일지 ( 데이터베이스 )

ㅈㅏ윤이 2020. 6. 8. 17:56

** 오늘의 꿀 팁!

cmd - ipconfig -> 내 IP 찾을 수 있다 

SSMS 주석 :  --  - 한 줄 주석

                 *~~~* - 블록 주석

ALL = * 

 

-  Select 실행시키기 

< 테이블 외의 데이터베이스 개체의 활용 >

테이블에서는 기본키 PK가 가장 중요하다! 

인덱스 : 책의 제일 뒤에서 붙어 있는 '찾아보기'와 같은 개념  -> 한 페이지씩 찾는 것보다 찾아보기를 통해 찾아가는 것이 더욱 효율적으로 찾을 수 있다 ( 속도 훨씬 빠름 ) 

지정안할시에는 생성이 안됨

뷰 : 가상의 테이블 / 사용자의 입장에서는 테이블과 같게 보이지만, 뷰는 실제 행 데이터를 자기고 있지 않으며, 테이블에 링크(Link)된 개념 - 그저 보기 위해서 실행되지는 것 ( 보여주고 싶은 것만 보여주기 위해서 가상의 테이블을 만든 것)

뷰 -> 시뷰 -> 원하는 뷰 만들기 -> 생성 -> 보여주고 싶은 것만 체크 -> 뷰 이름 생성 

실행시키면 똑같은 값이 나옴 -> 하지만  View 값은 가상의 값

 

저장 프로시저 : SQL Server에서 제공하는 프로그래밍 기능

( 메서드 = 함수 = 프로시저 )

저장 프로시저 -> 오른쪽 클릭 -> 새로 만들기 ->  저장프로시저 

실행시키면 저장 프로시저에 myProc 생성 

새쿼리로 실행시키키면 2개 한번에 실행된다

트리거 : 테이블에 부착되어서, 테이블에 INSERT나 UPDATE 또는 DELETE 작업이 발생하면 실행되는 코드

 

백업과 복원 

1 ) 백업

shopDB -> 태스크 -> 백업과 복원 선택 ->

확인선택시 SQL데이터 백업폴더에 백업된다 -> 복원은 반대로 하면 된다

2 ) 복원 

shopDB -> 태스크 -> 복원 -> 데이터베이스

window form 

서버 탐색기 - 데이터 연결 - 연결 추가 - 이름 IP , SQL 서버, 패스워드 , shopDB 선택하고 확인 

 

도구 상자 - 데이터 그리드 뷰 - 끌어당겨서 winform에 넣기 - 데이터그리드뷰 보기 - 프로젝트 데이터 소스 추가  

데이터베이스 - 데이터 세트 - 새 연결 ( 똑같이 선택) - 원하는 것 선택하면 실행된다

 

< SQL Server의 툴과 유틸리티 사용하기 >

- 테이블을 만드는 SQL문을 자동 생성하는 법

USE shopDB 드래그해서 사용 하는 것보다 훨씬 빠름

< Transact - SQL 기본 >

** T - SQL = >1. DML : 데이터를 조작하기 위한 언어 ( 가장 많이 사용 )

                            -  선택(Slecet)-R/삽입(Insert)-C/삭제(Delete)-D/수정(Update)-U -> CRUD

                            -  트랜잭션(transaction) 을 발생 ( SELECT 제외 )

  C R U D
회원 o o o X

-> CRUD 중 D를 안 만들겠다

                    2. DDL : 데이터베이스 개체를 생성(Create)/삭제(Drop)/변경(Alter) / 데이터 정의 언어

                              - 트랙잭션 반생시키지 않음 -> 잘못만들면 지우고 새로 만들어야해서 

                    3. DCL : 사용자에게 어떤 권한을 부여하거나 빼앗을 때 사용 / 데이터 제어 언어

                              -  Grant/Revoke/Deny 

 

- SELECT 문 : 데이터베이스 내의 테이블에서 원하는 정보를 추출하는 명령이다

[ WITH <common table expression)>]

Select select _list [INTO new table] 

[ FROM table source ] [ WHERE search condition ]

[ GROUPby group_by_xpression ]

[ HAVING search_condition ]

[ ORDER BY order_expression [ ASC! DESC ] ] 

 

SELECT 열 이름

FROM 테이블 이름

WHERE 조건

 

sqlDB

 

INT IDEINT IDENTITY = 숫자 하나씩 늘려 순번을 매기겠다

PRIMARY KEY = 무조건 기본 NOT NULL

FOREIGN KEY REFERENCES userTBL(userID) = userTBL에서 useID를 가져와서 사용하겠다 ( 참조하겠다 )

groupName -> NULL 허용하겠다 

마지막에는 , 를 넣어주지 않는다

 

데이터베이스 다이어그램 오른쪽 클릭- 새로운 데이터베이스 다이어그램 - 추가해준다

열쇠는 관계를 맺었다는 것을 표현 

 

탭유지하기 
값의 순서는 열의 순서대로 들어간다./ 갯수가 8개이면 8개 다 넣어줘야한다.
선택하여 F5하면 실행되서 저장

< 특정한 조건의 데이터만 조회하는 SELECT .....FROM ......WHERE >

WHERE 절은 조회하는 결과에 특정한 조건을 줘서 원하는 데이터만 보고 싶을 때 사용한다

-> ' '안에 있는 것 전체를 찾고 싶을 때는 =

- >L로 시작하는 사람을 찾고 싶을 때  LKE L% 를 사용해서 찾는다

- >부호를 사용해서도 사용 가능하다 

-> 2개의 조건을 걸 수도 있다 ( AND, OR )

-> 같은 값이 나온다 BETWEEN 사용했을 때 더 간편하다 

->IN 을 사용하면 더 간단하게 사용 가능

-> '_누구'  _ 에는 누가 들어가도 괜찮다 그러나 글자수는 3글자로 맞쳐줘서 나온다

    '김_ _' 도 가능 / 갯수와 매칭된다

( 서브쿼리 / ANY, ALL, SOME )

김경호의 키가 값에 들어가서 김경호 키보다 큰 사람을 도출해낸다

(SELECT height
FROM userTBL               =       (177)
WHERE name = '김경호') 

- 오류의 경우 - 여라가지의 값이 나오게 되면 에러 발생한다 -> IN 절 사용

- ANY 는 뭐든지 상관없다를 의미 

PK의 영어 순서대로 정열되서 나온다 ( 오름차순 ) - ASC / 기본정렬 작은 것부터 - > 큰 것

- ORDER BY : 결과가 출력되는 순서를 조절하는 구문

순서 거꾸로 나온다  ( 내림차순 )  - DESC  / 큰 것부터 - > 작은 것

- price 를 내림차순으로 하고 같은 price를 가지고 있는 것은 userID 오름차순으로 정리된다

- 같은 내용을 지우는 것이 DISTINT /  userTBL 안에 addr을 꺼내기 & ASC 내림차순으로 정렬 

- SQL 서버에 특화된 TOP() -> TOP안에 있는것만을 도출 / DESC이용해 밑에서부터 도출도 가능

- SELECT INTO : 테이블을 복사해서 사용할 경우 사용 / 필요한것만 복사해서 사용하고 싶을 때

userID 와 prodName만 복사해서 새로운 테이블을 만듬 / 복사한 것은 내용만 복사해서 키와 나머지들은 없다.

 

( GROUP BY, HAVING과 집계 함수 )

: 결과를 그룹으로 묶어준다

-> 열이름 없음 이 나온다 / SUM = 숫자를 센다 / GROUP BY  = 그룹으로 묶어서 계산해준다 

이름을 지어주는 것 -> AS

함수명 설명
AVG() 평균을 구한다
MIN() 최소값을 구한다
MAX() 최대값을 구한다
COUNT() 행의 개수를 센다
COUNT_BIG() 개수를 센다 ( 단 결과값이 bigint형이다 )
STDEV() 표준편차를 구한다
VAR() 분산을 구한다

 

- AVG 사용
grouping 작업 / AS로 그룹의 이름을 정해준다 
name 넣으면 에러 -> GROUP화 안되있어서
WHERE을 사용해서 제일 키가 큰 사람, 제일 작은 사람을 찾아낼 수  있다.
- 총 회원수 

- COUNT 는 숫자를 센다

- ~~이 없는 것으 찾을 때는 WHERE ____IS NULL 을 사용 

- 총무매한 사람 보기 1 
- 총 구매자중 1000 이상인 사람만 필터링하기 

WHERE 사용불가 -> HAVING 사용해준다 -> ASC 사용시 내리차순으로 정리

WHERE - 값들을 필터링 - 집계함수는 나타낼 수 없다 -> HAVING 사용 

HAVING - 집계함수에 대해서 조건을 제한하는 것 -> 반드시 GROUP BY 뒤에 나와야 한다 ( 순서 중요 )

ORDER BY - 정렬시 사용