본문 바로가기

DBMS

(116)
[SQL Server] 중복된 Row 제거하기 이미 데이터가 저장된 테이블에 Primary Key나 Unique 인덱스를 만들고 싶지만 중복된 로우가 있으면 에러가 발생한다. 이럴경우 중복된 Row를 제거하여 보자. -- 테스트를 위해 테이블을 생성 CREATE TABLE dbo.TEST_TBL ( NUM INT NOT NULL , ID VARCHAR(32) NOT NULL ) GO -- 중복된 데이터를 삽입 INSERT INTO dbo.TEST_TBL (NUM, ID) VALUES (1, 'APPLE'), (2, 'BANANA'), (2, 'GRAPE') GO /* Primary Key 제약조건추가 NUM 컬럼은 중복된 값을 가지고 있으므로 오류가 발생*/ ALTER TABLE dbo.TEST_TBL ADD CONSTRAINT PK_TEST_TBL..
[SQL Server] SQL 인젝션과 예방 SQL 인젝션과 예방 SQL 인젝션은 sql 쿼리문에 개발자가 의도 하지 않은 쿼리 문을 추가하도록 하여 비정상적인 결과를 얻기 위한 해킹 기법이다. 웹페이지 상에서 사용자 로그인 등 폼 입력 부분에서 특수 문자 등을 포함한 SQL 문의 일부 내용을 작성하여 해킹을 시도 한다. 이것은 특히 DB 에서 관리자 권한 등 불필요하게 많은 권한을 가진 계정으로 만들어 진 사이트에서 치명적일 수가 있다. 예를 들어 아래와 같은 코드를 살펴 보자. Select name from user where id=’id’ and password=’pwd’ 웹페이지 사용자 로그인 부분에서 유저아이디와 패스워드를 입력 받아서 위와 같은 sql 쿼리문을 완성 한 다음 쿼리를 실행 하여 리턴 되는 레코드가 있으면 로그인을 성공 시키..
[SQL Server] SQL Server Management Studio 단축키 내가 자주 사용하는 SSMS 단축키 단축키 동작 F5, Alt + X, Ctrl + E 선택 부분을 실행하거나 선택한 것이 없을 경우 전체 쿼리 편집기 실행 Ctrl + K + C 주석 Ctrl + K + U 주석 제거 Ctrl + R 결과창 보이기 / 감추기 Ctrl + Shift + L 선택영역을 소문자로 Ctrl + Shift + U 선택영역을 대문자로 Tab 줄 들여쓰기 Tab + Shift 줄 내어쓰기 Ctrl + L 예상 실행 계획 표시 Ctrl + M 쿼리 출력에 실제 실행 계획 포함 Ctrl + N, Alt + N 현재 연결에서 새 쿼리 열기 Alt + Break 실행 중인 쿼리 취소
[SQL Server] 집계 함수와 NULL 값 집계 함수와 NULL 값 COUNT(*) : NULL 값을 포함한 행의 수 COUNT(표현식) : 표현식의 값이 NULL 값인 것을 제외한 행의 수 SUM() : NULL 값을 제외한 합계 AVG() : NULL 값을 제외한 평균 ※ 조건절에 해당하는 데이터가 없을 때 COUNT(*)의 결과 값은 0 COL1 COL2 COL3 COL4 NULL NULL 50 30 30 20 10 30 NULL 10 NULL NULL 문제) SUM(COL1) + SUM(COL2 + COL3) + SUM(COL4)의 값은? 1.120 2.180 3.NULL 4.90 답은 120
[SQL Server] 프로시저의 모든 매개변수 한번에 보기 프로시저의 모든 매개변수 한번에 보기 SELECT 'Procedure_name' = b.name , 'Parameter_name' = a.name , 'Type' = type_name(user_type_id) , 'Length' = max_length , 'Prec' = CASE WHEN type_name(system_type_id) = 'uniqueidentifier' THEN precision ELSE OdbcPrec(system_type_id, max_length , precision) END , 'Scale' = OdbcScale(system_type_id, scale) , 'Param_order' = parameter_id , 'Collation' = CONVERT(sysname , CASE W..
[Oracle] Redo Log File 미러링 Redo Log File 미러링 1. Member 추가 SYS> Select group#, members, bytes/1024/1024 M From v$log; SYS> Select member From v$logfile; SQL> Alter Database Add logfile member '/u01/app/oracle/oradata/orcl/redo01b.log' to group 1; SQL> Alter Database Add logfile member '/u01/app/oracle/oradata/orcl/redo02b.log' to group 2; SQL> Select member From v$logfile; 2. Group 추가 SQL> Alter Database add logfile group ..
[Oracle] Controlfile 다중화 Controlfile 다중화 1) SQL> Select name From v$controlfile; // Controlfile 확인 2) SQL> Alter System Set Control_files = '/u01/app/oracle/oradata/orcl/control01.ctl', '/u01/app/oracle/oradata/orcl/control02.ctl', '/u01/app/oracle/oradata/orcl/control03.ctl' SCOPE=SPFILE; 3) SQL> Shut immediate 4) $ cd /u01/app/oracle/oradata/orcl 5) $ cp control01.ctl control02.ctl $ cp control01.ctl control03.ctl 6) ..
[SQL Server] 버전, 서비스팩, 설치버전 알아보는 쿼리 SQL Server 버전, 서비스팩, 설치버전 알아보는 쿼리 SELECT @@VERSION as 풀버전 , SERVERPROPERTY ('productversion') as 버전번호 , SERVERPROPERTY ('productlevel') as 서비스팩이름 , SERVERPROPERTY ('edition') as 설치버전