기본 콘텐츠로 건너뛰기

라벨이 SQL인 게시물 표시

[SQL] 10.22 학습한 sql 구문

user 조회: select host, user, authentication_string from user; drop user: drop user springstudent@'%' 외부에서 접근 가능하도록 유저 생성: create user springstudent@'%' identified by 'springstudent'; local에서만 접근 가능하도록 유저 생성: create user springstudent@localhost identified by 'springstudent'; spring student에게 moBack 데이터베이스에 대한 모든 권한 부여: grant all privileges on moBack to 'springstudent';

[Master The SQL] [Hackerrank] Top Competitors

GROUP BY  H.HACKER_ID, H.NAME 대신 H.HACERK_ID 만 사용할시 다음의 에러를 볼수 있다. ERROR 1055 (42000) at line 1: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'run_lf9qo4ybaab.h.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by SELECT에서 사용된 칼럼중 GROUP BY 절에있는 칼럼에 함수적 종속성을 가지고 있지 않은 칼럼이 있다는 뜻이다. 여기서 함수적 종속성이란? 어떤 릴레이션 R에서, X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라 하자. 애트리뷰트 X의 값 각각에 대해 시간에 관계없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라 하고, X → Y라고 표기한다. 즉, HACKER_ID는 HACKER_NAME에 함수적 종속성이 없다.  

[MASTER THE SQL] Order of execution of a Query (쿼리의 실행순서)

 Query order of execution (쿼리의 실행순서) 1. FROM, JOIN  subquery 포함가능, 임시 테이블들 생성가능 2. WHERE  WHERE constraints에 적용되지 않는 rows 제거, FROM clause에 있는 칼럼들에 접근가능 SELECT에 있는 Aliases에는 접근 불가 (SELECT문은 아직 실행이 안된 상태이기 때문에) 3. GROUP BY GROUP BY clause에 명시된 공통값들로 그룹화 됨 aggregate function들을 사용할때만 사용 4. HAVING 그룹화된 행들을 대상으로 constraint 적용 aliases은 역시 사용불가능 5. SELECT 6. DISTINCT 명시된 Column에 대하여 중복된 값을 가진 행들을 제거 7. ORDER BY 오름차순 or 내림차순으로 행들을 정렬 SELECT에 명시된 aliases에 접근가능 8. LIMIT / OFFSET LIMIT,OFFSET 키워드로 명시된 범위에 속하지 않는 행들 제거 LIMIT : 몇개 추출할것인가 OFFSET : 몇번째 ROW 부터 포함시킬 것인가 (zero based index), 0이면 생략가능 Example : LIMIT 2 OFFSET 1 (1,2 행을 추출)