본문 바로가기

전체 글385

1020_서브쿼리 select ename, max(sal) --일반컬럼과 그룹함수 함께 사용할 수 없다. 그럼 이름이랑 같이 출력하고싶은데 어‹또舊? from emp; --서브쿼리 --select 구문을 중첩해서 사용하는 것(where) select ename,max(sal) from emp; ---scott사원의 근무지 부서명을 알고시퍼 select deptno from emp where ename = 'SCOTT'; select dname from dept where deptno = 20; --부서번호 자리에 쿼리 자체를 넣어서 출력한다. --큰 틀이 메인쿼리 ()안에 서브쿼리 select dname from dept where deptno = (select deptno from emp where ename = 'S.. 2022. 10. 26.
Foreign Key(외래키) (외래키/참조키) 1.부모와 자식의 관계를 가지는 자식 쪽 테이블에 설정한다. 2.부모 쪽 테이블의 컬럼은 반드시 primary key 또는 unique 해야한다. 3. null 데이터를 허용한다. 외래키 설정 ALTER TABLE `child ` ADD FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`); 외래키 삭제 alter table [테이블명] drop foreign key [제약조건명]; 2022. 10. 25.
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (외래키 지정) ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`testdb`.`#sql-1_9`, CONSTRAINT `CarCustomer_ibfk_1` FOREIGN KEY (`CustomerId`) REFERENCES `Customer` (`CustomerId`)) 발생원인 : 외래 키로 지정하고자 했던 Customer 테이블의 CustomerId 값과 CarCustomer의 CustomerId 데이터가 달라서 발생 해결: 자식 테이블 CarCustomer 데이터 삭제 후 지정 2022. 10. 25.
순위함수(ROW_NUMBER, DENSE_RANK,RANK) - row_number : 1,2,3,4,... 번호를 부여 select row_number() over (partition by 컬럼명, order by컬럼명, .. as 별칭 from 테이블 명 (partition by 컬럼명은 생략가능 (=group by) (order by 생략 불가) 1) partition by 생략 2) partition by 포함 select row_number() over(partition by CustomerAddr order by CustomerAge desc) as you, CustomerName, CustomerId, CustomerAddr, CustomerAge from Customer; - dense_rank() : 비교값이 동일할 때 같은 번호를 부여 1, 2,.. 2022. 10. 25.
1021_제약조건(not null, unique, primary key) ALTER TABLE `DB명`.`테이블명` ADD PRIMARY KEY (`컬럼명`, `컬럼명`); ex) ALTER TABLE `calorie`.`COMMENT` ADD PRIMARY KEY(`ID`, `Date`); ALTER TABLE `DB명`.`테이블명` DROP PRIMARY KEY; ex) ALTER TABLE `calorie`.`COMMENT` DROP PRIMARY KEY; https://www.w3schools.com/sql/sql_primarykey.ASP SQL PRIMARY KEY Constraint W3Schools offers free online tutorials, references and exercises in all the major languages of the we.. 2022. 10. 25.
1021_인덱스 검색속도를 향상하기 위해 사용 객체 --SELECT 구문의 검색속도를 향상시킨다 --전체 레코드의 3% ~ 5% 정도일때 --INDEX 객체를 컬럼에 생성해서 사용한다 select * from user_indexes; CREATE INDEX 인덱스명 ON 테이블명 (컬럼명); CREATE TABLE EMP02 AS SELECT * FROM EMP; SELECT * FROM EMP01; INSERT INTO EMP01 SELECT * FROM EMP01; DROP TABLE EMP01; INSERT INTO EMP01(EMPNO,ENAME) VALUES (1111,'BTS'); --INDEX 객체 생성 전 :0.027~0.038 sec SELECT EMPNO,ENAME FROM EMP01 WHERE ENA.. 2022. 10. 25.