1. Collation(정렬)설정하는 법

- 데이터베이스나 컬럼별로 정렬설정가능

- 대소문자구분해야함

2. 로컬접속의 의미

- 네트워크를 타고 밖으로 나갔다가 다시 들어오지 않는 네트워크 라이브러리를 무시함.

3. 멀티인스턴스

- 다중 서버의 존재가능하지만 하나의 서버를 사용하는것을 권장

- 스레드(thread)사용(하나의 프로세서 안에서 연결마다 새로운 스레드를 만드는 것이 훨씬 부하를 적게함)

4. SQL Server 2000에서 멀티 인스턴스를 지원하는 이유

- 개발과 테스트를 동시에 이용

- 클러스터링을 사용할 때 절대적 필요

5. 업그레이드

- 6.5업그레이드 : 업그레이드마법사사용

- 7.0업그레이드 : 자동으로 가능

(7.0과 2000버전은 호환성유지)

---------------------------------------------------------------

<2장 복습문제>

문제) 6.5에서 백업 받은 데이터베이스를 2000에서 바로 리스토어 할 수 있는가?

답) X, 업그레이드 마법사를 사용해야함

문제) 서비스를 시작하고 중지할 수 있는 모든 방법

답)서비스관리자,엔터프라이즈관리자,내컴퓨터/관리/서비스/net start/stop명령

문제) collation은 설치 후에 바꿀 수 있는가? 2000에서의 collation은 7.0과 비교해서 어떤점이 어떤 도구를 사용할 수 있는가?

답) 바꿀 수 있다. 7.0은 설치 시에 지정한 collation만을 사용할수 있지만, 2000은 데이터베이스 마다, 테이블 컬럼 마다 바꿀 수 있다.

문제) 설치후 클라이언트에서 서버로 접속이 되지 않는다. 이때 확인할 것들은 어떤 것이 있는가? 어떤도구를 사용할수있는가?

답) 프로토콜,서비이름,서비스시작여부,로컬서버접속여부 등을 확인한다. readpipe,makepipe,ping등을 사용한다.

문제) NT 4.0에 SQL을 설치하려면 사전에 요구되는것은?

답) 서비스팩5이상설치

---------------------------------------------------------------

< 3장 >

1. 온라인 설명서 사용하기

- 설명서를 참조하여 직접 설치해본다(설치과정)

2. 기본적인 SELECT 문

- SELECT 나열한 컬럼목록

- FROM 가져올테이블

- WHERE 가져올 행의 조건

3. 자료형 함수(책에 나왔던 함수만 시험에 나온대요)

INT 정수형

NUMERIC (= DECIMAL)

FLOAT 부동소수점값

DATETIME 8바이트 날짜와 시간

CHAR 8000자이하의 문자

VARCHAR

4. 사용자 정의 자료형

- 한컬럼에 대한 데이터 유형을 쉽게 사용하려할 때 적용

5. SELECT에서 자료형 바꾸기

- as 를 사용하여 컬럼이름을 바꿀수있다.

- CONVERT : 주어진자료형을 원하는 자료형으로 바꿈

- SUBSTRING : 문자자료형에 대한 길이만 줄여줌

6. 날짜에 대한 함수(이건 너무많아요~책참조)

- 함수

GETDATE () 현재날짜와 시간

DATEADD : datepart 부분에 number값을 더한다

DATEDIFF : 두날짜 사이의 datepart값

- 유형

ANSI yy.mm.dd

USA mm/dd/yy or mm-dd-yy

Japan yy/mm/dd

- datepart

7. 시스템함수(책에 나왔던 함수만 시험에 나온대요)

- ISNULL

- PARSENAME

8. NULL

- ANSI설정에서 널값에 대해 비교할 때 = 를 사용해서는 안된다. 반드시 IS NULL 또는 IS NOT NULL을 사용해야 한다.

9. 문자열/LIKE와 패턴 매칭

- _ : 문자가 와야 한다.

- % : 어떤것이라도 상관없다.

- []: []안에 있는 글자들

- [^]: ^다음에 있는 글자는 제외한 다른것이 와야한다.

10. WHERE 절을 사용할 때 고려 할 것

- *를 사용하지 말라.(작업의 용의를 위하여)

- 연산자 앞에는 컬럼만 오도록 하자(WHERE절에 사용하는 컬럼은 무조건 연산자 왼쪽에 두고 더 이상의 가공을 하지 않도록 하는 것이 좋다. 왜냐하면, NOT을 사용하지 말자는 것과 같다)

- 적절한 ()와 띄어쓰기

---------------------------------------------------------------

<3장 복습문제>

문제) 널값을 계산함수들에서 사용될 때 어떻게 처리되는가? 이때 어떤 경고 메시지가 나타나는가?

답) 널값은 계산함수에서 제외. ANSI WARNING이 설정되었을 때는 경고 메시지가 나타난다.

문제) 다음문장은 무슨 문제를 가지고 있는가?

SELECT 'TODAY IS' + GETDATE ()

정답) 자료형이 맞지 않다

SELECT 'TODAY IS' + CONVERT(VARCHAR(30),GETDATE (),102)

문제) float와 real을 사용하여 부동 소수점 데이터를 처리할 때 나타날 수 있는 문제점은 무엇인가?

답) float와 real은 한계 범위를 넘어가면 부정확한 연산을 한다. decimal 이나 numeric을 사용한다.

문제) WHERE절을 사용할 때 고려할 점은?

답)

1) *를 SELECT문에 사용하지 않도록 한다

2)컬럼이 나온 후에는 바로 연산자가 나오도록 한다

3)적절한 띄어쓰기, ()등을 사용한다.

---------------------------------------------------------------

<4장>

1. 정규화3가지

- 제 1정규화

- 제 2정규화

- 제 3정규화

- 비정규화

---------------------------------------------------------------<5장>

1. 연산함수

- AVG : 각각의 평균값

- COUNT : 각각의 개수

- COUNT (*): 선택된 모든행의 개수

- MAX : 최대값

- MIN : 최소값

- SUM : 각각의 합계

2. ISNULL - NULL 값을 다른값으로 바꾸기

3. GROUP BY / HAVING - 직계함수가 나오면 사용

- GROUP BY : 지정된 컬럼에 대한 그룹지정

- HAVING : 그룹함수에 걸어주는 조건(WHERE와 같은 기능이지만, 반드시 GROUP BY에는 HAVING를 사용해야 함)

4. COMPUTE / COMPUTE BY

ex) select type,title_id, price

from titles

order by type

compute avg(price) by type

= type에 의거해 가격의 평균을 구하고, type로 정렬해서 세부내역을 보여달라.

※ compute by 와 order by의 정렬순서가 만드시 같아야 함.

5. ROLLUP 과 CUBE

- GROUP BY 하단에 WITH ROLLUP(컬럼안에 자료를 그룹으로 묶어서 결과처리, 오른쪽에서 왼쪽으로 결과돌출)

- CUBE 는 ROLLUP 처리후 그 바로밑에 컬럼의 기준을 바꾸어 한번더 자료를 보여줌)

6. JOIN (정규화로 나누어진 테이블 혹은 컬럼을 다시 모음)

- INNER JOIN : 교집합과 같은 내용

- CROSS JOIN : 모든 자료를 곱한 결과

- OUTER JOIN : 기준에 맞추어(오른쪽,왼쪽) 조건에 맞는 데이터만 불러옴(기준은 그대로 존재하고 상대TABLE은 조건데이터만 불러옴, 조건에 맞지 않으면 모두 NULL값으로 나옴)

- SELF JOIN : 스스로의 자료를 조건에 맞게 불러오기 위해서 자기를 복사해서 자료를 돌출하되, 조건문에서 WHERE과 AND를 사용하여 중복되는것은 빼고 불러온다(<,>사용)

※ JOIN의 경우에는 ANSI문법을 그대로 사용할것을 권장함. bug의 주요 요인이 될수있음.

7. 하위질의(=부질의=subquery)

- select안에 또다시 select가 존재함. 안쪽 질의의 결과에 의해 수행됨.

- 하위질의(안쪽)질의만 수행해도 결과가 수행된다.

8. 상관하위질의(Correlated subquery)

- 상위질의에서 선택된 행이 안쪽 질의의 WHERE 절에 다시 참조됨.(바깥-안쪽-바깥)

9. IN / EXISTS

- ex) where title_id in(select title_id from sales)

= sales에서 title_id를 보여달라. 그리고 그 결과를 다시 title_id에 넣어서 보여달라.(괄호안의 항목과 일치하는 것이 있어야 참이 됨)

- DISTINCT : 내용이 중복된 것은 삭제

- ex) where exist(select * from titles .....)

= 괄호안에 어떤 것이든 결과만 돌려지만 참이 된다.

10. SELECT INTO

- 현재있는 테이블의 내용 전체나 일부를 선택하여 새로운 테이블을 만들 때 사용.

- 새로만들기 : ex) select * into sales_temp from sales

= sales로부터 sales_temp 테이블만듬.

- 삭제하기 : ex) drop table sales_temp

- ex) select * into #sales from sales(임시테이블)

ex) select * into ##sales from sales(프로그램닫을때까지만의 임시테이블)

11. UNION

- JOIN은 정규화된 테이블을 연결시키기 위한 반면,

UNION은 비정규화된 테이블을 연결시키기 위함.(자료형과 순서등이 맞으면 내용이 맞지않게 그냥 불러옴)

---------------------------------------------------------------

<5장 복습문제>

문제) JOIN을 걸면 데이터는 정렬되는가?

답) 정렬되지 않을수도 있다.정렬하려면 ORDER BY를 사용해야한다.

문제) 하위질의와 상관하위 질의의 차이는 무엇인가?

답) 하위질의-괄호안의 질의를 따로 실행시키면 수행되지만, 성관관계가 있는 하위질의는 그 자체만으로 수행되지 않는다. 상관관계있는 하위질의는 바깥(OUTER)질의의 결과가 안쪽(INNER)질의에 영향을 미치고 다시 그결과를 바깥질의에 돌려주기 때문이다.

문제) 같은 테이블을 둘로 나누었을 때(수평적으로)이를 연결시키는 문장은 무엇인가?

답) UNION

문제) 하위질의와 JOIN으로 모두 원하는 자료 처리 가능한 경우는 어느 것으로 처리하는 것이 일반적으로 나은가?

답) 하위질의보다 JOIN일 일반적으로 더 빠른 처리를 한다.

---------------------------------------------------------------

<6장>

1. 데이터베이스 개체 이름 붙이기

- 형식 :

server_name.datebase_name.owner_name.object_name

(소유자이름,테이블이름)

2. 테이블만들기

- ex) create table tempdb.dbo.emp1(id int,name char(10)

- ex) create table tempdb.dbo.emp1

(id int not null,name char(10) null)

= 널값허용여부지정하기

3. 테이블 수정하기

- 새로운컬럼추가

= 형식) alter table 내테이블

add 새컬럼 varchar(20) null

- 컬럼변경하기

= 형식) alter table 내테이블

alter column 새컬럼 varchar(40) null

- 컬럼삭제하기

= 형식) alter table 내테이블

drop column 새컬럼

- 테이블삭제하기

= 형식) drop table table_name

- 기본키설정하기

ex) create table pk_test (in int primary key)새테이블

ex) create table pk_test (in int not null)

go alter table a add

constraint pk_id primary key (id) 기존테이블

---------------------------------------------------------------

<6장 복습문제>

문제) 이미 데이터가 들어있는 테이블에 널을 허용하지 않는 새로운 컬럼을 추가할 수있는가? 어떻게 해야하나?

답) 할수있다. 디폴트 값을 설정하면 된다.

문제) 한글 테이블명/컬럼명을 사용해도 되는가?

답) 된다.

문제) 설치 할 때 사용한 자료 정렬은 모든 테이블을 만들때 다시는 병경할 수 없다(참,거짓)

답) 거짓, COLLATE을 사용하여 테이블을 만들때 변경할 수 있다.

문제) 데이터베이스 개체의 완전한 이름을 붙이는 규칙은 어떻게 되는가?

답) 서비이름, 데이터베이스이름, 소유자,개체이름이다.

문제) EM에서 만든 테이블의 스크립트는 어떻게 만들어 내는가?

답) EM/해당테이블/모든작업/SQL스크립트 생성으로 할 수 있다.

---------------------------------------------------------------

<7장>

1. INSERT

- 형식) INSERT 테이블

VALUES 컬럼에 들어갈 값

2. IDENTITY 와 DEFAULT

- IDENTITY : 데이터가 순차적으로 자동 들어가지는 값

- TIMESTAMP : 입력된 시간이 서버에 도장처럼 찍혀져있다.

3. INSERT...SELECT : SELECT...INTO

- 이미 존재하는 테이블에서 새로운 테이블을 만들어 데이터를 입력하고자 할때 사용.

4. DELETE

- 형식) DELETE 테이블명

5. 트랜잭션에 대한 기초개념

- 지운값을 다시 되돌릴때 사용

- ROLLBACK :되돌리기(취소)

- COMMIT : 그대로 저장

※ COMMIT 한후에 ROLLBACK는 안된다.

6. TRUNCATE TABLE

- 우리가 보이는 데이터는 똑같고, 대신 주소값만 삭제됨

7. UPDATE

8. 한UPDATE문은 같은 데이터를 두 번이상 UPDATE할 수없다.

---------------------------------------------------------------

<7장 복습문제>

문제) 계속적으로 증가하는 값을 사용하기 위해서는 어떤 속성을 사용하여야 하는가?

답) IDENTITY속성을 사용한다.

문제) 변경시킨 데이터를 되돌릴 수있는가?

답) 트랜잭션을 사용하면 된다. BEGIN TRAN / COMMIT TRAN을 사용.

문제) 이미존재하는 테이블에 다량의 데이터를 입력하려면 어떤 문장을 사용하여야 하는가?

답) INSERT...SELECT를 사용한다.

문제) DELETE 과 TRUNCATE TABLE의 차이점은 무엇인가?

답) DELETE은 WHERE절을 사용할 수 있으며 실제 데이터를 모두 로그에 기록하며 지우는데 비해, TRUN-CATE TABLE은 데이터를 모두 지우며(WHERE)절을 사용할 수 없다), 실제 행들을 하나씩 지우는 것이 아니라 전체를 지우기 때문에 빠르다.

---------------------------------------------------------------

<8장>

1. 데이터 무결성 3가지

영역무결성(entity) : 다른영역은 들어갈 수없다.

실체무결성(domain) : 나는유일하다. 둘이면 하나는 귀신~

참조무결성(referential) : 참조당하는것은 바뀔수없다.

2. 절차적방법/서술적방법

절차적 : 먼저정의하고, 다시 바인드하는 식으로 절차를 거쳐 정의하고 사용한다. 재활용 가능

서술적 : 테이블을 서술할 때 함께 서술됨. 재활용이 불가능하지만 문서화를 하기에 매우 쉽고, 읽기 좋다.

3. 컬럼에 대한 세가지 속성

NOT NULL(NN) 널을 허락하지 않음.NOT NULL, PR KEY

NO Duplicate(ND) 중복된값을 허락하지 않음.UNIQUE, PR KEY

NI Change(NC) 값의 변경을 허락하지 않는다.

(FOREIGN KEY로 참조당할 때)

4. NULL (P240 참조)

5. 고유제약(UNIQUE)

6. IDENTITY(P246 참조)

7. DEFAULT제약과 절차적 방법의 DEFAULT(247)

8. RULE과 CHECK 제약

9. 참조키

10. 제약중지시키기/기존 데이터 검사하지 않기

(Disable/Defer)

11. 무결성 강화 객체들을 사용할 때 고려할 사항

(256그림중요)

---------------------------------------------------------------

<8장 복습문제>

문제) 무결성을 강화시켜주는 구성 요소들을 나열해 보라

답) 자료형, 사용자정의 자료형,스토어드 프로시저,색인

제약(기본키,참조키,UNIQUE, DEFAULT),RULE,DEFAULT,트리거

문제) 기본키는 NN, ND, NC중에서 어떤것들을 지켜주는가?

답) NN, ND

문제) 참조키는 NN, ND, NC중에서 어떤것들을 지켜주는가?

답) NC

문제) 기본키와 유일 제약의 차이는 무엇인가?

답) 널값의 허용여부

문제) 7.0이후 널 값을 사용할 때 왜 주의해야 하는가?

답) ANSI92규정을 지키고자 변경된 것들이 많다.

예를 들어 널 + 문자는 널이다.

문제) 참조 키를 만들면 색인이 만들어 지는가?

답) 색인이 만들어지지 않는다


|

No7Do's Blog is powered by Daum & tistory