분류 전체보기205 [MSSQL] 서브쿼리(SubQuery)란 무엇일까? / 특징 / 종류 / 예제 서브쿼리(SUBQUERY)란? 이번 글에서는 서브쿼리에 대해서 알아볼 것이다. 서브쿼리의 정의부터 알아보면, SELECT 쿼리문 안에 포함 되어있는 또 하나의 별도 SELECT 쿼리문을 말한다. 서브쿼리(SubQuery) 특징 여러 번의 Select문을 수행하여 얻을 수 있는 결과를 서브쿼리를 이용하여 하나의 쿼리로 결과를 얻을 수 있다. 메인쿼리가 서브쿼리를 포함하는 종속적인 관계가 있고 메인쿼리보다 먼저 실행된다. 사용할 때는 () 괄호를 잘 묶어줘야 한다. 서브쿼리 안에서 Order by 절은 사용할 수 없다. SELECT, FROM, WHERE, HAVING, ORDER BY, INSERT VALUES절, UPDATE SET절에서 사용할 수 있다. 서브쿼리(SubQuery) 종류 단일 행 서브쿼리.. Database/RDBMS 2021. 11. 28. [MSSQL] INSERT문의 기본적인 3가지 사용법 1. INSERT INTO ~ VALUES 방식 (기본구조) INSERT INTO [테이블명] (COL1,COL2,COL3..) VALUES (VAL1,VAL2,VAL3..) /* 원하는 컬럼에 원하는 값을 넣을 수 있는 기본 INSERT 구조 */ 2. INSERT INTO ~ SELECT 방식 (다른테이블에서 조건문을 사용하여 원하는 행만 넣고싶을 때 사용한다.) ** 주의사항 ** A 테이블의 컬럼에 맞게 B테이블 컬럼의 개수를 맞춰줘야한다. 예를 들어 A테이블이 A.COL1,A.COL2 처럼 두개가 있다면 B테이블도 조회할 때 B.COL1,B.COL2 이런식으로 맞추어야한다. INSERT INTO [테이블 A] SELECT COL1,COL2.. FROM [원하는 값이 들어있는 테이블 B] WHER.. Database/RDBMS 2021. 11. 26. [MSSQL] DBCC CHECKIDENT란 무엇일까? DBCC CHECKIDENT 명령어에 대한 정리이다. 해당 명령어는 identity(자동증가열)을 초기화시키는데 목적이 있다. 사용 방법은 아래의 예제와 같다. -- 입력한 테이블에서의 IDENTITY 값 확인 DBCC CHECKIDENT('[테이블명]', NORESEED) -- IDENTITY 값 변경 (IDENTITY값이 500으로 변경된다.) DBCC CHECKIDENT('[테이블명]', RESEED, 500) -- IDENTITY 값 초기화 (IDENTITY값을 0으로 초기화 시킨다.) DBCC CHECKIDENT('[테이블명]', RESEED, 0) 위의 예제처럼 identity의 값을 확인 및 수정할 수 있다. 보통 언제 쓰이냐면 -- Truncate로 테이블을 삭제하면 Identity값이 알.. Database/RDBMS 2021. 11. 23. [MSSQL] TRUNCATE vs DELETE 차이점 실무에서도 두 개의 차이를 대강 알고 사용했었지만 요번 SQLD를 준비하면서 위의 내용으로 문제를 하두 풀다보니 이제 두개의 차이점을 명확히 알겠다. 이렇게 기억하고 있을 때 메모해놓기 위해 글을 작성한다. 1. TRUNCATE 1-1. Truncate 특징 1) DDL 명령어이다. 2) 모든 레코드(행)를 삭제해버리는 특징이 있다. 3) 조건절 사용을 못한다 (where절 사용 불가) 4) IDENTITY를 초기화 할 수 있다. 5) 테이블 구조, 열, 제약조건, 인덱스는 그대로 남는다. 6) 트랜잭션 로그 공간을 덜 사용한다. > delete문은 행을 한번에 하나씩 제거하고 삭제된 각 행에 대해 트랜잭션 로그를 기록하게 된다. 그에 반해 truncate는 해당 테이블의 데이터 저장소의 페이지를 취소하.. Database/RDBMS 2021. 11. 23. [MSSQL] 프로시저 전체 삭제 쿼리 프로시저를 전체 삭제할 때 사용하는 쿼리이다. 보통 기존 sp에서 업데이트사항이 있어서 한번 갈아엎고 싶을 때 사용한다. 나온 결과 긁어서 실행시키면 끝. select 'drop procedure ' + name as command from sys.objects where type = 'P' Database/RDBMS 2021. 11. 17. [MSSQL] DB에 접속한 사용자 수 조회 DB에서 DB명을 바꾸거나 할 때 잠금이 걸려있어 에러가 발생할 때가 있다. 그럴 때 난 이 쿼리를 사용해서 몇명이 이 DB에 접근해있는지 확인할 때 사용한다. 여기서 조회 되는 접속자수는 나 또는 다른 pc에서 해당 DB에 접근해있는것이다. (ex : 해당 DB의 쿼리 편집창 켜놈, 해당 DB로 어느 프로그램에서 실행 중 등) Query) SELECT DB_NAME(dbid) as DB이름, COUNT(dbid) as 접속자수 FROM sys.sysprocesses WHERE dbid > 0 GROUP BY dbid ; 해당 정보를 바꾸고 싶을땐 해당 쿼리를 조회하고 접속해있는 수만큼의 사용자를 찾아내야 한다. (사용자를 찾는 것은 이전 글인 사용자 정보 조회 글을 참고할것.) https://jeong.. Database/RDBMS 2021. 11. 17. [MSSQL] DB 접속자 정보 조회 DB를 사용하다보면 현재 이 데이터베이스에 어떤 접속자가 접속해있는지 알고싶을 때가 있다. 보통은 DB정보를 바꾸고싶을 때 어느 사용자가 접근해있는지 확인하고 싶을때 사용함. 해당 쿼리를 실행하면 아래 컬럼의 별명 내용을 조회할 수 있다. Query) SELECT S.spid, S.loginame as '접속자명', S.login_time as '로그인 시간', S.last_batch as '마지막 실행시간', C.client_net_address as '접속 IP' , S.program_name as '접속 프로그램', S.cmd as '현재 실행중인 명령어' FROM sys.sysprocesses S, sys.dm_exec_connections C WHERE S.spid = C.session_id Database/RDBMS 2021. 11. 17. [MSSQL] SP 마지막 호출 시간 조회 현재 사용하고있는 데이터베이스에서 프로시저가 마지막으로 호출된 시간을 조회할 수 있는 쿼리이다. 사용 이유는 두가지이다. 1. 해당 DB에서 어떤 sp를 사용하고있는지 확인하고싶을 때. 2. 해당 sp가 마지막으로 언제 실행됐는지. Query) SELECT NAME, lastdate FROM (SELECT b.NAME, Max(a.last_execution_time) AS lastdate FROM sys.dm_exec_procedure_stats a INNER JOIN sys.objects b ON a.object_id = b.object_id WHERE Db_name(a.database_id) = '데이터베이스이름' GROUP BY b.NAME)z ORDER BY lastdate DESC Database/RDBMS 2021. 11. 17. [MSSQL] SP 쿼리 실행 이력 조회 쿼리 현재 사용하고 있는 데이터베이스에서 어느 계정이 어떤 SP와 쿼리가 실행됐는지 알고싶을때 사용하는 쿼리이다. 나같은 경우는 어떤 직접쿼리와 프로시저에 인해서 DB 오류가 떳는지 찾고싶을 때 간혹 사용한다. (큰 이슈나 정확한 쿼리를 보고싶다면 프로파일러로 확인 권장) Query) SELECT Db_name(st.dbid) DBName, Object_schema_name(objectid, st.dbid) SchemaName, Object_name(objectid, st.dbid) SPName, qs.total_elapsed_time, creation_time, last_execution_time, text FROM sys.dm_exec_query_stats qs CROSS apply sys.Dm_exec_.. Database/RDBMS 2021. 11. 17. C# 접근 제어자 Internal란? (총 정리) Internal라는 키워드는 형식 멤버에 대한 액세스 한정자입니다. 이제 이것을 설명하기 전에 앞서 설명에 필요한 단어들을 정리 해보겟습니다. 1. 모듈(Module) 컴퓨터 용어에서 모듈은 "컴파일이 완료된 바이너리"를 말하는것이며, 이것을 다르게 말하면 라이브러리를 말하는 것입니다. 이 라이브러리는 여러 가지의 타입 및 함수들을 모아둔 집합을 말합니다. 2. 어셈블리(Assembly) 어셈블리란 .NET 기반 애플리케이션에 대한 배포, 버전 제어, 재사용 등 프로그램의 기본 단위입니다. 예로는 실행 파일(.exe) 또는 동적 연결 라이브러리(.dll)파일과 같은 .NET 애플리케이션의 구성 요소라고 보시면 됩니다. .Net에서는 소스 코드 파일 1개 이상에서 어셈블리를 빌드 할 수 있으며, .Net .. Programming/C# 2021. 11. 10. C# 프로퍼티(Property)란? (사용하는 이유 / Java get set) 서론 C#의 프로퍼티에 대해 알아볼 것이다. java에서의 getter, setter 라고 보면된다. 우선 글을 작성하기 앞서 이 주제에 대한 글을 작성한 이유는 멤버변수 선언을 해놓는것과 프로퍼티(get,set)로 속성을 부여해주는 차이가 무엇일까? 라는 생각으로 내용을 정리하게됐다. 이제 이 차이에 대해 알아보겠다. 우리는 java와 c#과 같은 객체 지향언어를 사용할 때면 정보 은닉화에 대해서 항상 염두 해야한다. 만약 염두하지 않는다면 외부 클래스를 상속 받고 객체를 참조하는 부분에 있어 문제가 생길 경우가 빈번하다. 그래서 접근제한자에서의 private를 사용할 경우 getter와 setter의 메소드를 구현 해야 한다. ===get, set 접근자=== get : 읽기 전용 set : 쓰기 전.. Programming/C# 2021. 11. 5. 10박 11일간의 치료 센터 탈출 이야기 -2 2부 시작~~!! 룰루 자 이제 정말 기다리던 퇴소날이 다가왔다. 나는 지옥 그 이상인 이 치료센터에서 나가는 과정을 하나씩 담고싶었다. 나 은근 블로거 체질인가? 정말로 그 와중에 퇴소 방송이랑 아침 검사하라는 방송 멘트도 알람 맞춰놓고 미리 일어나서 카카오톡 음성메세지로 남겨놨음 ㅋㅋㅋㅋㅋ 기특하다 나 음성메세지도 여기 올릴 수 있다면 올렸을텐데 못올려서 아쉽다 그치만 퇴소 전날부터 찍은 나의 주접 사진 몇장들을 올려보겠다 1. 퇴소 안내문 나 정말 이 퇴소 안내문 받고 눈물을 훔쳤다 또르륵 내 인생 유인물 받고 눈물을 훔친적이 있던가 2. 숙소에 배치된 검사 장비들 위의 장비들은 오전 7시, 오후 4시 이렇게 하루 두번 검사를 할 때 사용되는 장비들이다. 검사 결과를 치료센터 어플에 등록하여 의료진.. Daily/Covid-19 일기 2021. 11. 4. 이전 1 ··· 13 14 15 16 17 18 다음 💲 많이 본 글