[코테준비]/[코테준비]SQL

SQL 할 때 매일 헷갈린다면?

bestFinanceDataAnalyist 2024. 7. 4. 16:56

SQL 코테를 준비하면서 정말 뭔가 하나씩 실수해서 못맞추는 경우가 있었다.

뭔가 오류를 보고 바로 인지한다면 좋지 않을까 해서 만든 페이지이다

24년 7월 1일부터 하나씩 작성하였다.


1. execute command denied to user 'USERD7063D384681749DDA459097F2'@'%' for routine 'sql_runner_run.data_format'

>> select 에 comma 빼뜨리거나 테이블의 없는 열을 가져다 쓴거

 

 

2. mysql-dateformat

%Y-%m-%d  2024-07-04

%Y %M %d  2024 July 4

%Y년%m월%d일 %H시%i분%S초  2024년-07월-04 17시00분05초

YYYY-MM-DD hh:mm:ss   (시/분/초)

 

 

3. 두 테이블에 공통된 열이 있을 때, 어떤 테이블의 것인지 안밝힐 때 >> 꼭 테이블.flavor 이런식으로 써줘야 함

 

4. 상위 n개 레코드

limit n;

정렬이 된 상태에서 limit 명령어 사용.

 

 

5. join

 

left inner join 이런건 없고 

left outer join = left join 은 같다

 

 

6, 집계합수 짝궁!!

SELECT A.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, 
ROUND(AVG(REVIEW_SCORE),2) AS SCORE
FROM REST_INFO AS A LEFT OUTER JOIN REST_REVIEW AS B
ON A.REST_ID = B.REST_ID
WHERE ADDRESS LIKE "%서울%"
ORDER BY SCORE DESC, FAVORITES DESC

하지만,,, 집계함수를 쓰면 group by having 필수... 맨날 까먹

 

전체코드

SELECT A.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, 
ROUND(AVG(REVIEW_SCORE),2) AS SCORE
FROM REST_INFO AS A INNER JOIN REST_REVIEW AS B
ON A.REST_ID = B.REST_ID
GROUP BY A.REST_ID
HAVING ADDRESS LIKE "서울%"
ORDER BY SCORE DESC, A.FAVORITES DESC


24년 8월

1.  IN   vs    =   vs    EXIST

1) =

  • = 연산자는 서브쿼리가 정확히 하나의 값을 반환할 때 사용합니다.
  • 서브쿼리가 여러 값을 반환하면 에러가 발생합니다. 이 연산자는 정확히 하나의 값을 기대하고 비교합니다

2) in

  • IN 연산자는 서브쿼리가 여러 값을 반환할 수 있을 때 사용합니다.
  • 서브쿼리가 여러 값을 반환해도 괜찮으며, 이 값들 중 하나와 비교해서 일치하는 것을 찾습니다

3) exist

  • EXISTS는 서브쿼리에서 조건을 만족하는 행이 존재하는지 여부를 확인합니다.
  • 서브쿼리의 결과가 존재하면 TRUE를 반환하고, 존재하지 않으면 FALSE를 반환합니다.

 

 

 

2.Join을 여러 개 할 때? 걍 쭉 늘여쓴다

SELECT G.SCORE, E.EMP_NO, E.EMP_NAME, E.POSITION, E.EMAIL
FROM HR_DEPARTMENT AS D
INNER JOIN HR_EMPLOYEES AS E ON D.DEPT_ID = E.DEPT_ID
INNER JOIN HR_GRADE AS G ON E.EMP_NO = G.EMP_NO;


 

2024년 9월

1. 문자열 연결할 때?

concat

혹은 || 로 연결해준다.

 

 

2. SQL 실행 중 오류가 발생하였습니다.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 13

 

with 새로운 ㅌㅔ이블 이름 as () 만들어놓고

이걸 활용해서 메인 테이블은 안만들면 뜨는 오류

select * from 새로운 테이블 이름 

이라고 꼭 작성하기!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

3, " "  ' ' 둘다 써도 되나? ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ



2024년 10월

 

1. 대문자 만들 때? >> upper 

    소문자 만들 때 ?? lower

 

 

2. stdev / variance : 분산 구할 때 쓰는 표현

'[코테준비] > [코테준비]SQL' 카테고리의 다른 글

SQL고득점KIT-Select Lv4.5  (0) 2024.07.14
SQL 고득점 kit - Select Lv3  (1) 2024.07.12
SQL 고득점 Kit - SELECT Lv2  (1) 2024.07.09
SQL 고득점 Kit - SELECT Lv1(2)  (1) 2024.07.07
SQL 고득점 Kit - SELECT Lv1(1)  (1) 2024.07.07