본문 바로가기

분류 전체보기134

[MS-SQL] UNION 연산자 집합 이론에서 두 집합(A와 B라고 가정) 간의 UNION은 A와 B에 있는 모든 요소들을 포함하는 집합니다. 다시 말해, 입력 집합들 중 어디라도 속해있는 요소들은 결과 집합에 속한다는 것이다. T-SQL에서 UNION 연산자는 두 입력 쿼리의 결과를 하나로 결합한다. 행이 어떤 집합에 있는지는 상관없이 UNION 연산자의 결과에는 보여지게 된다. T-SQL은 두가지 형태의 UNION 연산자를 지원하는데, UNION ALL과 UNION(암시적으로 DISTINCT 처리)이 이에 해당한다.UNION ALL 멀티셋 연산자UNION ALL 멀티넷 연산자는 두 입력 쿼리로부터 만들어지는 입력 멀티넷에 잇는 어떠한 행이라도 모두 결과에 포함시켜서 반환한다. 이때 행을 비교하거나 중복을 제거하는 등의 작업을 수행하.. 2016. 2. 16.
[자료구조]단순 연결 리스트(Simple Linked List) 연결 리스트는 노드(node)와 링크(link)로 구성이 된다.노드 : 실제의 정보를 담고 있는 하나의 단위링크 : 인접 노드의 위치를 저장하고 있어 연결 리스트의 순서를 유지할 수 있게 하는 연결고리연결 리스트는 정적인 자료 구조인 배열과는 달리 동적인 자료 구조이다. 연결 리스트는 필요하면 할당하고, 필요없으면 해제하는 식의 메모리 관리가 가능하기 때문에 배열처럼 여분의 공간을 마련할 필요가 없어 메모리를 절약할 수 있는 이점이 있다. 연결 리스트는 동적으로 메모리를 사용하기 때문에 프로그램의 실행중에도 얼마든지 규모를 크게 하든지, 작게 할 수 있다. 또 연결 리스트가 배열과 다른점은 배열은 메모리의 연속된 공간을 차지하는데 비해서 연결 리스트는 동적으로 수시로 할당 해제되기 때문에 메모리의 연속된.. 2016. 2. 15.
[MS-SQL]공통 테이블 식(CTE) 공통 테이블 식(CTEs)은 파생 테이블과 비슷한 또 다른 형태의 기본 테이블 표현ㅅ기이다. 파생 테이블과 유사하지만, 파생 테이블보다는 더 많은 장점을 제공한다. CTE는 WITH 절을 이용해서 정의되며 다음과 같은 일반적인 형태를 따른다. 12345WITH [()]AS ( );cs참고 : T-SQL에서 WITH 절은 다양한 방식으로 사용된다. 따라서 WITH 절이 CTE를 정의하기 위해서 사용된다고 명확하게 명시할 필요가 있다. 즉 WITH 절이 CTE를 정의할 때 사용되는 경우에는, 동일한 배치 내에서 WITH 절앞에 또는 다른 구문이 있다면 반드시 세미콜론을 표기해줘야 한다. 겉으로 보기에는 파생 테이블과 CTE 간에는 차이가 거의 없어 보일 수도 있다. 그러나 파생테이블과 비교했을 때, CTE를.. 2016. 2. 12.
[MS-SQL] DELETE JOIN T-SQL에서는 조인을 사용하는 비표준 방식의 DELETE 구문을 제공한다. 조인은 술어(ON 절에 있는)를 기반으로 필터하기 때문에, 조인 자체만으로도 필터링하는 기능을 제공하고 있따. 또한, 조인을 이용하면 참조하는 다른 테이블의 관련된 행의 특성들을 WHERE 절에서 사용할 수 있도록 해준다. 이는 다른 테이블에 있는 연관된 행의 특성들을 이용해서 현재 테이블의 행들을 필터링한 다음, 필터링된 핸들을 삭제할 수 있다는 것을 말한다. 아래 쿼리는 DELETE 쿼리의 JOIN을 사용한 예이다. 1234Delete From OFrom dbo.Orders AS OInner Join dbo.Customers As C On O.custid = C.custidWhere C.country = N'USA';cs조인.. 2016. 2. 4.
[MS-SQL]데이터 삭제 DELETE vs TRUNCATE DELETEDELETE 구문은 술어를 기반으로 테이블에 있는 데이터를 지울 때 사용되는 표준 구문이다. 표준 형태의 구문에는 단 두 개의 절 만 가질 수 있다. 하나는 지우고자 하는 대상 테이블을 지정하는 FROM 절이며, 다른 하나는 술어 부분을 지정하는 WHERE 절이다. 술어가 TRUE 평가되는 행들의 하위 집합만 삭제된다. 예를 들어, 아래 나오는 쿼리는 dbo.Orders 테이블에 있는 데이터 중 2007년도 이전에 발생된 주문 건들을 삭제하게 된다. 12Delete From dbo.OrdersWhere Year(dbo.Orders.orderdate) 2016. 2. 3.
[MS-SQL]SELECT INTO 구문 SELECT INTO 구문은 대상 테이블을 생성한 후, 쿼리의 결과 집합을 생성한 테이블에 저장하는 비표준 T-SQL 구문이다. "비표준"이란, 이 구문이 ISO 및 ANSI SQL 표준이 아니라는 것을 말한다.이 구문을 이용해서 이미 존재하는 테이블에 데이터를 넣을 수는 없다. 문법은 간단히 결과 집합을 만드는 쿼리의 SELECT 절에 있는 FROM절 앞에 INTO 만 추가하면 된다. 12345IF OBJECT_ID('dbo.Orders', 'U') Is Not Null Drop Table dbo.Orders; Select SO.orderid, SO.orderdate, SO.empid, SO.custidInto dbo.Orders From Sales.Orders SOColored by Color Scr.. 2016. 2. 3.
[MS-SQL]Identity 속성 SQL Server는 자동으로 값을 생성하는 방법으로 두 가지 방법을 제공하고 있다. 하나는 identity 컬럼 속성을 이용하는 것이며, 다른 하나는 시쿼스 개체를 이용하는 것이다. 오늘은 identity에 대해서 알아보는 시간을 갖도록 하자 identity 속성은 아주 오래 전의 SQL Server 버전부터 지원이 되었다. 이 기능은 일부 시나리오서는 잘 동작하지만, 많은 결점을 가지고 있다는 것을 알아둘 필요가 있다. 글을 쓰면서 하나하나 설명하도록 하겠다. identity는 SQL Server에서는 숫자 형식의 컬럼(단, 소수점이 아닌)에 대해서 identity라는 속성을 정의할 수 있다. 이 속성은 커럼의 정의 부분에서 지정된 초기 값과 증가치(단계 값)를 이용해서 INSERT가 실행될 때마다 .. 2016. 2. 2.
[c언어]값에 의한 호출 대 참조에 의한 호출 (call by value vs call by reference) 함수에 인자를 넘기는 방식에는 두가지가 있다 .첫째, 값에 의한 호출(call by value)둘째, 참조에 의한 호출(call by reference)두가지의 가장 큰 차이점이라고 하면 함수를 실행하고 나서 인자가 영향을 받느냐 아니면 받지 않는냐에 있다. 예제를 보고 설명을 하는 것이 좋을 것같다. 1234567891011121314151617181920212223242526272829303132#include void SwapValue(int a, int b) // 1{ int temp = 0; temp = a; a = b; b = temp; } void SwapReference(int* a, int* b) // 2{ int temp = 0; temp = *a; *a = *b; *b = temp;}.. 2016. 1. 26.
[c언어] void 포인터 포인터란 주소(address)를 내용으로 가지는 변수(variable)이다. 포인터는 크게 두가지 요소로 구성되어 있다. 첫째, 내용으로 가지는 주소둘째, 가리키는 주소에 저장되어 있는 데이터의 형(data type)이다. 이 두가지만 잘 생각하고 응용하면 조금 복잡할 찌라도 해결할 실마리를 줄것이다. void 포인터란 포인터의 두 가지 요소중 둘재 요소인 가리키는 데이터형이 정해지지 않은 포인터를 의미한다. void 포인터의 정의는 가리키는 데이터형이 없으므로 데이형 자리에 void라는 예약어를 기술하면 된다. 1void *vptr;csvoid 포인터는 주소만 저장하는 포인터인데 그로 인해서 포인터 연상자를 사용할 때 주의해야 할 점이 있다. 첫째, 포인터가 가리키는 곳의 내용을 읽어내는 역참조(der.. 2016. 1. 26.
윈도우 10 최근에 사용한 파일(폴더) 숨기기 윈도우 10으로 들어오면서 Windows 탐색기를 열면 이상한 녀석이 기본으로 보이기 시작했다. 바로 아래에 있는 녀석이다. 이녀석이 회사PC에서 개인용 업무에 사용하는 PC에서는 아주 좋은 기능이다. 그런데 이게 가족이 함께 사용하는 PC에서는 가족들 간의 개인의 사생활을 침해 할 수 있는 부분이기도하다. (돌려서 이야기 했는데 우동 같은 것을 이야기 하는 것이다 .) 그래서 이걸 숨기는 방법을 알려주도록 하겠다. 방법은 아주 간단하다. 1. 우선 파일 탐색기를 연다. 2. 파일 탐색이의 왼편에 보이는 "바로가기"를 왼쪽마우스를 통해 클릭한다. 3. "옵션"을 클릭하시면 됩니다. 4. 아래와 같은 "폴더 옵션"이 나오게 됩니다. 5. 폴터 옵션에서 개인 정보 보호 Group에 있는 빠른 실행에 최근에 .. 2016. 1. 21.
[javascript] 객체 리터럴 자바스크립트의 리터럴 표기법 패턴을 사용하면 좀더 정화하고 표현력이 풍부하면서도 에러율은 낮은 방식으로 객체를 정의할 수 있다. 자바스크립트에서 '객체'라고 하면 단순히 이름-값 싸의 해시 테이블을 생각하면 된다. 다른 언어에서 '연관 배열'이라 불리는 것과 유사하다. 자바스크립트에서 생성한 객체(다시 말해 사용자가 정의한 네이티브 객체)는 언제라도 변경할 수 있으며, 내장 네이티브 객체의 프로퍼티들도 대부분 변경이 가능하다. 빈 객체를 정의해놓고 기능을 추가해나갈 수도 있다. 객체 리터럴 표기법은 이처럼 필요에 따라 객체를 생성할 때 이상적이다. 1234567891011 // 빈 객체에서 시작한다. var dog = {}; // 프로퍼티 하나를 추가한다. dog.name = "Test"; // 이번에는.. 2016. 1. 21.
[javascript] for문 사용법(최적화) javascript에도 기타 다른 언어들과 같이 for문이 존제 한다. 그런데 우리가 아무 생각없이(?) 하고 있이면서도 성능상에는 영향을 줄 수 있는(당연히 반복문이기 때문에 100만 루프이상을 이야기 하는 것이다.) 습관이 있다. 기본적으로 자바스크립트의 for문 문법은 아래와 같다. 구문for ([initialization]; [test]; [increment]) statement initialization : 선택 사항입니다. 이 식은 루프가 실행되기 전에 한 번만 실행됩니다. test : 선택 사항입니다. 부울 식입니다. test가 true이면 statement가 실행됩니다. test가 false이면 루프가 종료됩니다. increment : 선택 사항입니다. 식입니다. 증분식은 모든 루프의 끝에.. 2016. 1. 13.
OFFSET-FETCH 사용법 웹에서 프로그래밍을 하다보면 게시판처럼 페이징을 해야 하는 경우가 있다. 여기서 이야기 하는 페이징은 모든 데이터가 다 보이는 것이 아니라 정해진 크기만큼의 데이터 양을 순서대로 그룹을 형성하며 보여지는 형태를 이야기 한다. 정해진 크기의 데이터 만큼만 순서대로 보여줘야 하기 때문에 데이터 전체를 일렬로 나열을 해야 한다. 나열되는 순서는 데이터가 들어온 순서도 될 수 있고 데이터가 저장된 순서라던지 다양한 순서가 있을 것이다. 이렇게 데이터를 순서를 정한뒤 이 순서들중에서 필요한 데이터의 몇번째 그룹을 가져 올껀지 BETWEEN AND를 사용하여 가져오는게 일반적이다. 잘 이해가 안간다면 여기서 간단하게 쿼리를 만들어 보겠다. 123456789101112131415161718192021222324252.. 2015. 4. 29.
[ASP.NET]TextBox의 AutoPostBack과 TextChanged 속성에 대해.... AutoPostBack : 컨트롤의 Text 속성이 변경되었을 경우, 자동으로 폼을 서버로 전송할 것인지의 여부를 지정하는 속성값 = (TRUE/FALSE)TextChnaged : 컨트롤의 Text 속성이 변경되었을 경우 발생하는 이벤트 AutoPostBack 속성은 기본적으로 FALSE로 설정되어 있지만, 그 값을 TRUE로 변경할 수 있다. 만약 TRUE로 변경했을 경우 사용자가 텍스트의 값을 변경하는 즉시, 자동으로 폼은 서브밋 된다. 그리고, 서버에서는 기본적인 이벤트 처리와 함께 TextChanged라는 이벤트 함수도 처리된다. AutoPostBack 속성이 FALSE로 설정되어 있는 상태에서는 TextBox 컨트롤의 Text 값이 바뀌어도 그 즉시 폼이 서버로 게시되지는 않으며, 이것이 우리가.. 2015. 1. 9.
조엘 온 소프트웨어 유쾌한 오프라인 블로그 서평 이 책은 번역이 참 마음에 든다. 이렇게 할 수 있었던 것은 역자의 노력이 었을 것이다. 중간 중간 마음에 드는 번역들이 많이 있었고 덕분에 좋은 내용을 잘 번역된 한글로 읽을 수 있어 대단히 유용했던 책이다. 번역서는 추천하지 않는데 원서는 추천하는 경우가 프로그래밍 서적에는 종종 있는데 이 책은 어느 누구에게나 번역서로 추천하고 싶은 책이다. 한번 쯤 읽어 보면 내용에 놀라지만 번역에 한번 더 놀랄 것이다. 간단하게 여기에 책 앞 부분을 적어 둘 것이다. 보고 흥미가 있다면 사서 보길 바란다. [들어가며]결코 당신이 스스로 관리자 자리를 자청하지는 않았을 것입니다. 제가 아는 대다수 소프트웨어 개발자처럼 그저 조용히 않아서 코드를 만지기만 하는 편이 훨씬 더 행복했을 것입니다. 하지만 전임 팀장.. 2014. 7. 23.