Database
-
SSMS(MSSQL)에서 Oracle로 DB-Link하는 방법Database 2019. 6. 21. 17:06
1. 오라클 클라이언트를 설치한다. https://www.oracle.com/technetwork/topics/winx64soft-089540.html 2. \%ORACLE_HOME%\network\admin 폴더 안에 tnsnames.ora 파일을 생성한다. ORACLE_HOME: 오라클 클라이언트 설치경로 / 기본값: C:\app\컴퓨터계정\product\11.2.0\client_1 - tnsnames.ora 파일에 생성방법 L 메모장을 연다. L 메모장에 다음을 입력한다. TNS명 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = IP주소)(PORT = 포트번호)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME ..
-
[펌] 오라클(11g R2) 완전히 삭제하는 방법Database/Oracle 2019. 5. 30. 17:24
아..... 고객사에서 오라클 클라이언트를 설치할 때 런타임으로 설치해야 하는데 다른 걸 설치하여서 오라클 서버로 접속이 되지 않았다. 설치된 오라클을 삭제하고 다시 설치해야 하는데 오라클을 삭제하는 게 여간 까다로운게 아니다. 오라클을 삭제할 때 많은 도움이 된 글을 따라 하느라 캡처해 둔 게 없어서 그 글을 공유하는 걸로~~ https://kyome.tistory.com/4 [팁] 오라클데이터베이스(11g R2) 완전 삭제 0. Oracle database 11g R2 완전제거 오라클데이터 베이스를 지우려고 시도해본 사람들은 알겠지만 쉽지가 않아요. 어렵게, 어렵게 설치를 끝내고 나서 무언가 빼먹을 때도 종종 있고요! 간단한 설정을 하나라도.. kyome.tistory.com 0. Oracle dat..
-
MSSQL 테이블에 칼럼 추가, 변경, 삭제 쿼리Database/MSSQL 2019. 5. 7. 11:05
1. 칼럼 추가 ALTER TABLE [Table_Name] ADD [Column_Name] [data_type] ;NULL여부 ;default '기본값' - NULL 허용: ALTER TABLE table1 ADD cTitle varchar(10) null - NULL 허용X, 기본값 있음: ALTER TABLE table1 ADD SubTitle varchar(10) not null default 'N' 2. 변경 - 칼럼명 EXEC sp_rename '[Table_Name].[Old_Column_Name]', '[New_Column_Name]', 'COLUMN' EXEC sp_rename 'table1.cTitle', 'Title', 'COLUMN' - 칼럼 데이터타입 ALTER TABLE [Tab..
-
MSSQL 소계, 합계 만드는 쿼리Database/MSSQL 2019. 4. 23. 12:04
다음은 UNION과 Order by를 이용해 소계와 합계를 만드는 쿼리에 대한 설명이다. -- 테이블 정의 DECLARE @Table1 table ( _Name varchar(30) null, _Date varchar(10) null, _Number int null ) @Table1에 아래 그림과 같이 데이터가 들어있으며 사람별 _Number의 합계와 전체 _Number의 합계를 구하고자 할 때 SELECT _Name, _Date, _Number, 1 as Ordering FROM @Table1 UNION ALL SELECT _Name, '소계' as _Date, SUM(_Number) as Number, 1 as Ordering FROM @Table1 GROUP BY _GroupName UNION AL..
-
MSSQL 프로시저와 함수의 소스를 조회하는 쿼리Database/MSSQL 2019. 4. 16. 18:15
sp_helptext 프로시저명 sp_helptext 함수명 sp_helptext 프로시저명을 입력하고 쿼리를 실행하니 결과가 테이블형식으로 나온다. 소스 한 줄당 한 Row sp_helptext 이름에서 알 수 있듯이 저장 프로시저인데 SSMS에 내장되어 있는 프로시저이므로 유지보수를 나온 상황에서 DB에 직접 들어갈 수 없을 때 등 그저 자신이 알고자 하는 프로시저 혹은 함수의 소스를 알고자 할 때 유용하게 쓸 수 있겠다.
-
MSSQL 로그파일 삭제, 용량 줄이기Database/MSSQL 2019. 2. 7. 10:32
어느날 프로그램이 되지 않아서 보니까 드라이브의 용량이 꽉 차있었다.어디서 드라이브 용량이 꽉 찬 것인지 SpaceSniffer로 확인해보니까 MSSQL DATA 폴더에 특정 데이터베이스 로그파일이 아주 엄청 늘어나 있었다. 이전에 쓴 글인 트랜잭션 로그가 꽉 차서 해결했던 방법을 써보았으나2018/08/17 - [Database/MSSQL] - MSSQL 오류 해결 트랜잭션 로그가 꽉 찼습니다. 드라이브에 용량이 없어도 너무 없어서 그런가 오류메시지가 발생하면서 로그파일이 삭제가 되지 않는다. 예전에 데이터베이스 속성을 통해서는 안 되었으나 쿼리를 실행했을 때는 되었던 경험을 통해 혹시 쿼리로 로그를 삭제할 수 있지 않을까 하는 생각에 방법을 찾아보았고, 아래의 sql 쿼리를 찾아내었다. USE [Da..
-
SQL Server 구성관리자가 시작 메뉴에서 없을 때 실행 방법Database/MSSQL 2019. 1. 30. 11:47
시작페이지에 검색에 SQL Server 2014 버전인 경우는SQLServerManager12.msc 2014 이후 버전은 숫자를 하나씩 올리고,2014 이전 버전은 숫자 하나씩 내리면서 입력합니다. 참고로 SQL Server 2015는 없는 버전이기 때문에SQL Serer 2016이 SQLServerManager13.msc 입니다. 위와 같이 파일이 나온다면 실행합니다. 또는 윈도우키+R를 눌러 실행창을 띄운 후 입력합니다.[SQL Server 2017일 때] 확인을 클릭하면 SQL Server 구성관리자가 실행됩니다.
-
MSSQL 전체 SUM이 아닌 점차적으로 더하고(SUM) SELECTDatabase/MSSQL 2019. 1. 23. 15:21
SELECT sum(column) FROM table 을 하면 column의 row값 전체합을 조회한다.column의 전체합이 아니라row를 하나씩 점차적으로 sum을 하는 방법이 어디 없을까? SELECT ID, ( SELECT SUM(ValueColumn) FROM Test T2 WHERE T2.ID > 쿼리실행 >> 쿼리결과그림에서 W_UserAtt_Group 칼럼의 값은 전부 1인데 이 칼럼을 점차 더해주는 쿼리를 사용하여 GradualSum에서 W_UserAtt_Group 값이 1씩 증가한 것을 볼 수 있다.
-
더 빠른 SQL 쿼리를 위한 데이터베이스 튜닝 규칙 21가지Database 2019. 1. 2. 15:16
더 빠른 SQL 쿼리를 위한 21가지 데이터베이스 튜닝 규칙 개발자 /애플리케이션InfoWorld누구나 더 빠른 데이터베이스 쿼리를 원하며, SQL 개발자와 DBA 모두 이런 목표를 달성하기 위해 오랜 사용으로 효과가 입증된 여러 가지 방법에 의지한다. 하지만 안타깝게도 그 어떤 방법이라도 하나만으로는 완벽하거나 확실하지 않다. 이처럼 모든 쿼리를 미세조정, 즉 튜닝하기 위한 정답이 존재하지는 않지만, 길을 밝히는데 도움이 되는 풍부한 관례가 있다. 몇 가지는 RDMBS에 관련된 사항들이지만, 대부분의 팁은 모든 관계형 데이터베이스에 적용된다. SQL 서버, 오라클, DB2, 사이베이스, MySQL, 아니면 다른 관계형 데이터베이스 플랫폼 중 어디에서 코딩을 하고 있더라도, 목표는 같다. 데이터베이스가 ..
-
C# Linq query 'and' 'or' operators (Linq 조건 2개 이상일 때 and, or 연산자)Database/MSSQL 2018. 12. 26. 18:01
sql 쿼리를 c#의 linq를 통해 구현하고자 할 때'and' 는 '&&' 연산자를'or'은 '||' 연산자를 사용합니다. 추가로 select를 선택적으로 할 때는 'new' 연산자를 이용합니다. 다음은 stackoverflow에 한 질문을 통해 가져 온 예제입니다. person 테이블에서 name은 John이고, 생일은 1990년 1월 1일 이후인 사람의 name과 surname만 select 하려고 하는데sql의 'and'와 ','를 c# linq에서 어떻게 쓰나요? Hello people, I've got very simple question. Is it possible in linq just like in SQL language use "and"? Just like select: select n..
-
MSSQL 읽기(테이블 조회, select) 권한만 가능한 계정 만들기Database/MSSQL 2018. 12. 19. 10:09
계정에 읽기(select) 권한만 부여하고 추가, 수정 및 삭제(insert, update, delete) 권한은 주지 않는 방법입니다. 1. 이미 생성되어 있는 계정 중에서 부여를 한다면 보안 > 로그인을 펼쳐서 해당 계정을 오른쪽 마우스로 클릭하고, 속성을 클릭합니다.새로 만드는 경우는 로그인을 오른쪽 마우스로 클릭하고, 새 로그인을 클릭합니다. 2. 일반에서 로그인 이름, 암호를 입력하고 기본 데이터베이스 등을 선택합니다. 3. 서버 역할은 public 하나만 체크합니다. 4. 사용자 매핑 - 권한부여를 하는 곳입니다. 매핑할 데이터베이스를 체크하고, 그 밑에 데이터베이스 역할 멤버 자격에서 db_datareader와 public을 체크하고 확인을 눌러 저장합니다. 5. 읽기 권한만 부여한 계정으로..
-
MSSQL 공백제거 RTRIM, LTRIMDatabase/MSSQL 2018. 12. 14. 13:13
데이터의 자료형이 char이나 nchar이면 자릿수만큼 공백이 채워진다.또는 데이터를 입력하다가 실수로 맨 왼쪽이나 맨 오른쪽에 공백이 들어간 경우 이때 이 데이터를 조회할 때 공백은 불필요한 것이므로왼쪽에 공백이 채워졌거나 오른쪽에 공백이 채워졌을 때 제거하려면 다음의 함수를 사용한다. 데이터의 왼쪽 공백 제거 = LTRIM(데이터)데이터의 오른쪽 공백 제거 = RTRIM(데이터) 두개를 같이 쓰면 LTRIM((RTRIM(데이터)) 그 외에 데이터 중간에 공백을 넣고 잘못 입력했을 때는 REPLACE를 활용한다.REPLACE(데이터, ' ', '')
-
MSSQL [펌] 성능 향상을 위한 팁Database/MSSQL 2018. 10. 17. 14:00
1. 생성시 주의사항 2. (18) Table Hints 사용 2. (20) SET NOCOUNT ON / OFF 사용하기 3. (2) INDEX를 타는지 확인 https://m.blog.naver.com/PostView.nhn?blogId=islove8587&logNo=220605402338&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F[MSSQL] 성능 향상을 위한 팁1. 생성시 주의사항(1) DB 생성시 주의사항 ① DB 명칭은 해당 서비스를 파악할 수 있도록 명명한다. (...m.blog.naver.com
-
MSSQL Datetime formatsDatabase/MSSQL 2018. 10. 15. 09:17
출처: https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/ Date and Time Conversions Using SQL Serverwww.mssqltips.com 아래 표에는 없는 형식 변환법 (한국식 날짜 변환)Select Convert(varchar, getdate(),121) => 2016-04-05 09:28:25.003Select Convert(varchar(10), getdate(),121) => 2016-04-05Select Convert(varchar, getdate(), 120) => 2016-04-05 09:28:25 DATE FORMATSFormat #Query (current..
-
MSSQL SELECT와 UPDATE 동시에 하기Database/MSSQL 2018. 10. 2. 11:51
프로그램 내에서데이터를 select하여 가져온 다음에 row 하나씩 작업을 처리한 후 row 하나를 update를 하는 과정이처리속도가 오래 걸리는 문제가 있었다. select한 데이터는 플래그만 바꿔주면 되는 간단한 문제인데 처리속도가 느려서 그 뒤에 작업들도 너무 오래 걸린다. 방법을 달리하였다.update를 프로그램이 수행을 하여 느려진 것이니데이터베이스 자체에서, 쿼리에서 처리가 되도록 하는 방법을 생각했다.MSSQL은 저장프로시저가 있으니 저장프로시저에서 작업이 일어나고프로그램에선 프로시저를 실행해 데이터만 가져오면 된다. 1. 임시테이블을 만든다.declare @AAA table ([CreateDate] [datetime] NOT NULL, [UserID] [varchar](8) NOT NUL..