본문 바로가기

프로그래밍 언어/쿼리문 + Oracle + MySQL50

[MySQL] 테이블, 컬럼에 코멘트(comment) 달고 phpMyAdmin에서 확인하기 MySQL의 테이블과 컬럼에도 코멘트를 넣을 수 있습니다. 코멘트라 함은 테이블이나 컬럼을 설명하는 문구인데요. CREATE TABLE 구문의 컬럼과 테이블 끝에 COMMENT '설명' 이렇게 넣어주시면 됩니다.쿼리문에서는 대소문자 구별 안하는 거 아시죠? (대문자든 소문자든 편한대로 사용하시면 됩니다.) 예제를 보면 더 이해가 쉽겠죠? CREATE TABLE MOA_QA ( SEQ_NOBIGINT auto_increment NOT NULL KEY COMMENT '일련번호', TITLEVARCHAR(300) NOT NULL COMMENT 'QA 제목', SORTVARCHAR(20) NOT NULL COMMENT 'QA 형식(객관식/OX/단답형)', ANSWERVARCHAR(300) NOT NULL COM.. 2016. 1. 31.
[오라클] oracle에서 저장프로시저 IN, OUT 파라미터 있을 경우 실행하는 방법 저장 프로시저를 만들었는데, 그걸 Toad에서 실행할 때는 간단하게 아래처럼 실행하면 됩니다.예를들어, 저장프로시저명이 prc_tree 라는 이름이라면...CALL prc_tree(); CALL prc_tree('x'); ==> IN 파라미터가 있을 경우또는EXEC prc_tree(); EXEC prc_tree('x'); ==> IN 파라미터가 있을 경우또는EXECUTE prc_tree(); EXECUTE prc_tree('x'); ==> IN 파라미터가 있을 경우 그런데, OUT 파라미터도 같이 있다면 어떻게 실행해야 할까요? CREATE OR REPLACE PROCEDURE prc_tree ( v_dept_code IN VARCHAR2, p_code OUT VARCHAR2, t_code OUT VAR.. 2016. 1. 29.
[Mysql] phpMyAdmin에서 데이타 insert문으로 저장하기 MySQL 툴로 저는 phpMyAdmin을 사용하는데요. 기능은 많이 부족하고 웹화면이라 불편한 점이 좀 있지만, 그래도 사용할 만합니다. 까페24에서 웹호스팅을 하는 관계로 본의아니게 이걸 사용하고 있지만요. phpMyAdmin에서 데이타를 insert문으로 바꾸려면 어떻게 해야 할까요? 사실은, phpMyAdmin에서는 데이타를 여러가지 방법으로 저장할 수 있도록 지원을 하고 있답니다. 데이타를 저장할 테이블을 먼저 선택하시고 데이타가 쭉 나오는 화면에서 [내보내기] 탭을 클릭하세요~ 또는 아래처럼 화면의 맨 아랫쪽에서 [내보내기]를 클릭하셔도 됩니다. 아래처럼 많은 방법으로 내보내기를 지원하고 있습니다. 저는 insert문 쿼리로 내보내려고 하기 때문에 [SQL]을 선택했습니다. 아래쪽에 [파일로 .. 2016. 1. 12.
[ApmSetup] MySQL에 저장시 한글깨지는 문제 해결방법 http://apmsetup.com/여기에서 ApmSetup이라는 프로그램을 다운로드 받아서 설치를 하면 MySql 서버와 아파치 서버를 동시에 관리해 줍니다.그래서, 저는 이 프로그램을 항상 사용하는데요. 이상하게도 MySql에 한글을 저장하면 항상 '????????'이렇게 물음표로 저장이 되면서 한글이 나타나지 않았습니다.그래서, 검색을 해보니 my.ini 파일에 아래 부분을 추가하라고 하더군요. [client]default-character-set=utf8 [mysqld]init_connect = SET collation_connection = utf_general_ci init_connect = SET NAMES utf8 character-set-server = utf8 collation-serv.. 2015. 12. 29.
[MySQL] phpMyAdmin에서 테이블의 primary key, index(인덱스) 확인하는 방법 MySQL 툴인 phpMyAdmin에서 테이블의 primary key 또는 인덱스를 확인하려면 어떻게 해야 할까요? 저는 이 방법을 몰라서 한참을 헤맸답니다. 검색을 해도 잘 안 나와서 말이죠. 역시나 알면 간단하더라구요. 테이블을 클릭하면 아래와 같이 화면이 나오는데, 맨 아래쪽에 [Details...]라는 메뉴가 있더라구요. 이걸 누르니까 나오네요. 인덱스가... 2015. 12. 28.
[오라클] Oracle에서 수행(실행)시간이 알고 싶다면 ‘SET TIMING ON’ 명령을 실행하세요. 오라클에서 쿼리나 저장프로시저, 커서 등의 실행시간을 알고 싶다면 어떻게 해야 할까요? 제가 약간 복잡한 통계용 프로시저를 만들었는데 100만건을 돌리면 얼마나 걸리는지 알고 싶어서 저장프로시저를 돌려놓고 퇴근을 했습니다.다음날 출근을 해서 확인을 했는데 웬걸!저장프로시저는 다 실행완료가 됬는데 실행시간이 찍히지 않는 겁니다 ㅠ 그래서, 찾아보니 SET TIMING ON이라는 명령어가 있더라구요.그냥 명령을 실행하면 아래처럼 실행시간이 나오지 않지만... SET TIMING ON 이라는 명령어를 넣으면 맨 아래에 실행시간이 찍히는 걸 보실 수 있습니다. 아~ 그리고, 참고로 저는 Toad에서 F5 단축키로 실행해서 테스트했습니다. 2015. 11. 10.
[MySQL] DB의 모든 테이블을 삭제하는 쿼리 DB에 이것저것 테스트로 만들어보거나 오픈소스를 설치하면 테이블들이 생성되는데 다 삭제하고 다시 설치하고자 할 때.. DB는 그대로 놔두고 생성된 모든 테이블들을 삭제하고 싶다면 어떻게 해야 할까요? SET @tables = NULL; SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables FROM information_schema.tables WHERE table_schema = 'DB이름 입력'; -- specify DB name here. SET @tables = CONCAT('DROP TABLE ', @tables); PREPARE stmt FROM @tables; EXECUTE stmt; DEALLOCATE PREPARE stmt; 위 .. 2015. 10. 24.
[Mysql] phpMyAdmin에서 사용자 비밀번호 변경하기 제가 phpMyAdmin에서 moaFrame이라는 DB와 계정을 생성했는데, 며칠이 지나고나니 비밀번호가 기억이 나질 않네요 ㅠㅠ (이놈의 기억력!) 그래서, 비밀번호를 바꿔버렸습니다. phpMyAdmin 에 root 계정으로 들어가서 아래와 그림처럼 변경하시면 됩니다. 잘 변경되었나요? ㅋ 2015. 10. 22.
[쿼리문/오라클] 간단한 쿼리로 일련번호 쉽게 넣기 - ROWNUM 사용 보통 PK로 일련번호를 많이 넣는데요.PK가 없는 테이블에 ROWNUM을 사용하면 간단하게 일련번호를 넣을 수 있습니다. JOBS 라는 테이블에 PK가 없는데요.다음 쿼리로 PK로 사용할 SEQ_NO라는 컬럼을 만들어 보겠습니다.ALTER TABLE JOBS ADD SEQ_NO NUMBER(12); 다음 쿼리로 SEQ_NO 컬럼에 일련번호를 넣습니다.UPDATE JOBS SET SEQ_NO = ROWNUM; 결과를 볼까요? 일련번호 넣는데 커서 만들고 복잡하게 할 필요 없습니다^^순서가 아주 중요한 게 아니라면요. 2015. 9. 16.
[쿼리문/오라클] WHERE절에서 Null 값 비교하기 Null 값은 다른 값과 비교하는 방법이 다른데요. NULL의 비교법같은지 비교 : WHRE COMM IS NULL다른지 비교 : WHERE COMM IS NOT NULL NULL 이외의 비교법같은지 비교 : WHERE COMM = '300'다른지 비교 : WHERE COMM '300' Nul의 잘못된 비교 WHERE COMM NULL 아래처럼 NULL인 데이타가 있는데도 결과값이 나오지 않습니다. NVL() 함수를 이용한 비교NVL() 함수는 NULL일 경우, 다른값으로 치환해주는 함수인데 이걸 이용해서 비교할 수 있습니다.WHERE NVL(COMM, -1) = -1 2015. 8. 7.
[오라클] Oracle에서 ORA-28000: 계정이 잠금되었습니다. - 해결 방법 Oracle에서 ORA-28000: 계정이 잠금되었습니다. 해결방법입니다. 1. SYS나 SYSTEM 계정으로 로그인합니다. 2. ALTER USER 계정 ACCOUNT UNLOCK; 명령어를 실행한다. SCOTT을 로그인하려니 계정이 잠겼다네요 ㅠ SYSTEM으로 로그인했습니다. (SYS로 하셔도 됩니다.) 아래 명령어를 실행하고 다시 로그인하니 해결 완료~!!! [출처] ORA-28000: 계정이 잠금되었습니다. (the account is locked.) 오라클 오류|작성자 호옹 2015. 8. 7.
[오라클/쿼리문] Oracle에서 Foreign Key가 걸려있는 컬럼값 업데이트(update) 하기 오라클에서는 Foreign Key가 걸려 있을 경우,ON UPDATE CASCADE 옵션이 실행되지 않기 때문에 컬럼값을 바꾸기가 쉽지 않습니다.이때, 트리거를 만들어서 부모테이블이 업데이트 될 때, 자식테이블도 업데이트 되도록 하면 됩니다. 자식테이블 COMTCCMMNDETAILCODE 테이블의 CODE_ID가 현재 Foreign Key구요.Foreign Key 제약 때문에 UPDATE가 진행되지 않습니다. 부모 : COMTCCMMNCODE.CODE_ID 자식 : COMTCCMMNDETAILCODE.CODE_ID아래와 같이 트리거를 하나 만들고 UPDATE문을 실행합니다.CREATE OR REPLACE TRIGGER RENAME_TRIGGER AFTER UPDATE ON COMTCCMMNCODE FOR.. 2015. 6. 18.
[오라클/쿼리문] Oracle에서 사용자가 생성한 모든 Table, View를 삭제하는 쿼리 만들기 이것저것 하다보면 가끔은 DB를 삭제하고 다시 만들고 싶은 생각이 들 때가 듭니다. 그렇지만, DB를 다시 만드는 것보다 내가 만든 테이블만 모두 삭제하면 더 편리하겠다는 생각이 들었죠.SELECT 'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;' FROM user_objects WHERE object_type = 'TABLE'; 생성된 쿼리를 긁어다가 [F5] 버튼 꾹~ 눌러주면 테이블이 다 삭제됩니다. View도 이렇게 쿼리를 만들어 같은 방법으로 삭제하시면 됩니다.SELECT 'DROP VIEW ' || object_name ||';' FROM user_objects WHERE object_type = 'VIEW'; 2015. 6. 4.
[오라클/쿼리문] Oracle에서 세자리 콤마 찍기 1. 숫자인 경우SELECT TO_CHAR('1000000', 'FM9,999,999') FROM DUAL => 1,000,000 2. 화폐인 경우SELECT TO_CHAR('1000000', 'L9,999,999') FROM DUAL => \1,000,000 2015. 3. 25.
[쿼리문] Merge into를 이용해서 insert나 update를 자동으로 실행하자. MERGE INTO 쿼리를 이용하면 Update나 Insert를 하기 위해 해당 데이타가 존재하는지 확인하기 위해 따로 Select를 하지 않아도 됩니다. 데이타가 존재하는지 알아서 판단해서 Update이나 Insert를 실행하기 때문이죠. 저도 그 편리함 때문에 종종 MERGE INTO를 사용합니다.MERGE INTO 테이블명 USING DUAL ON ( 조인조건 ) WHEN MATCHED THEN UPDATE 문 WHEN NOT MATCHED THEN INSERT 문 쿼리는 위와 같이 구성이 됩니다. 조인조건에 해당하는 데이타가 있는지 확인해서 Update 또는 Insert를 실행하게 됩니다. 아래 예제를 보면 어떻게 사용하는지 명확하게 알 수 있습니다. MERGE INTO TB_USER USING .. 2015. 2. 4.