반응형

oracle 41

Oracle에서 인덱스 사용 강제

Oracle에서 인덱스 사용 강제 인터뷰에서 이 질문을 접했는데 어떻게 대답해야 할지 몰랐다. 열에 인덱스가 있는 테이블이 있으며, 다음과 같이 쿼리합니다. select * from table_name where column_having_index="some value"; 조회가 너무 오래 걸리고 인덱스가 사용되지 않는 것을 알게 됩니다.인덱스를 사용하면 쿼리 성능이 향상될 것으로 생각되면 어떻게 강제로 인덱스를 사용할 수 있습니까?옵티마이저 힌트를 사용할 수 있습니다. select /*+ INDEX(table_name index_name) */ from table기타... 옵티마이저 힌트 사용에 대한 자세한 내용은 http://download.oracle.com/docs/cd/B19306_01/serv..

programing 2023.03.10

where 절에서 집계 함수를 사용할 수 없는 이유는 무엇입니까?

where 절에서 집계 함수를 사용할 수 없는 이유는 무엇입니까? 나는 이것에 대한 해명을 원한다.아래 두 가지 질문을 쓰고 있습니다. 아이디, 이름, 급여라는 열이 있는 직원 이름의 테이블이 있습니다. 1. Select name from employee where sum(salary) > 1000 ; 2. Select name from employee where substring_index(name,' ',1) = 'nishant' ; 쿼리 1은 동작하지 않지만 쿼리 2는 동작합니다.제 개발 경험으로 볼 때, 가능한 설명은 다음과 같습니다. sum()은 인수로 지정된 값 집합에 대해 기능합니다.여기서 'salary' 열은 전달되므로 이 열의 모든 값을 합산해야 합니다.단, 첫 번째 레코드 1이 테스트에..

programing 2023.03.10

"SELECT FOR UPDATE"는 행이 없을 때 다른 연결을 삽입할 수 없도록 합니까?

"SELECT FOR UPDATE"는 행이 없을 때 다른 연결을 삽입할 수 없도록 합니까? 나는 관심이 있다.SELECT FOR UPDATE을 사용법 예 ★★★FooBar 있습니다.foo ★★★★★★★★★★★★★★★★★」bar,foo에는 고유한 인덱스가 있습니다. 쿼리 ★★★★★★SELECT bar FROM FooBar WHERE foo = ? FOR UPDATE 첫 번째 쿼리가 0 행을 반환하는 경우 쿼리를 발행합니다. INSERT INTO FooBar (foo, bar) values (?, ?) ,INSERT인덱스 위반을 일으키거나SELECT FOR UPDATE을을수 을을? SQL Server(2005/8), Oracle 및 MySQL에서의 동작에 관심이 있습니다.MySQL 업데이트를 하려면 ...을..

programing 2023.03.10

SQL 순서 위치 표기법을 사용하는 이점

SQL 순서 위치 표기법을 사용하는 이점 배경 정보 서수 위치 표기법(AKA 서수)은 열 목록의 열 순서를 기준으로 한 열 약어입니다.SELECTcolumn name 또는 column alias 대신 절을 지정합니다.에서 일반적으로 지원됨ORDER BY절, 일부 데이터베이스(MySQL 3.23+, Postgre)SQL 8.0+)는 다음 구문을 지원합니다.GROUP BY절도 마찬가지입니다. 다음은 Ordinals를 사용하는 예입니다. GROUP BY 1, 2 ORDER BY 1, 2 이 방법은 쿼리를 취약하게 만들기 때문에 좋지 않습니다.열 순서가 변경되면 서수를 업데이트해야 합니다. 그렇지 않으면 쿼리가 예상한 값을 반환하지 않습니다.대부분의 경우 에러가 발생할 수 있습니다.GROUP BY이러한 위치의 ..

programing 2023.03.10

Oracle에서 특정 테이블이 언제 생성되었는지 확인하는 방법

Oracle에서 특정 테이블이 언제 생성되었는지 확인하는 방법 Oracle에서는 특정 테이블이 언제 작성되었는지 알 수 있는 방법이 있습니까? 마찬가지로 특정 행이 언제 삽입되었는지 또는 마지막으로 업데이트되었는지 확인할 수 있는 방법이 있습니까?SELECT created FROM dba_objects WHERE object_name = AND owner = AND object_type = 'TABLE' 테이블이 생성된 타이밍이 표시됩니다(DBA_에 액세스 할 수 없는 경우).OBJETES 테이블에서 SELECT 권한이 있는 경우 대신 ALL_OBJETES를 사용할 수 있습니다). 그러나 행에서 타임스탬프를 가져오는 일반적인 대답은 해당 정보를 추적하기 위해 열을 추가한 경우에만 해당 데이터를 가져올 수..

programing 2023.03.05

자체 참조 테이블(Oracle)에 대한 SQL 재귀 쿼리

자체 참조 테이블(Oracle)에 대한 SQL 재귀 쿼리 다음 샘플 데이터가 있다고 가정합니다. | Name | ID | PARENT_ID | ----------------------------- | a1 | 1 | null | | b2 | 2 | null | | c3 | 3 | null | | a1.d4 | 4 | 1 | | a1.e5 | 5 | 1 | | a1.d4.f6 | 6 | 4 | | a1.d4.g7 | 7 | 4 | | a1.e5.h8 | 8 | 5 | | a2.i9 | 9 | 2 | | a2.i9.j10| 10 | 9 | accountId = 1에서 시작하는 모든 레코드를 선택하고 싶기 때문에 예상 결과는 다음과 같습니다. | Name | ID | PARENT_NAME | PARENT_ID..

programing 2023.03.05

MAX(날짜)로 그룹화

MAX(날짜)로 그룹화 이 질문에는 이미 답변이 있습니다. 다른 열의 각 고유 값에 대해 열에 대한 최대 값이 있는 행을 가져옵니다. (35개의 답변) 닫힘5년 전에요. 표에 각 열차의 최신 목적지(MAX 출발 시간)를 나열하려고 합니다. 예를 들어 다음과 같습니다. Train Dest Time 1 HK 10:00 1 SH 12:00 1 SZ 14:00 2 HK 13:00 2 SH 09:00 2 SZ 07:00 바람직한 결과는 다음과 같습니다. Train Dest Time 1 SZ 14:00 2 HK 13:00 사용해보았습니다. SELECT Train, Dest, MAX(Time) FROM TrainTable GROUP BY Train "ora-00979 not a GROUP BY expression" ..

programing 2023.03.05

Oracle에서 테이블 잘라내기 오류 발생

Oracle에서 테이블 잘라내기 오류 발생 문제는 Oracle에서 다음 명령을 실행하면 오류가 발생한다는 것입니다. Truncate table mytable; 오류: ORA-02266: unique/primary keys in table referenced by enabled foreign keys 이 마이테이블이 다른 테이블과 관련이 있다는 걸 알았어요.그렇기 때문에 잘라내기 명령을 더 이상 진행할 수 없습니다.잘라내기 명령을 사용하여 SQL 스크립트를 사용하여 myTable에서 데이터를 삭제하는 방법은 무엇입니까?TRUNCATE 문을 DELETE 문으로 전환해야 합니다. 속도가 느리고 로그가 기록되지만 제약 조건이 충족되면 그렇게 해야 합니다. DELETE mytablename; 또는 해당 테이블을 ..

programing 2023.02.28

Oracle Express에서 트리거 생성

Oracle Express에서 트리거 생성 Oracle 11g Express 및 SQL Developer 자동 증가 등의 작업을 수행하려고 했습니다.Oracle에 대해 아는 것이 거의 없고 트리거도 처음입니다. 이걸 실행해 봤는데, 제대로 하는 방법을 모르겠어요. CREATE TABLE theschema.thetable (id NUMBER PRIMARY KEY, name VARCHAR2(30)); CREATE SEQUENCE theschema.test1_sequence START WITH 1 INCREMENT BY 1; create or replace trigger insert_nums before insert on theschema.thetable for each row begin select test..

programing 2023.02.23

mysql의 group_concat과 유사한 함수가 oracle에 있나요?

mysql의 group_concat과 유사한 함수가 oracle에 있나요? 이 질문에는 이미 답변이 있습니다. Oracle의 여러 행에서 열 값을 연결하기 위한 SQL 쿼리 (10개의 답변) 닫힘9년 전. 제 의견은 이렇습니다. col1 col2 1 a 1 b 2 c 2 d 2 e O/P: 다음과 같아야 함 col1 col2 1 a,b 2 c,d,e DB 레벨에서 실행할 수 있는 쿼리를 원합니다.여러 가지 방법을 시도해 봤지만 알아내지 못했어요11g 이상:listagg 사용: SELECT col1, LISTAGG(col2, ', ') WITHIN GROUP (ORDER BY col2) "names" FROM table_x GROUP BY col1 10g 이하:한 가지 방법은 다음과 같은 함수를 사용하는 ..

programing 2023.02.23
반응형