MSSQL (8) 썸네일형 리스트형 C# 개발 - ADO.NET으로 DB(MSSQL) 연결하기 / DB프로시저 개념 /Excel 참조하는 방법 Data Provider 데이터 공급자 DB접속 / 읽기/ 조작에 관여 **연결형 중요한 클래스** sqlConnection sqlCommand sqlDataReader -> 데이터 뷰어 Data Set(데이터 셋) 비연결형의 메모리형 데이터 베이스 **비연결형 중요한 클래스** sqlConnection : 공통점 -> DataSet DataTable DataAdapter DataSet에 데이터 저장 상속 계층구조 System.Data.SqlClient.SqlConnection SqlConnection 연결 *생성자를 통해 연결 SqlConnection(string) *생성자 + ConnecrionString SqlConnection() *연결문자열 만들기 -대소문자 구분하지 않음 -MSDN참조 -기본적.. MSSQL 문법 /SUM/GROUP_ID/GROUP BY/ROLLUP/HAVING/ORDER BY/WITH/IDENTITY/DEFAULT/GETDATE/PARTITION BY /ROW_NUMBER/ RANK/DENSE_RANK /PIVOT/UNPIVOT/INNER JOIN/OUTER JOIN/WITH구문 DECLARE 로 변수를 선언한다, 그리고 속성 값을 정해준 뒤 SET 으로 해당 변수에 값을 넣어준다 순위함수 이전에 전체 순위가 아닌 각 지역별로 순위를 주고 싶은 경우를 생각해보자 즉 경기별 경남별 등 지역으로 나눈 후 에 키 큰 순위를 매기는 경우다. 이경우는 PARTITION BY 절을 사용한다 PIVOT / UNPIVOT 연산자 PIVOT연산자는 한열에 포함된 여러 값을 출력하고 이를 여러 열로 변환하여 테이블 반환 식을 회전하고 필요하면 집계까지 수행할 수 있다. 또한 UNPIVORT JSON 데이터 JavaScript Object Notation 은 현대의 웹과 모바일 응용프로그램 등과 데이터를 교환하는 개방현 표준 포맷 속성과 값으로 쌍을 이루어 구성된다. LEFT OUTER JOIN값에.. MSSQL 문법- cursor/trigger 커서의 기본 ■ 커서란? 일반 쿼리문은 WHERE 절을 만족하는 결과 집합을 보여주거나 WHERE 절을 만족하는 데이터에 대한 변경처리를 수행한다. 따라서 열 단위로 수행된다고 할 수 있다. 그런데 행 단위로 일을 수행하고 싶을 때는 어떻게 해야할까? 그 때 사용할 수 있는 것이 '커서'이다. 커서는 특정 조건을 만족하는 행을 추출하고, 행을 대상으로 특정한 처리를 해야 하는 경우에 사용한다. 출처: https://elandda.tistory.com/22 [E.LAND DA] 행의 집합을 다루는데 제공해주는 편리한 기능 SQL Server의 성능을 느리게 하는 요인이 될 수 있으므로 특별한 경우가 아니면 되도록 사용하지 않을 것을 권장함 커서의 작동순서 커서의 선언 커서의 열기 커서에서 데이터 가져오기 .. MSSQL 문법 -인덱스/스키마 바운드 함수/Rollback 인덱스의 개념 인덱스의 장단점 장점 검색은 속도가 무척 빨라질 수 있다. (물론 바드시 그런 것은 아니다.) 그 결과 시스템의 부하가 줄어들어서 결국 시스템 전체의 성능이 향상된다. 단점 인덱스가 데이터베이스 공간을 차지해서 추가적인 공간이 필요해 진다 (대략 데이터 베이스의 10%내외의 공간이 추가로 필요하다) 인덱스를 생성하는데 많은 시간이 소요될 수있다. 데이터 변경 작업이 자주 일어날 경우에는 성능이 많이 나빠질 수 있다. 클러스터형 인덱스 ->영어사전과 비슷한 개념 비클러스터형 인덱스 -> 일반 책의 '찾아보기'와 비슷한개념 특징 클러스터형 인덱스는 테이블당 1개만 생성 비클러스터형 인덱스는 테이블당 여러개 생성 클러스터형 인덱스는 행 데이터를 인덱스를 지정한 열에 멎춰서 자동 정렬한다 제약조건.. MSSQL 문법-뷰/INNER JOIN/LEFT,RIGHT OUTER JOIN/CASE/WHEN,THEN 조인 (INNER JOIN) 데이터의 중복의 최소화를 위해 관계형 데이터 베이스를 만든다. 데이블을 두개로 나누어서 사용하기 때문에 정보가 부족해서 양 태이블을 오가면서 봐야한다. 하지만 조인을 사용하면 한꺼번에 정보를 확인할 수 있다. 일번적인 조인은 다 인어 조인입니다. 무조건 인어조인이라고 쓰세요 조건은 온에다가 적습니다. 조인을 프롬에다가 테이블을 두개 다 적고 웨어절만 적으면된다. 기준에 되는 것은 프롬 테이블 뒤에 조인 테이블을 붙이는거다. 어떤 조인될 조건으로 온에다가 적습니다. 데이터는 풀로 다나와요 여기 서 웨어절로 필터링해서 필요한 정보만 추릴 수 있습니다. 인어 조인을 해도 슬렉트에서한다 그만큼 많이 쓴다. 조인의 개념 두개 이상의 테이블을 서로 묶어서 하나의 결과집합으로 만들어 내는.. MSSQL Query -복습/DECLARE/SELECT INTO /INSERT INTO/SUB쿼리/TRUNCATE TABLE 복습! SELECT문 >> WITH절과 CTE 개념 WITH 절은 CTE 을 표현하기 위한 구문임 비재귀적 CTE 단순한 형태로 복잡한 쿼리문은 단순화 시키는데 적합 구문형식 WITH CTE_ 서브 쿼리 기본 형식 서브 쿼리는 또 같은 작업을 해야하면 가운데 값을 복사해서 다시사용 해야한다. 여러번 복사를 해야한다. 트랜잭션(Transaction) 값을 집어 넣었는데 잘 못 집어 넣어서 빼야되 이럴 떄 트랜잭션을 발생시킴 데이터의 수정 (UPDATE) UPDATE 테이블 이름 SET 열 1 = 값 1 WHERE 절은 필수이다. 없으면 큰일 난다. 사유서 쓴다 TRUNCATE TABLE 데이터이름 - 아이디도 싹다 지운다. DELETE 데이터이름 -- 아이디는 안지워진다! MERGE 구문 퉁처서 한번에 다.. MSSQL Server 문법 -SELECT/AS/SUM/GROUP BY/HAVING/ORDER BY/TOP/COUNT/MAX/MIN/LIKE(N%)/IN * 은 all을 의미하고 f5을 눌러 실행하면 위와 같이 결과 같이 나온다. 인덱스 인덱스란 대부분의 책에 붙어있는 찾아보기 (또는 색인)과 같은 개념 데이커들은 양이 적으면 이 인덱스가 있든지 없든지 큰 문제가 되지 않지만 수천 수억 건에 이르는 뎅이터에서 인덱스 없이 전체 데이터를 찾아본다는 것은 SQL Server 입장에서는 엄청나게 부담스러운 일이 될 것이다. 실제로 실무에서도 이 인덱스를 잘 활용하지 못해서 시스템의 성능이 전체적으로 느린 경우가 아주 흔하다. 실습 목표 : 인덱스의 사용법을 익힌다. 프라이머리 키를 지정하면 인덱스가 생성된다. 쿼리에서 예상계획 실행 데이터 베이스를 속도를 줄이는게 가능하다. 데이터베이스 개체의 활용>> 뷰 *뷰(VIEW)란 가상의 테이블 -보여주기 위한 테이블.. MSSQL - 저장프로시저 /트리거 생성 --저장프로시저 --매번 회원 테이블 당탕이의 정보와 제품 테이블의 냉장고 정보를 동시에 조회한독 가정하자. SELECT * FROM memberTbl WHERE memberName ='당탕이' SELECT * FROM productTbl WHERE productName ='냉장고' --저장프로시저 CREATE PROCEDURE myProc AS SELECT * FROM memberTbl WHERE memberName='당탕이' SELECT * FROM productTbl WHERE productName ='냉장고' GO --저장프로시저 실행 EXECUTE myProc --저장프로시저 삭제 DROP PROCEDURE myProc --트리거 : 트리거는 테이블에 부착되어 테이블에 INSERT나 UPDATE.. 이전 1 다음