본문 바로가기

델파이506

sqlite 팁 TIP sqlite 팁 TIP Sqlite 다중 중첩 case문 case [Su_Volt] when 1 then (case [Su_Kind] when 1 then '6600' when 2 then '440' end) when 2 then (case [Su_Kind] when 1 then '3300' when 2 then '380' end) when 3 then (case [Su_Kind] when 2 then '220' end) end as Su_Volt, expecting: LargeInt actual: WideString TFDQuery and SQLite: Type mismatch for field, expecting: LargeInt actual: WideString SELECT DayTime AS "T.. 2023. 3. 3.
SQLite 다중 스레드 응용프로그램 사용 SQLite 다중 스레드 응용프로그램 사용 1. 개요 SQLite는 세 가지 스레딩 모드를 지원합니다. 단일 스레드. 이 모드에서는 모든 뮤텍스가 비활성화되고 SQLite는 한 번에 단일 스레드에서 사용하지 않는 것이 안전합니다. 멀티 스레드. 이 모드에서SQLite는 두 개 이상의 스레드에서 단일 데이터베이스 연결이 동시에 사용되지 않는 경우 여러 스레드에서 안전하게 사용할 수 있습니다. 직렬화. 직렬화된 모드에서SQLite는 제한 없이 여러 스레드에서 안전하게 사용할 수 있습니다. 스레딩 모드는 컴파일 시간 (SQLite 라이브러리가 소스 코드에서 컴파일되는 경우) 또는 시작 시간 (SQLite를 사용하려는 응용 프로그램이 초기화되는 경우) 또는 런타임(새 SQLite 데이터베이스 연결이 생성되는 경.. 2023. 2. 17.
Date형식 조회/View(가상테이블) /테이블 타입 변경 Date형식 조회/View(가상테이블) /테이블 타입 변경 Date형식 조회 to_date('20070525084214', 'yyyymmddhh24miss') View(가상테이블) 뷰 삭제 DROP VIEW table_name ★★★★★ 다른 테이블을 참조로 뷰를 생성할 경우 뷰에 있는 데이터를 삭제시 원본 테이블도 함께 지워진다!!!!!!!!! 중요!!! 테이블 타입 변경 alter table 테이블명 modity 컬럼명 2023. 2. 14.
오라클 시퀀스 생성/초기화 오라클 시퀀스 생성/초기화 DROP SEQUENCE PAY_REG_NO create sequence PAY_REG_NO increment by 1 -- 증가값 start with 1 -- 첫 시작값 nomaxvalue -- 최대값 제한 (최대값 제한) nocycle nocache; 2023. 2. 7.
오라클 설치하기-무료버전 오라클 설치하기 오라클 설치하기-무료버전 https://www.youtube.com/watch?v=mJXgnqaGR8o&list=PLuvImYntyp-s76lJiia8YfskDRAypeoyh&index=14 CMD 창을 열고 sqlplus sys as sysdba 입력 비밀번호는 오라클 설치시 설정 해놓은 비밀번호 저는 항상 1234 로해놓습니다. 접속 완료 create user 계정이름 identified by 계정비번; 하면 당연히 만들어 저여하는데 에라가 똮!! 1행에 오류: ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. 음......... 삽질해보니 오라클 12c로 넘어오면서 계정이름 앞에 c##을 붙여줘야 공통 사용자를 생성가능 하답니다. 다시 create user c##계정이름.. 2023. 2. 6.
오라클 계정생성 오라클 계정생성 우선 system 계정으로 들어간다. 계정생성 conn system/1234; command 창에 이렇게 입력. (system 계정의 초기 비밀번호는 1234이다.) create user c##(원하는 계정명) identified by (비밀번호); (이렇게 계정만 만들면 접속이 안된다. 접속의 권한이 없기 때문이다. 그럴땐 system(관리자)계정으로 권한을 주면 된다. grant connect, resource to c##(원하는 계정명); 계정삭제 drop user c##(지울 계정명); (삭제가 되지 않고 cascade 어쩌고 뜰때가 있는데 이것과 연결된 것이 있기 때문에 삭제가 되지 않는다는 뜻이다.) drop user c##(지울 계정명) cascade; 2023. 2. 3.
오라클 버전 정보 알아내기 오라클 버전 정보 알아내기 >>> V$VERSION 데이터 사전을 사용해 보도록 하쟈 SQL> COL banner FORMAT A70 HEADING "Oracle Versions" SQL> SELECT banner FROM V$VERSION; ***********************************결과 화면*************************************** 그외 정보 알아보기 2.제품 인스톨 정보 조회 >> PRODUCT_COMPONENT_VERSION 데이터 사전을 사용 SQL> COL PRODUCT FORMAT A30 HEADING "Products Installed" SQL> COL VERSION FORMAT A15 SQL> COL STATUS FORMAT A15 SQL>.. 2023. 2. 2.
ms sql 포맷 - 콤마 찍기 ms sql 포맷 - 콤마 찍기 숫자만 있는 경우 replace(convert(varchar, cast(숫자필드 AS MONEY),1), '.00','') 위의 경우는 일단 숫자 필드를 MONEY 타입으로 캐스팅 한다 그러면 기본 숫자에 콤마가 찍히게 되고 달러기준 MONEY 표시 이기 때문에 센트 표현을 위해서 #,###.## 의 형태로 나오게 된다. 당연히 소숫점은 없는거라 생각하고 varchar 형태로 바꾼 다음 센트 표시를 하는 소숫점 부분을 replace로 없애버린다고 생각하면된다. ㅇㅋ? CASE WHEN ISNUMERIC(숫자필드) = 0 THEN 숫자필드 ELSE REPLACE(CONVERT(VARCHAR, CAST(숫자필드 AS MONEY),1),'.00','') END 그리고 위의 경우.. 2023. 1. 31.
날짜함수(GETDATE,DATEADD,DATEPART,DATEDIFF) 사용법 & 예제 날짜함수(GETDATE,DATEADD,DATEPART,DATEDIFF) 사용법 & 예제 GETDATE GETDATE함수는 현재 컴퓨터에 설정되어있는 시스템 시간을 불러와주는 함수입니다. 2018-03-31 오전 01:40:30 위와같이 GETDATE()함수는 년월일은 물론이거니와 분,초 까지도 구해줍니다. 하지만 모든 사용자들이 위와같은 형식으로 사용하지는 않겠죠. 여기서 우리는 우리가 표시할 시간이나 날짜만 적절히 뽑아 올 수도 있고 날짜 형태를 바꿔서 출력할수도 있습니다. 사용법 --현재 날짜 출력 -- SELECT GETDATE() AS 시스템일자 --현재 날짜의 연,월,일 출력 -- SELECT YEAR(GETDATE()) AS 년, MONTH(GETDATE()) AS 월, DAY(GETDATE(.. 2023. 1. 30.
second 데이터를"시분초"로 보여주기 second값을 "시분초"로 보여주기 --> 예제: select dbo.FN_CO_DatetimeToHHMISS(DATEDIFF(ss,접수일시,처리일시)) from VOC --> 결과: 39시간 12분 59초 alter FUNCTION [dbo].[FN_CO_DatetimeToHHMISS] ( @ss int ) RETURNS varchar(50) /**************************************************************** 프로그램유형: Function 프로그램ID : 프로그램명: FN_CO_DatetimeToHHMISS 내 용: second값을 "시분초"로 보여주기 작 성 자: 최보현 작 성 일: 2012/01/30 수정 내용: -------------------.. 2023. 1. 28.
MSSQL에서 특정 문자의 갯수 알기 MSSQL에서 특정 문자의 갯수 알기 MSSQL에서 특정 문자의 갯수를 알 수 있는 쿼리입니다. 아래의 쿼리는 C:\WINDOWS\System32 문자 중 '\'의 갯수 찾는 쿼리입니다. SELECT LEN('C:\WINDOWS\System32') - LEN(REPLACE('C:\WINDOWS\System32', '\', '') 2023. 1. 25.
형변환 마스킹 형변환 마스킹 SELECT REPLACE(CONVERT(VARCHAR(100), CONVERT(MONEY, 950000), 1),'.00','') 그외 MSSQL의 형변환 방법입니다. 문자를 숫자로 바꾸는 경우 CAST('20' AS INT) 숫자를 문자로 바꾸는 경우 CAST(1234 AS CHAR(10)) 2023. 1. 18.
갯수 지정해서 값 가져오기 갯수 지정해서 값 가져오기 MsSql 같은 경우는 이런 기능이 없어 테이블을 설정할때 순번을 정해 주어야 합니다. 그 순번을 가지고 데이타를 검색하는것이구요 seq -> 순번 필드 SQL>SELECT name FROM storm_board WHERE seq 이렇게 하면 순번이 1~10까지 보여줍니다. SQL>SELECT Top 10 name FROM storm_board ---> 이렇게 하면 데이터가 1000건이 있더라도, 10건만 보여주게 된다 2023. 1. 9.
여러 키 설정 여러 키 설정 create table AA( ABC int, DDD int, constraint pkAA primary key (ABC,DDD)) 2023. 1. 4.
날짜구하기(EX:20100101) 날짜구하기 SELECT SUBSTRING(REPLACE(CONVERT(char,GETDATE(),120),'-',''),1,8) as YYYYMMDD select convert(varchar,getDate(),112) 2023. 1. 3.
DB 이전 DB 이전 1.백업파일을 원하는 위치에 옮긴다. 2.퀴리창에서 Master로 로그인 3.restore database 데이타베이스명 from disk='백업파일위치(확장자까지 포함)' with replace 2022. 12. 30.
[공통] 테이블데이타 오류시 복구 테이블데이타 오류시 복구 USE Master ALTER DATABASE DB명 SET SINGLE_USER GO USE DB명 DBCC CHECKTABLE(테이블명, REPAIR_ALLOW_DATA_LOSS) GO USE Master ALTER DATABASE DB명 SET MULTI_USER GO 2022. 12. 28.
MSSQM 기본문법 MSSQM 기본문법 SQL문은 대소문자를 구분하지 않는다 단.데이타는 대문자와 소문자를 구분함 주석 처리는 /* .... */ 또는 한줄 -- 사용 SYSOBJECTS 테이블 => 데이타베이스의 모든 정보가 보관됨 SYSOBJECTS의 TYPE 칼럼으로 'U'=사용자 테이블 'P'=저장 프로시저 'K'=프라이머리 키 'F'=포린 키 'V'=뷰 'C'=체크 제약 등 오브젝트 이름과 정보를 알 수 있다 데이타 검색 /* USE 문을 사용한 데이타베이스 선택 */ USE 데이타베이스명 /* 모든 칼럼 불러오기 */ SELECT * FROM 데이블명 /* 상위 n개의 데이타만 가져오기 */ SELECT TOP n * FROM 테이블명 /* 특정 칼럼 가져오기 */ SELECT 칼럼1, 칼럼2, 칼럼3 FROM .. 2022. 12. 26.
MSSQL 인덱스란? MSSQL 인덱스 개념 인덱스의 개념을 설명할 때 가장 쉬운예가 바로 사전이다. 사전 같은경우 ㄱ,ㄴ,ㄷ,ㄹ~ㅎ 이런식으로 책을 찾기 쉽게 인덱스가 되어있다. ㄱ,ㄴ,ㄷ,ㄹ~ㅎ 을 인덱스라고 생각하면 된다.인덱스를 색인이라고도 한다. 만약에 인덱스가 없는 책이라면 일일이 한장한장 넘겨가면서 찾아야할 지도 모른다. 테이블이 간단할때는 사전이 3~4장 밖에 안되서 찾기가 쉬웠지만 테이블이 거대해지면 인덱스를 쓰는게 효율적이고 원하는 것을 빨리 찾을 수 있을 것이다. 장점 1.검색속도가 대체적으로 빨라진다. 2.시스템에 걸리는 부하가 줄어들어서 성능이 향상된다. 단점 1.인덱스가 들어갈 추가적인 공간이 필요하다. 2.인덱스를 생성하는데 시간이 소요된다. 3.데이터의 변경작업이 자주 일어나면 성능이 나빠진다. .. 2022. 12. 23.
MS-SQL 트리거 MS-SQL 트리거 트리거(Trigger) = '방아쇠' (네이버 사전을 찾아보니, "(반응・사건을 유발한) 계기[도화선]" 라는 뜻도 있음) 네이버 사전의 2번째 뜻이 좀 더 맞는것 같습니다. DBA라면 기본으로 자주 접할 것이고, 소규모 회사의 개발자라면 직접 DB까지 관리해야 하는 경우도 있는데, 어느정도는 알아두면 좋을 것 같네요. 트리거는 Oracle 등 다른 RDMBS도 지원하는 기능인데, MS-SQL에서만 사용해 보았습니다. ​ 위의 뜻처럼 DB에서 어떤 특정 이벤트가 발생하면 자동으로(방아쇠 당기면 총알이 나가듯이) 무언가 실행이 된다는 것으로 보면 되겠습니다. DB는 그 특성상 이벤트라 하면 테이블에 발생하는 것이겠죠? 테이블에 데이터가 삽입(INSERT)된다던지, 변경(UPDATE)된다.. 2022. 12. 22.