MS-SQL Server 서버 인증 방식 변경하는 방법 SQL Server는 접속시 두 가지 인증 방식을 제공하는데, SQL Server가 설치 되어 있는 Windows 환경의 로그인 계정을 통해 접속하는 Windows 인증 방식과 SQL Server에서 생성한 권한 계정을 통해 접속하는 방식이 있습니다. 일반적으로 회사 외부에서 접근하는 사용자의 경우 SQL Server 계정을 제공합니다. Windows 인증 방식을 SQL Server 계정 방식을 사용할 수 있게 변경하는 방법을 알아보도록 하겠습니다. 먼저 SQL Server에 접근 가능한 Windows 계정을 통해 SSMS(SQL Server Management Studio)로 접속합니다. SSMS의 개체 탐색기에서 Server 마우스 우클릭 -> ..
데이터베이스[DB]
2020. 3. 8. 00:23
[MariaDB] 버전(Version) 쿼리로 알아내는 방법
MariaDB SQL 버전 확인 방법 MariaDB 버전(Version)은 아래 SQL 호출 한번이면 알 수 있습니다.SELECT VERSION();cs 결과는 아래와 같습니다. 출처 https://mariadb.com/kb/en/version/
데이터베이스[DB]
2019. 12. 1. 22:23
[MariaDB] MariaDB란? Maria DB 다운로드 및 설치 방법
Maria DB란? Maria DB(마리아 DB)는 오픈소스(무료) RDBMS(관계형 데이터베이스)입니다. MySQL과의 관계 MySQL은 1995년 MySQL AB사에서 오픈소스로 제작된 DBMS로 무료 DBMS이면서 대용량 DBMS로서 높은 안정성과 성능덕분에 인기있는 오픈소스 DBMS로 자리 잡고 있었습니다. 2008년에는 선 마이크로 시스템즈에 인수되어 관리됐는데, 아시다시피 선 마크로 시스템즈사는 2010년 오라클사에 인수되었죠. 당연히 MySQL을 개발했던 초창기 개발자 멤버또한 오라클사 소속으로 개발을 진행합니다. MySQL은 오라클에 인수된 이후 5.1, 5.6, 5.7버전을 거쳐 2018년 기준으로 MySQL 8.0 버전이 릴리즈 되었습니다. 그러나 오라클은 라이센스를 유료화하였고(학생용..
데이터베이스[DB]
2019. 8. 22. 18:20
[Oracle] 오라클 ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다 오류 해결 방법
ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다 오류 원인 사용자 생성 후 테이블을 생성하고 INSERT 하려는 순간 다음과 같은 오류가 발생하였습니다. (혹은 CREATE시에) ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다cs 오라클에서는 테이블스페이스라 하여 테이블이 저장되는 공간이 있습니다. 새로운 사용자를 생성한 직후에 기본적으로 할당받는 테이블 스페이스는 users입니다. 그러나 생성된 유저에 대해 GRANT를 통해 RESOURCE 롤(role)을 부여해주지 않은 경우 이 users 테이블스페이스에 얼마만큼의 영역을 할당한것인지 정해지지 않은 상태입니다. 따라서 users 테이블스페이스에 데이터를 입력하려 하니 ORA-01950오류가 발생하게 된것..
데이터베이스[DB]
2019. 6. 24. 00:30
[MySQL] MySQL에서 ORDER BY로 정렬시 null값 처리
MySQL에서 ORDER BY로 정렬시 null값 처리 ORDER BY 구문을 통해 데이터를 정렬하는데, 문자열은 사전순으로, 숫자의 경우 그 수의 크기 순으로 정렬합니다. 그러나 NULL값의 경우는 값이 없다는 의미를 가지고 있기에 대소를 가릴 수 없는데, 그래서인지 NULL값 정렬에 대한 정해진 표준이 없기 때문에 Oracle이나 MySQL, MS-SQL, PostgreSQL 등 각 DBMS의 공급사마다 다른 방식으로 NULL값 정렬에 대한 처리를 하고 있습니다. 결론적으로 MySQL의 경우 NULL값은 가장 작은 값으로 취급하고 있습니다. simple_tbl 테이블은 단순히 number라는 INTEGER형 컬럼 하나만을 가지고 있는 테이블입니다. SELECT * FROM simple_tbl; cs ..
데이터베이스[DB]
2019. 6. 23. 03:00
[MySQL] 작은따옴표(') 를 검색 조건에 포함 시키는 방법
MySQL 작은따옴표(') 를 검색 조건에 포함 시키는 방법 SQL 구문에서 문자열 데이터를 표현할때는 작은따옴표인 ' 를 데이터의 시작과 끝에 감싸 표기합니다. SELECT * FROM notice_board WHERE greeting = 'I AM OK'; cs 그렇다면 이런 상황에서 I'M OK 와 같이 문자 자체에 작은 따옴표가 포함되어 있는 경우는 어떻게 해야할까요? 만약 아래와 같이 작은 따옴표를 넣어 검색한다면 문법 오류가 발생할것입니다. SELECT * FROM notice_board WHERE greeting = 'I'AM OK'; cs 다음과 같이 AM OK 부분이 문법상의 오류가 있다고 에러메시지가 뙇 하고 떨어지게 됩니다. 문자열 데이터를 표현하기 위해서는 작은 따옴표를 양쪽으로 감..
데이터베이스[DB]
2019. 6. 9. 12:44
[MySQL] 데이터 여러개(여러행) 동시에 입력하는 방법
MySQL 데이터 여러개(여러행) 동시에 입력하는 방법 INSERT INTO 구분을 사용할때 한행 한행을 매번 INSERT 구문을 사용하여 넣어줄수도 있지만 한 테이블에 대해 여러 데이터를 한꺼번에 넣을때는 INSERT INTO VALUE 부분을 두번째 행부터 생략할 수 있습니다. INSERT INTO employees (emp_no, birth_date, first_name, last_name, gender, hire_date) VALUES (20000, '1991-01-01', 'younghee', 'kim', 'M', '2019-01-01'), (20001, '1991-01-02', 'younghee2', 'kim2', 'F', '2019-01-01'), (20002, '1991-01-03', 'y..
데이터베이스[DB]
2019. 6. 9. 07:30
[MySQL] 테이블 백업, 복사하는 방법
MySQL 테이블 백업, 복사하는 방법 DB 작업을 하다 보면 데이터를 백업해야 할 때가 있습니다. 특히 UPDATE나 DELETE 등 데이터에 수정이 발생하는 작업을 하기 전에는 백업이 중요합니다. DB 자체를 풀백업 해버리면 가장 좋겠지만 데이터가 많이 쌓여 있는 경우에는 백업 자체만으로도 너무 오랜 시간이 걸리기에 일부 데이터나 테이블만을 복사해 두기도 합니다. 최근에 근무하던 회사에서 동료가 데이터를 잘못 조작하였다가 다행히 백업해 두었던 데이터가 있어서 겨우 복구했던 웃픈 일이 있어 생각난김에 MySQL에서 테이블을 복사하는 두가지 방법에 대해서 알아보도록 하겠습니다. 첫번째 방법 CREATE TABLE ... SELECT 구문 MySQL에서는 CREATE TABLE 생성 테이블명 (SELECT..
Python
2019. 3. 18. 13:12
[Python] 파이썬 오라클(cxOracle) 사용시 쿼리 결과 Dictionary 로 받기
파이썬(Python) 오라클(cxOracle) 사용시 쿼리 결과 Dictionary 로 받기 파이썬에서 오라클과 DB 연동을 할때 사용하는 cxOracle 라이브러리는 SELECT 해오는 쿼리 결과가 기본적으로 tuple형태입니다. ('kim', 27, '서울시 광진구') cs 그러나 이런 형태라면 데이터를 구할때 index를 가지고 다루어야 하므로 나중에 코드를 보았을때 알아보기 힘든 형태가 됩니다. name = row[0] #kim age = row[1] #27 address = row[2] #서울시 광진구 cs 다행히 cxOracle은 cursor의 rowfactory 라는 메서드를 오버라이딩하여 리턴받는 데이터의 형태를 바꿀 수 있습니다. #메서드 정의 def makeDictFactory(curs..
Python
2018. 9. 10. 13:49
[Python] 쿼리시에 TypeError: 'int' object does not support indexing 오류
쿼리시에 TypeError: 'int' object does not support indexing 오류 파이썬으로 DB 연동시에 위와 같은 오류가 발생한다면 쿼리 파라미터를 확인하시기 바랍니다. 커서를 이용하여 쿼리를 실행할 때 파라미터를 다음과 같은 형식으로 사용하셨을겁니다. userId = 15 cursor.excute('SELECT * FROM users WHERE id = %s', userId) cs 쿼리 파라미터에는 list 타입을 지정해주어야 하는데 정수형 타입 매개변수를 지정해서 발생한 오류입니다. 따라서 파라미터가 하나인 경우에도 다음과 같이 변경해줍니다. userId = 15 cursor.excute('SELECT * FROM users WHERE id = %s', [userId]) cs