Database/MySQL

아래의 select를 자주 쓴다면SELECT s.id, s.user_idFROM session sJOIN channel c ON c.id = s.channel_id;아래처럼 등록 가능CREATE OR REPLACE VIEW test.session_details ASSELECT s.id, s.user_idFROM session sJOIN channel c ON c.id = s.channel_id;SELECT * FROM test.session_details;  View에 값 대입view에 값을 대입했는데 대입이 된다면 원래 테이블에 null 조건이 안걸려서 대입 된거원본 테이블을 확인하면 id만 들어가 있고 나머지 것들은 null이 들어감즉, 접근을 못하게 하거나 not null 형식 등등 제약을 해주어야 함
INNER JOIN양쪽 테이블에서 매치가 되는 레코드들만 리턴함양쪽 테이블의 필드가 모두 채워진 상태로 리턴됨대부분의 조인은 INNER JOIN LEFT JOIN왼쪽 테이블의 모든 레코들을 리턴함오른쪽 테이블의 필드는 왼쪽 레코드와 매칭되는 경우에만 채워진 상태로 리턴됨 FULL JOIN왼쪽 테이블과 오른쪽 테이블의 모든 레코드들을 리턴함매칭되는 경우에만 양쪽 테이블들의 모든 필드들이 채워진 상태로 리턴됨LEFT JOIN(UNION VS UNION ALL) => 중복제거 / 중복 포함RIGHT JOIN CROSS JOIN왼쪽 테이블과 오른쪽 테이블의 모든 레코드들의 조합을 리턴함 SELF JOIN동일한 테이블을 alias를 달리해서 자기 자신과 조인함 -- InnerJoinSELECT * FROM vit..
String FunctionsLEFT(str, N)REPLACE(str, exp1, exp2)UPPER(str)LOWER(str)LENGTH(str)LPAD, RPAD // STRING의 길이가 짧을 경우 부족한 공간을 채워줌SUBSTRINGCONCAT  Type Castingcast(category as float)convert(expression, float)  GROUP BY와 함께 쓰이는 Aggregate 함수GROUP BY & Aggregate 함수[Aggregate 함수] COUNT, SUM, AVG, MIN, MAX, GROUP_CONCAT...SELECT LEFT(created, 7) AS mon, COUNT(1) AS session_countFROM prod.sessionGROUP ..
기초 문법SELECT 테이블들에서 레코드들을 읽어오는데 사용SELECT 필드이름1, 필드이름2FROM 테이블 이름WHERE 선택조건GROUP BY 필드일므1, 필드이름2 ORDER BY 피들이름 [ASC|DESC]LIMIT N  CASE WHENCASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ELSE 값3END 필드 이름  COUNT의 이해Null 1 1 0 0 4 3 value가 이와 같을 때COUNT(1) -> 7COUNT(0) -> 7COUNT(NULL) -> 0COUNT(value) -> 6COUNT(DISTINCT value) -> 4 DELETE FROM vs TRUNCATEDELETE FROM vs TRUNCATETRUNCATE 는 조건없이 모든 레코드 삭제, 속도가..
류가든
'Database/MySQL' 카테고리의 글 목록 (2 Page)