Presentation is loading. Please wait.

Presentation is loading. Please wait.

SQL Study.

Similar presentations


Presentation on theme: "SQL Study."— Presentation transcript:

1 SQL Study

2 Cross Join (교차 조인) SELECT * FROM tbl_namelist CROSS JOIN tbl_grades;
조인되는 테이블들 사이의 모든 레코드의 모든 조합을 결과로 보여준다.

3 Inner Join (내부 조인) SELECT tbl_namelist.no, name, history, science
FROM tbl_namelist INNER JOIN tbl_grades ON tbl_namelist.no = tbl_grades.no; ㄹㅇㅎㄴ 서로 다른 테이블의 레코드의 값과 비교하여 조건에 맞는 레코드만 보여준다. (학생 테이블에 서해근 학생이 있더라도 서해근 학생의 번호와 맞는 번호가 성적 테이블에 존재하지 않기 때문에 출력되지 않았다)

4 Left Outer Join SELECT tbl_namelist.no, name, history, science
FROM tbl_namelist LEFT OUTER JOIN tbl_grades ON tbl_namelist.no = tbl_grades.no; 서로 다른 테이블의 레코드의 값과 비교하여 조건에 맞는 레코드를 출력하고 맞는 레코드가 없더라도 JOIN문 왼쪽에 있는 레코드는 모두 출력한다.

5 Right Outer Join SELECT tbl_namelist.no, name, history, science
FROM tbl_namelist RIGHT OUTER JOIN tbl_grades ON tbl_namelist.no = tbl_grades.no; 서로 다른 테이블의 레코드의 값과 비교하여 조건에 맞는 레코드를 출력하고 맞는 레코드가 없더라도 JOIN문 오른쪽에 있는 레코드는 모두 출력한다.

6 Full outer join SELECT tbl_namelist.no, name, history, science
FROM tbl_namelist FULL OUTER JOIN tbl_grades ON tbl_namelist.no = tbl_grades.no; 서로 다른 테이블의 레코드의 값과 비교하여 조건에 맞는 레코드를 출력하고 맞는 레코드가 없더라도 JOIN문 양쪽에 있는 레코드는 모두 출력한다.

7 Union All SELECT * FROM tbl_club1 UNION ALL tbl_club2 order by no asc;
중복되는 데이터를 가리지 않고 두 테이블의 모든 값을 조회할때 사용한다. 단, 컬럼명은 순서대로 대응된다.

8 Union SELECT * FROM tbl_club1 UNION tbl_club2 order by no asc;
중복되는 데이터는 한번만 출력하고 두 테이블의 모든 값을 조회할때 사용한다. 단, 컬럼명은 순서대로 대응된다. ( 합집합 )

9 Intersect SELECT * FROM tbl_club1 INTERSECT tbl_club2 order by no asc;
두테이블을 비교하여 같은 값이 있는 레코드만 조회할때 사용한다. 단, 컬럼명은 순서대로 대응된다. ( 교집합 )

10 Except SELECT * FROM tbl_club1 EXCEPT tbl_club2 order by no asc;
두테이블을 비교하여 같은 값이 있는 레코드를 제외하고 조회할때 사용한다. 단, 컬럼명은 순서대로 대응된다. ( 차집합 )

11 Sub Query SELECT * FROM tbl_novel WHERE
price > (select avg(price) from tbl_novel) 평균가격보다 비싼 레코드를 조회하기 위해 서브쿼리를 이용한다. 서브쿼리 → 평균가격을 구한다. 메인쿼리 → 평균가격보다 비싼 레코드를 조회한다.

12 Sub Query SELECT MAX(Point_avg) as Max_avg from
(select AVG(point1+point2)as Point_avg tbl_results group by team) as p_avg Point1 과 Point2 의 점수를 평균값을 구해서 평균점수가 가장 높은 점수를 조회한다. 서브쿼리 → 두 점수를 더하여 평균을 구해서 데이터가 같은 경우 레코드를 그룹 짓는다. 메인쿼리 → 서브쿼리에서 구하여진 평균값 중에 가장 높은값을 조회한다.

13 Sub Query SELECT team, MIN(point2) as lowest FROM tbl_results
group by team having MIN(point2) < (select AVG(point2) from tbl_results); Point2값의 평균값 보다 작은 점수를 가진 레코드를 팀별로 조회한다. 서브쿼리 → point2의 평균값을 구한다. 메인쿼리 → 팀별로 그룹지어 서브테이블과 Having의 조건을 비교하여 조회한다.

14 Group By , Distinct SELECT Point1 FROM tbl_results group by point1
distinct point1 from tbl_results 컬럼의 값을 출력하되 중복되는 데이터는 한번만 표시를 한다. GROUP BY ( 열의 데이터가 같은 경우 그 행을 묶어서 하나로 표시) DISTINCT ( 열의 데이터가 같은 경우 데이터를 제거하여 표시)

15 Order By SELECT * FROM tbl_novel order by price asc;
order by price desc; 선택된 행을 기준으로 오름차순과 내림차순으로 표시.

16 함수

17 LTRIM,RTRIM SELECT pname, '***' + LTRIM(pname) + '***' as Ltrim_Test,
'***' + RTRIM(pname) + '***' as Rtrim_Test FROM tbl_pet;; 문자열의 맨 앞(LTRIM)이나 맨 뒤(RTRIM)의 공백을 제거해준다.

18 COUNT SELECT COUNT(DISTINCT Post_code) AS POST_COUNT FROM
New_Address_DB.dbo.New_Address 해당 컬럼의 data 개수를 출력 해준다. 해당 테이블에는 전국 우편번호 레코드가 존재한다. 우편번호의 개수를 출력하되 DISTINCT 를 사용하여 중복되지 않은 개수를 구한다.

19 CEILING,FLOOR SELECT cost, CEILING(cost) as CEILING_RESULT,
FLOOR(cost) AS FLOOR_RESULT FROM tbl_sum 해당 컬럼의 값보다 큰 수 중에 가장 작은 정수를 구한다.(CEILING) 해당 컬럼의 값보다 작은 수 중에 가장 큰 정수를 구한다.(FLOOR)

20 DAY SELECT date1, DAY(date1) as [DAY] FROM tbl_datelist;
해당 DATETIME 자료형의 레코드 값의 년/월/일 등 필요한 내용만 출력한다.

21 CAST SELECT [time] AS 문자열, CAST([time] as DATETIME) AS 날짜 FROM
tbl_schedule; 데이터 형을 변환 시켜주는 함수이다. 예제에서는 문자열의 값을 DATETIME 값으로 변환하였다.

22 DATEADD, DATEDIFF SELECT date1, date2, DATEADD(m, 6, date1) as Add_M,
DATEDIFF(D, date1,date2) as Diff_D1, DATEDIFF(D, GETDATE(),date2) as Diff_D2 FROM tbl_datelist; DATETIME 타입의 날짜를 합(DATEADD)이나 차(DATEDIFF)로 조작할 수 있다. 예제에서는 DATEADD함수를 이용하여 해당 DATE에 6개월을 더하였다. Date1과 Date2의 날짜의 차를 구하였다. 현재 날짜에서 date2의 날짜의 차를 구하였다.

23 UPPER, LOWER SELECT sname, UPPER(sname) as 대문자, LOWER(sname) as 소문자
FROM tbl_stdname 해당 컬럼의 데이터를 대문자(UPPER),소문자(LOWER)로 변환하여준다.

24 LEN SELECT sname, LEN(sname) as rength from tbl_stdname
해당 컬럼의 데이터의 길이를 구하여준다.

25 RAND SELECT RAND() AS RAND_RESULT1, RAND() AS RAND_RESULT2,
난수를 구하여 주는 함수다. () 안에는 초기화에 사용되는 SEED값을 지정할 수 있다.

26 SUBSTRING SELECT top 10 Post_code FROM New_Address_DB.dbo.New_Address
WHERE SUBSTRING(Post_code,1,3) = '641' 문자열의 필요한 부분의 길이를 지정하여 그 부분만 얻어 낸다. 예제에서는 우편번호의 앞자리만 가져와서 ‘641’인 우편번호를 비교하여 10개의 데이터를 출력하였다.

27 MAX,MIN,AVG,SUM SELECT MAX(price) as Max_price,
AVG(price) as Avg_price, MIN(price) as Min_price, SUM(price) as Sum_price FROM tbl_novel 해당된 레코드의 가장 큰 값(MAX), 가장 작은 값(MIN), 평균값(AVG), 합계(SUM)를 구하여 준다.

28 CONVERT SELECT CONVERT( varchar(20), getdate(), <①> ) 이해 =>

29 CONVERT CAST 함수와 비슷하며, CONVERT(변환될 자료형, 자료, 스타일) 형식으로 사용한다.

30 Transaction

31 Transaction TRANSACTION의 선언을 통하여 관련되어 있는 조작을 하나의 덩어리로 만들어준다.
원하는 조작이 맞다면 COMMIT 아니라면 ROLLBACK 으로 TRANSACTION을 종료 하여준다. 예를 들어 은행 계좌 송금 모듈 같은 경우. 갑자기 컴퓨터의 전원이 꺼지더라도 조작을 하나의 덩어리로 조작한다면 금융사고를 방지할 수 있다. begin transaction delete from tbl_club1 ROLLBACK (되돌리기) COMMIT (확정)

32 프로파일러 사용법(기초)

33 프로파일러 시작 시작 – SQL SERVER 2008 – 성능도구 – SQL SERVER 프로파일러 선택
SQL SERVER MANAGEMENT STUDIO 상단 도구 탭

34 프로파일러 시작 SQL Server 로그인 후 새 추적 클릭. 일반 탭은 디폴트값으로 사용하고 이벤트 선택 탭을 클릭.

35 프로파일러 저장프로시저를 클릭하고 열 필터를 클릭한다.

36 프로파일러 필터 편집 옵션을 통해 필요한 요소만 프로파일러를 통해 볼 수 있다.

37 프로파일러 - 모든 설정을 마치면 추적된 내용을 보여준다. 추적내용을 통해서 개발자는 코딩 하였던 내용들이 매개변수로 잘 넘어
오는지 확인 가능하다.

38 DB 백업 및 복원 방법

39 DB 백업 및 복원 방법 DB 오른쪽 버튼 클릭 → 테스크 → 백업

40 DB 백업 및 복원 방법 1. 백업할 데이터베이스 원본이 정확하게 설정 되어 있는지 확인 한다.
2. 추가버튼을 클릭하여 백업 파일이 저장될 대상을 설정한다.

41 DB 백업 및 복원 방법 데이터베이스 백업이 완료되었다.

42 DB 백업 및 복원 방법 데이터베이스 오른쪽 버튼 클릭 → 데이터베이스 복원 클릭

43 DB 백업 및 복원 방법 복원작업을 수행할 데이터베이스이름을 입력하거나 선택한다. 백업파일의 경로를 설정한다.
복원하고자 하는 데이터베이스를 선택한다.

44 DB 백업 및 복원 방법 기존 데이터 베이스에 덮어 쓰기 옵션을 체크한다. 복원을 실행한다.

45 DB 백업 및 복원 방법 그림과 같이 Test_DB를 백업 받아서 Test_DB2 라는 데이터베이스로 복구 하였다.
이름만 다를 뿐 구조는 동일하다.

46 트리거란 특정 테이블의 데이터의 변경이 일어날 때 자동적 으로 일어나는 저장프로 시저와 비슷한 개념.
특정 테이블의 데이터의 변경이 일어날 때 자동적 으로 일어나는 저장프로 시저와 비슷한 개념. INSERT, UPDATE, DELETE문에 의해 변경 되어질 때 선언 하였던 내용들이 자동으로 수행된다. 트리거를 알기 위해서는 INSERTED, DELETED 테이 블을 알아야 한다. 위의 테이블은 물리적인 공간이 아니라 트리거를 사용하기 위한 가상의 테이블이다.

47 트리거생성순서 트리거의 이름 어느 테이블에 대한 것인지 테이블 이름 지정
INSERT, DELETE,UPDATE중 어느 경우인지 지정 실제 수행될 쿼리문

48 트리거 Tbl_club1 테이블과 Trigger를 학습하기 위해 동일한 구조의

49 트리거 TRIGGER 생성 후 해당되는 삭제 작업을 하면 저런 메시지가 띄워진다.(삭제하는 부분, 삽입하는 부분)
트리거를 생성할때 작성한 INSERT 문이 실행되어서 가상의 DELETED테이블에 있던 내용들이 추가된다.


Download ppt "SQL Study."

Similar presentations


Ads by Google