Database
-
DB INSERT {INTO} table_name {(insert_column_list)}SELECT insert_values_listF WHERE search_conditionROM table_name insert selectDatabase 2008. 11. 12. 20:22
- 쿼리교도소 탈출하기 INSERT {INTO} table_name {(insert_column_list)} SELECT insert_values_list FROM table_name WHERE search_condition 대량의 데이터를 입력하는데 있어서 아주 유용한 방법입니다. 많은 분들이 액셀이나 액세스에서 데이터를 가지고 와서 SQL Server에 데이터를 부으려고 하는 경우 있습니다. 그럴 때, 액셀이나 액세스의 데이터를 SQL Server의 DTS를 통해 데이터를 가지고 오고 집어넣어야 할 테이블에 세 번째 문장과 같은 방법을 이용해서 한번에 입력이 가능합니다. 그리고, SQL문 중에서 OLTP로 이루어지는 실시간 처리도 많이 있지만, 경우에 따라서 한번에 모든 데이터를 처리하는 배치작업도 ..
-
DB 정리 쿼리교도소탈출 집계 함수Database/MS-SQL 2008. 11. 12. 20:14
집계 함수 MIN MAX SUM AVG 집계 함수를 사용헸을때 NULL 값이 NULL이면 값이 리턴됩니다 NULL 값은 예기치 않은 오류를 발생시킬 수 있으므로 MAX(score)했을떄 우선 숫자형이라는걸 알고 있다면 ISNULL(MAX(score) , 0) 으로 처리하게를 해서 널값이 나오는것을 예방하는것이좋다 COUNT 는 널값을 반환하지 않는다 데이터가 없을때는 0을 돌려준다 두번째로 생각해볼 문제는 GROUP BY없이 집계 함수를 사용한다면 어떻게 될까요? 입니다. 그렇다면 조건에 맞는 모든 데이터들 중에서 집계된 내용을 돌려준다는 겁니다. WHERE절로 걸러진 모든 데이터를 대상으로 MIN, MAX, SUM, AVG, COUNT등을 구한다는 겁니다.
-
DB CASCASE 옵션 적용방법 캐스캐이드Database/MS-SQL 2008. 11. 7. 00:28
CASCASE 옵션 UPDATE CASCADE : 부모 테이블의 데이터를 수정할 떄 이를 참조하고 있는 자식 테이블의 데이터도 함께 수정한다 DELETE CASCASE : 부모테이블의 데이터를 삭제할 때 이를 참조하고 있는 자식 테이블의 데이터도 함께 삭제한다 CASCADE 상품 판매 새우깡 쌔우깡 . . 새우깡 . . 새우깡이 단종되었을때 상품 새우깡을 지우면 CASCADE 관련옵션으로 판매된 새우깡이 지워진다 판매가 누락되면 구속되겠지 ㅋㅋ 회사에서 100명을 뽑는데 1000명이 지원했다 그리고 100명을 뽑았다 그리고 나머지 900명의 데이터를 지워야한다 이때 CASCADE 쓰면유용함 관계형성으로된 데이블에 유용하다 업무에따라서 정확하게 사용한다 ON DELETE CASCADE 또는 ON DELET..
-
데이터베이스 모델링 ,관계형 데이터베이스 관리 시스템Database 2008. 11. 6. 23:58
데이터베이스에 대한이해 데이터베이스란 여러 응용시스템을 통해서 액세스가 가능한 공유된 형태의 통합된 데이터의 집합이라고 정의한다 데이터베이스 특징 DATA 독립성유지 DATA 무결성 유지 DATA 보안성 DATA불일치배제 DATA 중복성 감소 , DATA의 공유 데이터베이스 관리 시스템에 대한 이해 파일 시스템(File System) 파일 시스템은 파일 단위로 업무와 관련한 데이터를 저장 독립적인 어플리케이션과 상호연동되어있어야한다 단점 : 데이터 중복성과 데이터 종속성 데이터베이스 관리 시스템 (DBMS) 파일시스템의 단점을 극복하고 데이터를 효율적으로 관리 사용자 여플리케이션과 데이터베이스간의 인터페이스 역할을 하는 논리적인 프로그램이다 계층형 DBMS 네트웍 DBMS 관계형 DBMS -최소한의 의미..
-
-
-
DB 서브쿼리 서브쿼리 서브쿼리 중요 한방쿼리Database 2008. 10. 31. 10:42
DB 서브쿼리 서브쿼리 서브쿼리 중요 (여러번날릴 쿼리를 한방에 할수있단다) 한방쿼리 서브쿼리를 안쓰면 쿼리를 나누어날려야한다 USE NorthWind SELECT categoryid, categoryname -- 1 FROM categories WHERE categoryname = 'Dairy products' SELECT *--2 FROM products WHERE categoryid = SELECT *--3 (서브쿼리단점 속도가 느리다 SELCET 가 2번나와서) FROM products WHERE categoryid =( SELECT categoryid FROM categories WHERE categoryname = 'Dairy products' -- products의 내용만 나온다 ) -- 조..
-
DB UNIO 합집합 유니온Database 2008. 10. 31. 09:30
USE NorthWind SELECT productname FROM products UNION-- 합집합 SELECT categoryname FROM categories SELECT categoryid FROM categories UNION ALL -- 중복된것까지 다 나오게 하기 SELECT categoryid FROM products SELECT categoryid , categoryname FROM categories WHERE 절도 쓸수있다 UNION SELECT categoryid, productname FROM products WHERE 절도 쓸수있다
-
DB 인덱스Database 2008. 10. 30. 12:11
koy.tistory.com 출처 인덱스 2008/10/08 09:51 in MS-SQL 2005 1. 인덱스 종류 클러스터형(clustered index) - 순차적으로 지정, 테이블당 1개만 생성, Primary key와unique 에만 생성가능 비클러스터형(non-clustered index) - 테이블당 여러개 생성 2. 제약조건에 따른 인덱스 Primary key설정시 자동으로 클러스터형 인덱스가 설정된다. uniqeu설정시 자동으로 비클러스터형 인덱스가 설정된다. 인덱스는 Primary key 에 종속적이다. 테이블생성시 pk를 설정하지 않으면 인덱스가 설정되지 않는다. pk를 삭제하면 인덱스도 함께 삭제된다.(무슨관계?) 3. 인덱스의 내부동작 1) B-tree(balanced tree) :..
-
DB 조인(JOIN)의 기초 순위만드는 쿼리 셀프조인 (Self JOIN)Database/MS-SQL 2008. 10. 29. 12:30
use NorthWind SELECT p1.unitprice, p1.productname, COUNT(*) AS ranking -- 순위 만드는 쿼리 FROM products p1, products p2 WHERE p1.categoryid = p2.categoryid AND p1.categoryid = 4 AND p1.unitprice < p2.unitprice GROUP BY p1.unitprice , p1.productname ORDER BY ranking ASC
-
DB 관련 쿼리 INSERT INTO SELECT 문 셀렉트값을 다른 테이블 넣을때Database/MS-SQL 2008. 10. 29. 10:34
셀렉트한값을 다른테이블에 넣을때~!! use NorthWind INSERT INTO tblTEST SELECT categoryid , SUM(unitprice) [ 합계], COUNT(categoryid) [카테고리별 갯수], AVG(unitprice) [평균 값] FROM products WHERE categoryid IN (2,3) GROUP BY categoryid SELECT * FROM tbltest
-
-
-
-
-
DB 데이터를 안전하게 보관하자(백업, 복원 스냅숏)Database/MS-SQL 2008. 10. 22. 11:29
데이터베이스 백업의 종류 (1) 전체 백업(Full Backup) 개요 DB 개체, 시스템 테이블, 데이터 등 DB전체를 백업하는 것 전체복구,대량로그복구,단순복구 모델 모두에서 가능함 전체 백업을 받아야 하는 경우 처음 데이터베이스를 생성했을 때 로그를 강제로 비웠을 때 데이터베이스에 변경이 생겼을 때 (Alter Database 구문 실행 후) 차등백업과 로그백업을 하기 이전에 꼭 한번은 먼저 전체 백업이 수행 전체백업 구문 BACKUP DATABASE 데이터베이스이름 TO 백업할 파일 또는 장치 데이터베이스 백업의 종류 (2) 전체 백업 3회시의 개념도 백업 방법 데이터베이스 백업 복원 use master-- 빽업백업 BACKUP DATABASE Trigger_Exam To DISK = 'c:\Tr..
-
-
DB 보안과 스키마 (1)Database/MS-SQL 2008. 10. 22. 09:50
인증모드 개요 SQL Server에 접속할 때 사용하는 인증 Windows 인증모드와 혼합모드가 있음. Windows 인증모드 SQL Server에 접속하기 위해서 별도의 사용자 및 비밀 번호가 필요 없고, Windows에 접속한 사용자로 데이터베이스 연결해서 사용하는 것 혼합 인증모드 Windows 인증모드를 계속 사용할 수 있으면서도, 동시에 별도의 허락된 계정으로 SQL Server에 접속할 수 있는 모드 외부에서 접속하기에는 좀더 편리하지만, 보안에는 상대적으로 취약함 최상위 관리자로 ‘sa’가 있음 로그인(Login) 개념 SQL Server에 접속하기 위해서는 ‘로그인’ 계정이 필요함 SQL Server에 접속할 수 있다고 데이터베이스에 접근할 수 있는 것은 아님 기본적으로 존재하는 로그인 (..
-
DB 엑세스(Access)에서 MSSQL로 옮기는 방법 + 풀텍스트서치 (Full Text Search) (2)Database/MS-SQL 2008. 10. 21. 12:29
추가 수정 file USE FTS; USE test; GO EXEC sp_fulltext_database 'enable';-- 풀텍스트 서치하겠다 풀텍스트서치할때 반드시 실행 GO EXEC sp_fulltext_database 'disable';-- 풀텍스트 서치 안하겠다 GO --TEST 조회 select top 10 idx, title, writeday, content from tMSSQLQnA --전체 건수 select count(idx) from tMSSQLQnA --title 컬럼의 용량 select sum(datalength(title)) from tMSSQLQnA --대략 1M --content 컬럼의 용량 select sum(datalength(content)) from tMSSQLQnA ..
-
DB 전체 텍스트 검색 서비스Database/MS-SQL 2008. 10. 21. 10:26
전체 텍스트 검색 서비스(Full Text Search Service)는 SQL Server 외부기능임 긴 문장으로 구성된 열의 내용을 검색할 때 외부 인덱스를 사용해서 빠른 시간에 검색하는 것 전체 텍스트 검색 서비스가 작동중이여야한다 SQL2005에서 윈도우 관리도구 - 서비스 에서 보기 개요 신문기사와 같이 , 텍스트로 이루어진 문자열 데이터의 내용을 가지고 생성한 인덱스를 말함 SQL Server의 인덱스와 차이점 전체 텍스트 검색 엔진(MSFTESQL)이 생성하는 특수 토큰 기반 기능의 인덱스 외부 파일로 저장됨 테이블 당 하나만 생성 char, varchar, nvarchar, text, ntext 등의 열에만 생성이 가능 전체 텍스트 인덱스 생성 구문 CREATE FULLTEXT INDEX ..
-
-
DB XML 데이터 형식Database/MS-SQL 2008. 10. 20. 12:33
구문 SELECT * FROM userTbl FOR XML RAW, ELEMENTS, XMLSCHEMA 컨트롤 + T 를 누르고 F5번 누르면 ~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! TEXT 형식으로 나온다 컨트롤 + D 를 누르고 F5번 누르면 ~!!!!!!!!!!! MSSQL로 볼수있다 SELECT * FROM userTbl FOR XML RAW, ELEMENTS, XMLSCHEMA SELECT * FROM userTbl FOR XML RAW, ELEMENTS (가장효율적으로 보는것) SELECT * FROM userTbl FOR XML RAW //////////////////////////////////////////////////////////////////// //////..
-
DB 테이블변경 트리거 롭 테이블고 ARTER 테이블 막기 트리거Database/MS-SQL 2008. 10. 20. 11:52
USE master CREATE DATABASE sqlDB GO USE sqlDB CREATE TABLE userTbl -- 사용자테이블 ( userID nchar(8) NOT NULL PRIMARY KEY, -- 사용자아이디 name nvarchar(10) NOT NULL, -- 이름 birthYear int NOT NULL, -- 출생년도 addr nchar(4) NOT NULL, -- 지역(경기,서울,경남,전북식으로2글자만입력) mobile1nchar(3), -- 휴대폰의국번(011, 016, 017, 018, 019, 010 등) mobile2 nchar(8), -- 휴대폰의나머지전화번호(하이픈제외) height smallint -- 신장 ) GO CREATE TABLE buyTbl -- 사용자구..
-
DB 트리거 문장 삽입하고 롤백 하기(저장안되게)Database/MS-SQL 2008. 10. 20. 11:35
SELECT * FROM userTbl; TRUNCATE TABLE userTbl;-- 다지우자~!! SELECT * FROM backup_userTbl; CREATE TRIGGER trg_insertUserTbl-- 데이터 안들어가는 티리거 ON userTbl AFTER INSERT -- 삽입 후에 작동하도록 지정-- 여기서 데이터가 들어가면 롤빽시키게 만들었다 AS RAISERROR(N'데이터의 입력을 시도했습니다.',10,1) RAISERROR(N'귀하의 정보가 서버에 기록되었습니다.',10,1) RAISERROR(N'그리고, 입력한 데이터는 적용되지 않았습니다.',10,1) ROLLBACK TRAN; INSERT INTO userTbl VALUES(N'ABC', N'에비씨', 1977, N'서울'..
-
DB 트리거 백업트리고 사용법 INSERT INTO SELECT 설명Database/MS-SQL 2008. 10. 20. 11:34
CREATE TRIGGER trg_BackupUserTbl -- 트리거 이름 ON userTbl -- 트리거를 부착할 테이블 AFTER UPDATE,DELETE -- 삭제,수정 후에 작동하도록 지정 AS DECLARE @modType NCHAR(2) -- 변경 타입 IF (COLUMNS_UPDATED() > 0) -- 업데이트 되었다면 BEGIN SET @modType = '수정' END ELSE -- 삭제되었다면, BEGIN SET @modType = '삭제' END -- delete 테이블의 내용(변경전의 내용)을 백업테이블에 삽입 INSERT INTO backup_userTbl SELECT userID, name, birthYear, addr, mobile1, mobile2,-- 데이터 height..