반응형

DB관련 66

윈도우 mysql install 디렉토리 와 Data디텍토리 위치

윈도우용 MySQL를 설치하다보면, 설치 위치와 Data위치가 다르게 들어간다.Data 디렉토리를 히든 디렉토리인 C:\ProgramData\에 남긴다. Install Directory: C:\Program Files\MySQL\MySQL Server 5.7 Data Directory: C:\ProgramData\MySQL\MySQL Server 5.7(참고, 해당 폴더는 윈도우 10 (64bit) 기준입니다.) (주의) 재설치시 Data Directory를 지워주지 않으면, 지우고 재설치시 오류가 발생한다.

DB관련/MySQL 2017.11.11

[펌] Static SQL을 위한 무기[1] - Cartesian Product(카테시안 곱)

Cartesian Product란Query의 From절에 2개 이상의 Table이 있고, 두 Table 사이의 유효한 Join 조건이 기술되어 있지 않은 경우에는 두 Table의 모든 행들이 무조건 결합하여 Table들에 존재하는 행 갯수를 곱한 만큼의 결과값이 반환되는 것을 Cartesian Product(카테시안 곱)라고 한다. 말로 써놓으니 어려운 듯 하지만, 실제로는 크게 어려운 개념이 아니다. 아래의 예를 보자. 각 품목별 수량의 합계와 전체합계를 한꺼번에 구하는 Static SQL이다. Select (Case tbl2.no1 When 1 Then tbl1.품목 Else ‘합계’ End), Sum(수량) From Table1 tbl1, (Select 1 no1 From dual Union All..

DB관련 2017.11.02

MySQL DB Table OPTIMIZE 저장 공간 줄이기 (Storage Shrink 처리)

MySQL에서 DB에서 사용하는 Storage의 사이즈를 줄이는 방법으로 OPTIMIZE를 사용한다.예를 들어, DB data 정보들을 delete 명령으로 줄였을 때, DB의 물리적인 파일의 용량은 줄지 않게 됩니다. 이럴 때, OPTIMIZE 명령을 통해서, 물리적인 파일 용량을 줄일 수 있다.요즘 AWS와 같은 Storage의 용량이 가격 증가의 원인이 된다. 이처럼 Storage에 민감한 부분을 잘 관리함으로써, 가격을 줄일 수 있다. [OPTIMIZE 명령]mysql> OPTIMIZE TABLE {table name}; Optimize단편화 제거 작업(defrag operation)과 같이, optimize table 명령문을 사용하면 사용하지 않은 공간을 회수할 수 있다. MyISAM 엔진에서..

DB관련/MySQL 2017.11.01

MSSQL 컬럼 변경 ( 추가, 삭제, 속성변경, 컬럼명 변경 )

MSSQL 컬럼 변경에 따른 쿼리들MSSQL MSSQL 칼럼추가- ALTER TABLE 테이블명 ADD 컬럼명 데이타형 제약조건ex ) ALTER TABLE PRODUCT ADD P_NAME VARCHAR(20) NULL; = PRODUCT 테이블에 P_NAME 이라는 컬럼이 VARCHAR(20) 에 제약조건 NULL값 허용으로 컬럼추가된다. MSSQL 컬럼삭제 ( 복제된 칼럼, 인덱스로 사용하는 칼럼, 제약조건 지정된 칼럼 ... )- ALTER TABLE 테이블명 DROP COLUMN 컬럼명ex ) ALTER TABLE PRODUCT DROP COLUMN P_NAME = PRODUCT 테이블에 P_NAME 이라는 컬럼이 삭제된다. MSSQL 컬럼 속성 변경- ALTER TABLE 테이블명 ALTER ..

DB관련/SQL Server 2017.10.12

[펌]MySQL 쓰면서 하지 말아야 할 것 17가지

출처: MySQL 쓰면서 하지 말아야 할 것 17가지 (https://blog.lael.be/post/370)*MySQL 쓰면서 하지 말아야 할 것 17가지*권장사항이다. 이것을 이해하면 당신의 어플리케이션이 더 나은 성능을 발휘할 것이다. 다만 이것이 사람의 실력을 판단하는 척도로 사용되서는 안 될 것이다. 작게 생각하기- 조만간 규모가 커질거라면 MySQL ecosystem을 봐야된다. - 그리고 캐싱 빡시게 안 하는 메이저 웹사이트는 없다. - develooper.com의 Hansen PT랑 Ilia 튜토리얼 볼 것 - 처음부터 확장 가능하게 아키텍처 잘 쪼개놔야된다. - 복제랑 파티셔닝 어떻게 할지 미리 계획 세워놔라. - 파일 기반 세션 좀 쓰지마 -_- - 그렇다고 너무 쓸데없이 크게 생각하지..

DB관련/MySQL 2017.08.25

MSSQL 2000~2008 DB 테이블 명세서 작성해주는 출력 쿼리

개발일을 하다보면, DB 명세서를 만드는게 노가다 중에 노가다인데, 이 쿼리 실행해서 받은 내용을 HTML로 저장하니 놀라운 결과물이 나오네요. //:TODO 한글 주석이 깨짐니다. 해당 쿼리 실행 -> 결과물 HTML로 저장 끝. [Gray Theme] [Table th가 Yellow Theme] Yellow Theme [최종버전] Blue Theme (Update 2020-06-20) (업데이트 내용: index 위치 변경 = top부분을 여백이 있게 위치시킴) 오늘의 배움, 역시 검색을 잘하면, 일을 줄일 수 있네요. -_-;; [그림1. Gray Theme] [그림2. Blue Theme] 출처: http://whiteblank.tistory.com/70

DB관련/SQL Server 2017.06.30

[MSSQL] 문자열 자르기 - 구분자로 자르기, 길이로 자르기

MSSQL 문자 자르기문자를 자르는 부분은 정말 많이 쓰이는 것 중에 하나인데, WHERE절에서 사용시 속도를 항상 염두해 가면서 사용해야 하는 것도 중요하죠. 구분자로 자르기문자열: 'ABC\DE\FGH' -- '\' 기준으로 앞에서 자르기SELECT LEFT('ABC\DE\FGH', CHARINDEX('\', 'ABC\DE\FGH')-1);결과: ABC -- '\' 기준으로 중간에서 자르기SELECT SUBSTRING('ABC\DE\FGH', CHARINDEX('\', 'ABC\DE\FGH')+1, LEN('ABC\DE\FGH')-CHARINDEX('\', 'ABC\DE\FGH')-CHARINDEX('\', REVERSE('ABC\DE\FGH')));결과: DE -- '\' 기준으로 뒤에서 자르기SE..

DB관련/SQL Server 2017.06.30

날짜 포멧 convert명령 - MSSQL 2008 이상

날짜(Date) 형식의 값을 특정 문자(String) 포맷(Format)으로 바꾸는 방법을 소개한다.아래는 자주 사용하는 YYYY-MM-DD HH24:MI:SS 으로 변경하는 방법이다. CONVERT( [포맷(길이)], [날짜 값], [변환형식] ) select convert(varchar, getdate(), 120) --결과 : 2014-12-12 19:21:36 ; select convert(varchar(10), getdate(), 120) --결과 : 2014-12-12 ; select convert(varchar(16), getdate(), 120) --결과 : 2014-12-12 19:21 [이외의 날짜 변환형식]select convert(varchar, getdate(), 100) --mo..

DB관련/SQL Server 2017.06.29

MSSQL Server Version 별 제품

SQL Server VersionMSSQL 서버에 버전별 정보 입니다. (구글)버전 패턴SQL 제품11.0.x.xSQL Server 201210.50.x.xSQL Server 2008 R210.00.x.xSQL Server 20089.00.x.xSQL Server 2005 표 1: 각 SQL Server 버전에서 사용 가능한 최신 업데이트 버전최신 서비스 팩최신 누적 업데이트전체 버전 정보SQL Server 2016SQL Server 2016 SP1(13.0.4001.0 – 2016년 11월2016 RTM용 CU3 (13.0.2186.6 – 2016년 11월SQL Server 2016 빌드SQL Server 2014SQL Server 2014 SP2(12.0.5000.0 – 2016년 7월2014 SP2..

DB관련/SQL Server 2017.05.16

MySQL 프로세스 리스트 보기 , 프로세스 죽이기.

MySQL 프로세스 리스트 보기에는 다음의 두가지 방법을 사용 [aokio]$ mysqladmin processlist mysql> show processlist; +---------+------+-----------+-------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +---------+------+-----------+-------+---------+------+-------+------------------+ | 1602724 | root | localhost | test | Sleep | 70 | | NULL | | 1603286 | root | loc..

DB관련/MySQL 2017.04.20

MSSQL 특정 테이블 백업하기

출처: MSSQL 테이블 단위 백업 MSSQL에서 특정 Table 백업하기 SQL Server Management Studio 실행 > DB선택 > 테스크 > 스크립트 생성 개체 선택 > 특정 데이터 베이스 개체 선택 테이블 > {백업할 테이블 선택} 스크립트 저장 방식 선택 (파일, 클립보드, 새 쿼리 창) > [고급] 선택 스크립팅할 데이터 형식 > 스키마 및 데이터 선택 데이터 량이 적으면, 새쿼리 창에 저장(용량이 크면 파일로 저장해야 전체가 백업이 된다.)

DB관련/SQL Server 2017.01.26

DB명 Table명 대소문자 구분 처리하기 (대소문자 구분 OS에서만 가능)

MySQL에서 DB명과 Table명을 대소문자 구분이 필요 할 때가 있습니다.(해당 기능은 OS의 자체에서 대소문자가 구분이 되는 OS에서만 지원됩니다.)>> : Win/Mac OS X에는 적용이 안된다고하네요? 왜 Mac OS에서 안된다고 하는지는 테스트 못해봄.>> (결과) Mac OS X에 설치된 테이블명은 대소문자 구분이 가능 (예: TestTable, 그러나 select * from testTABLE; 이명령도 처리됨) 출처: https://www.lesstif.com/pages/viewpage.action?pageId=14745775 MySQL 에서 database(Ex: testdb) 를 생성하면 다음 순서로 진행된다.my.cnf 에 설정된 datadir하위에 database 이름의 dire..

DB관련/MySQL 2016.11.08

QUARTER별 쿼리 만들기 ( 쿼터별 리포트 )

MySQL 쿼터별로 그룹핑 리포팅 QUARTER() 함수 SELECT YEAR(leaddate) AS year ,QUARTER(leaddate) AS quarter ,COUNT(jobid) AS jobcount FROM jobs WHERE contactid = '19249' GROUP BY YEAR(leaddate), QUARTER(leaddate) ORDER BY YEAR(leaddate), QUARTER(leaddate) 출처: http://stackoverflow.com/questions/6067526/how-do-i-group-a-date-field-to-get-quarterly-results-in-mysql 예제 SELECT YEAR(A.BIZ_DATE) AS YEAR ,CASE QUARTER(..

DB관련/MySQL 2016.09.29

MySQL 인코딩 UTF-8 설정하기 (한글 깨짐 문제)

MySQL 설치 시 UTF-8 환경으로 default 설치 되는 경우도 있지만, 본인처럼 한글이 깨지는 현상 발생시 mysql 환경을 utf-8으로 맞춰주는 포스팅을 진행하고자 한다. 대부분 mysql 기본 설치 시, 인코딩 타입이 latin(?) 타입으로 주로 설치되는것을 확인 할 수 있었다. 다음 명령어를 통하여 본인의 mysql 문자 인코딩을 확인하도록 하자SHOW VARIABLES LIKE 'c%' * 문자 인코딩 목록확인 확인결과 system 부분만 utf8이고 그외에는 latin1으로 인코딩 되어있다.다음 파일을 수정하여 utf8 환경으로 변경 하도록 하자 윈도우일경우 my.ini 리눅스일경우 my.cnf 파일을 찾아서 각각 위치에 맞추어 추가를 해주도록 하자 본인은 local환경이 윈도우에 ..

DB관련/MySQL 2016.05.17

MSSQL 소숫점 자리수 맞추기

[ 소수점 자리수 맞추기 ] 돈 계산과 같은 경우 소수점의 자리수를 맞춰주는 것이 중요합니다. C# 프로그램에서는 Math.Round(값, 소주점자리수) 형식을 하면 소주점자리수까지 자동 Round처리를 하게 됩니다. MSSQL은 CONVERT나, CAST을 이용하면 좋습니다. SELECT CONVERT(NUMERIC(12,3) , 0.56) ,CAST(0.56 AS NUMERIC(12,3)) 결과 0.5600.560 참고: http://www.sqler.com/656866 [ TEXT type filed 줄 바꿈 없애기 ] TEXT 타입의 필드값에는 문자역 합치기 "+"와 같은 처리가 안된다. 더불어 간단한 REPLACE도 안된다.select replace(replace(colname, char(9),..

DB관련/SQL Server 2016.02.20

[error 메모] String or binary data would be truncated.

아래의 오류는 Insert문에서, 여러개의 select한 값을 바로 insert 할 때, data의 길이가 너무 길때, 나타나는 오류입니다. [ MS-SQL 오류 메시지 ]String or binary data would be truncated. 참고: http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=38&MAEULNo=16&no=3751&ref=3751참고: error, string or binary data would be truncated when trying to insert (질문)1>2>3>4>5>.... Msg 8152, Level 16, State 4, Server SP1001, Line 1 string or binary data wou..

DB관련/SQL Server 2016.02.17

MS SQL SERVER 버전별 + Version List

MS SQL SERVERcompact 템플럴리 테이블 생성 불가. 서브쿼리 지원 MS SQL Local DB사용하기 (SQL 2012부터) ※ SQL LocalDB 설치 제약사항운영체제- Windows Vista SP2, Windows Server 2008 SP2 이상의 운영체제에서 지원합니다.- Windows XP, Windows Server 2003, 2003 R2는 지원하지 않습니다. 닷넷프레임워크- .NET Framework 4.0.2부터 지원을 합니다.- .NET Framework 버전 및 종속성: https://msdn.microsoft.com/ko-kr/library/bb822049(v=vs.110).aspx http://yunhyeon.tistory.com/365 DB connection ..

DB관련/SQL Server 2015.12.30

[중요] Left join and Left outer join in SQL Server

항상 사용할 때마다 헷갈리게 하는 부분이 조인이다. 기본적으로 조인은 중복에 대한 내용을 사용할때, 많이 사용한다. 그러나, RIGHT JOIN 도 생각보다 많이 사용되는 패턴이다. 간단히 정리된 내용을 메모해 둔다. (default) 기본 JOIN의 은 INNER조인입니다. INNER조인 = 중복된 값만 나타내는 것을 의미합니다. LEFT 조인 = 왼쪽 테이블에 있는 항목에 맞춰서 값을 가져옴 ( from A left join B on A.a=B.a /* A테이블 기준으로 B테이블 값가져온다*/ ) As per the documentation: FROM (Transact-SQL): ::= [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ ] ] JOIN T..

DB관련/SQL Server 2015.11.12

Update sql bit field in database

MSSQL의 bit필드 연산자. // 다음고 같이 하면 에러가 에러가 발생됩니다.Update table1 set Active='True' SQL의 bit필드 연산는 다음과 같이 1과 0으로 처리해 줘야 합니다.Bits in SQL Server are always stored as 1 or 0 in a bitmap. The "Edit Table" option in SSMS just translates this to True or False for presentation purposes, this is nothing to do with how it is actually stored. 출처: http://stackoverflow.com/questions/6879999/update-sql-bit-field-in..

DB관련/SQL Server 2015.11.12

localhost로 사용하기

참고: http://sinun.tistory.com/41 MS SQL Server Management Studio : localhost 사용하기 서버 이름을 HOSTNAME\SQLEXPRESS 로 많이 사용한다.만약 서버이름을 localhost로 사용하게 되면, 에러가 나는데. 해당 부분을 수정해 보자. [ TCP/IP 프로토콜 설정 변경 ( 아니오 -> 예 ) ]※ (주의) 해당 설정이 완료되면, SQL 서비스 Restart해야 적용이 됩니다. STEP 1 >>SQL Server 관리 콘솔SQL Sever 네트워크 구성 > SQLEXPRESS에 대한 프로토콜 > TCP/IP > 프로토콜 > 사용: 아니오 -> 예 (변경) ( 참고: 인스턴스를 default(MSSQL)로 설치되었다면, STEP 1만 하..

DB관련/SQL Server 2015.08.21

Convert a date 를 yyyymmdd format 형식으로 변경

MS-SQL의 getDate()함수를 이용해서, 현재 날짜를 YYYYMMDD 형태로 만들고 싶을때다음과 같이 사용하면 된니다. select CONVERT(varchar(8), GETDATE(), 112) today 결과20150730 참고: http://dba.stackexchange.com/questions/42395/convert-a-date-to-yyyymmdd-format YYYYMMDD 에서 => 년, 월, 일, 요일 뽑아내기 SELECT DATEPART(year, '20161213') AS BIZ_YEAR; -- 2016SELECT DATEPART(month, '20161213') AS BIZ_MONTH; -- 12SELECT DATEPART(day, '20161213') AS BIZ_DAY;..

DB관련/SQL Server 2015.07.31

Gender로 사용할 data type?

gender (성별)을 사용되는 데이터 타입은 어떤것이 좋을까요? 결론 부터 이야기 하자면,Char(1)을 추천하네요.너무 단순한 질문일지 몰라도, DB의 데이터의 양을 줄이는 것에 대해서 신경을 쓰는 것은 유익한 노력입니다. I'd call the column "gender".Data Type Bytes Taken Number/Range of Values ------------------------------------------------ TinyINT 1 255 (zero to 255) INT 4 - 2,147,483,648 to 2,147,483,647 BIT 1 (2 if 9+ columns) 2 (0 and 1) CHAR(1) 1 26 if case insensitive, 52 otherwis..

DB관련/SQL Server 2015.07.31

SQLyog 한글 깨짐 방지

SQLyog의 과거 버전은 한글 깨짐이 없었는데요.최신 버전을 오랜만에 사용하니 한글이 깨지더군요.프로그램을 바꿔야 하나 싶다가 찾아보니 해결 방법이있군요. MySQL 호스트에 연결 > 진정된(Advanced) 설정 > 초기 명령:set session character_set_connection=utf8;set session character_set_results=utf8;set session character_set_client=utf8; 다음 내용을 입력해 주면 한글이 깨지지 않습니다.참고: http://blog.daum.net/moon0sool/95

DB관련/MySQL 2015.07.21

eXERD 개인 무료 ERD 프로그램

ERD프로그램으로 유명한 프로그램은 ERwin인데, 아직까지는 써보지 않았지만, 유용해 보이는 ERD 프로그램을 소개합니다. eXERD http://ko.exerd.com/(홈페이지 소개글 : http://ko.exerd.com/#prettyPhoto )개요eXERD™는 경력자 뿐만 아니라 초보자도 데이터베이스 설계를 직관적이고, 쉽고, 빠르게 하도록 개발된 이클립스 기반 지능형 E-R 모델링 도구입니다. eXERD™를 통하여 새로운 모델링 세계를 경험하실 수 있습니다.아울러 현재 Oracle 및 Microsoft SQL Server, IBM DB2, MySQL을 대상으로 리버스/포워드 엔지니어링을 포함한 물리적 특성 편집을 지원하고 있습니다. 향후 국산 데이터베이스들에 대한 지원이 추가로 이뤄질 것입니다.

DB관련 2015.05.15

YEAR() MONTH() 함수로 WHERE 검색 조건에 년, 월 기준으로 검색 조건 결과 얻는 방법

WHERE 조건에 년(YEAR), 월(MONTH)을 기준으로 검색 조건으로 결과를 얻는 방법입니다. 가끔 조건 사항으로 해당 year와 month만의 범위만을 찾고 싶을 때가 있습니다. 아래와 같은 방법을 사용하면 유용합니다. 2014년의 9월의 내용만 결과를 얻기에 MONTH(), YEAR()함수를 이용하면 쉽게 사용이 가능합니다. ex) MONTH(reg_date) = '9' AND YEAR(reg_date) = '2014' SELECT * FROM TABLE WHERE MONTH(birthday) = MONTH(CURRENT_DATE) AND DAY(birthday) = DAY(CURRENT_DATE) http://stackoverflow.com/questions/7309826/how-to-retr..

DB관련/MySQL 2014.10.31

[MySQL] 2개의 테이블 count(*) 합하기 (2개의 테이블 데이터 갯수 합산)

MySQL 쿼리에서 2개의 테이블의 데이터 row 갯수를 합산하고 싶을때 서브 쿼리가 가능 하다면, SELECT (SELECT COUNT(*) FROM AAA) + (SELECT COUNT(*) FROM BBB) FROM DUAL; 실질적으로 다음과 같이 하여도 결과는 같습니다. SELECT (SELECT COUNT(*) FROM AAA) + (SELECT COUNT(*) FROM BBB); 여기서 가상 테이블 DUAL은 oracle에서 사용되는 가상테이블명 입니다. 출처: 두개 이상의 테이블 union all 후 count(*)의 합구하려면.. 참고: https://stackoverflow.com/questions/33378732/whats-the-best-mysql-alternative-to-dual

DB관련/MySQL 2011.08.03

MySQL root passwd forget 암호 변경법

윈도우 기반: mysqld.exe --skip-grant 유닉스 기반: [root@ns /root]# safe_mysqld --skip-grant & root 패스워드 변경 mysql> use mysql; Database changed mysql> UPDATE user SET password=PASSWORD('변경할패스워드') where user='root'; Query OK, 0 rows affected (0.14 sec) Rows matched: 1 Changed: 0 Warnings: 0 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.11 sec) 출처: http://www.apmsetup.com/database.php?tutid=138&uid=291

DB관련/MySQL 2011.07.14
1 2 3
반응형