데베구_0414

allzeroyou·2022년 4월 23일
0

데이터베이스

목록 보기
13/25

mysql에서 에러메시지 보는법

13:41:30 CALL userproc1('축구의 역사'); -- 고객별로 평균주문금액이 12000원이 넘는 고객이름, 주문번호, 평균금액을 보고싶음. SELECT name, AVG(saleprice), orderid FROM Orders, Customer WHERE Orders.custid=Customer.custid AND Orders.saleprice > 12000 GROUP BY Customer.custid; -- HAVING Orders.saleprice > 12000; select name, sum(saleprice) from customer, orders where customer.custid = orders.custid group by customer.custid; SELECT FROM Orders; SELECT FROM Customer; SELECT name, AVG(saleprice),orderid FROM Orders, Customer WHERE Orders.custid=Customer.custid GROUP BY Customer.custid HAVING Orders.saleprice > 12000; SELECT orderid, saleprice FROM orders WHERE saleprice > ALL (SELECT saleprice FROM Orders WHERE custid = '3'); select (select name from customer cs where cs.custid=od.custid) "name", sum(saleprice) "total" from orders od group by od.custid;

Error Code: 1055 Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'madang.Orders.orderid' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Error Code: 1055 Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'madang.Orders.orderid' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

테이블 수정, 삭제
ALTER TABLE 테이블명 쿼리를 이용

뷰 호출 => 정의가 된 sql 승인
view의 속성을 삭제하려면 view의 정의를 변경하는 CREATE OR REPLACE 문을 사용하면 된다.
=> 뷰의 정의를 변경해야!

  1. 조인을 할 때 중복되는 속성을 제거하고 조인하려면 어떻게 해야하나요?
    ➡️ 자연조인을 사용
  2. 조인 연산할 때 join 키워드를 쓰는 경우가 있고 where절에 조건을 줘서 조인하는 경우가 있던데, 두 방법이 어떻게 다른 건지 궁금합니다.
    또한 수업에서는 거의 where 절을 이용해 조인을 하셨는데 이 방법이 더 좋은 방법인지 궁금합니다.
    ➡️ 결과는 똑같음.
  3. exists 키워드는 true false를 반환하는게 아니라 true인 행들을 반환하고 그 안에 존재하는 데이터를 가지고 연산을 하는 것인가요?
    ➡️ false를 반환받고 싶으면 NOT EXISTS를 쓰면 됨.
    true만 반환함(사실상 false는 반환 x)

상관부속질의

부속질의 자체는 메인질의가 있고 어떤 정보를 가져오고 싶을때 부속질의를 덧붙여 사용.

profile
모든 건 zero 부터, 차근차근 헛둘헛둘

0개의 댓글