DB/MySql
-
[mysql] 특정문자를 상위로 정렬하기(order by 특정값 정렬)DB/MySql 2021. 2. 11. 23:04
1. ORDER BY FIELD() 를 사용하여 '자전거'가 첫번째, '비행기'가 두번째, 그외 나머지는 오름차순으로 정렬하기 SELECT product_name FROM COIN ORDER BY FIELD(product_name, '자전거', '비행기') DESC, product_name ASC - FIELD 함수의 첫번째 파라미터에 정렬할 컬럼을 넣고, 그 이후 파라미터엔 우선적으로 정렬할 값들을 역순으로 넣어준다. 그리고 FIELD 함수를 DESC정렬 시켜주면 된다. - 원리는 FIELD 함수를 사용하면 첫번째 파라미터의 값과 같은 값이 그 이후 파라미터의 몇번째에 있는지 index값을 반환한다. 즉 이후 파라미터의 첫번째에 있는 '자전거'는 1이 반환되고, 두번째에 있는 '비행기'는 2가 반환이 ..
-
[MySql] rownum 생성 방법DB/MySql 2020. 11. 11. 20:13
mysql 에는 rownum 이라는 키워드가 없다, 그래서 변수 선언을 통해서 임의로 rownum 을 표시할 수 있다. rownum 생성 방법 SELECT @rownum:=@rownum+1 as no table.* FROM table where (@rownum:0)=0 where 절에서 변수를 초기화 하고 사용하는 방법이다. select 절보다 where 절에서 먼저 실행되기 때문에 where 절에서 변수 선운 후 사용 가능하다. 또는 아래와 같은 set 키워드로 변수를 선언 가능하다. SET @rownum:=0; SELECT @rownum:=@rownum+1 as no table.* FROM table;
-
[MySql] 컬럼리스트 및 테이블 정보 조회 쿼리DB/MySql 2020. 10. 9. 18:06
mysql Table 정보검색 및 column정보 검색 1 테이블 정보검색. select * from INFORMATION_SCHEMA.tables where table_schema='데이터베이스명'; => show tables; 2. 컬럼명 검색. select * from INFORMATION_SCHEMA.columns where table_schema='데이터베이스명' and table_name='테이블명' order by ordinal_position; => show full columns from 테이블명 ;
-
Mysql 실행계획(explain) 보는법DB/MySql 2020. 5. 11. 17:41
table 어떤 테이블에 대한 접근을 표시하고 있는지는 table 필드에 표시되어있다. id id는 SELECT에 붙은 번호를 말한다. MySQL은 조인을 하나의 단위로 실행하기 때문에 id는 그 쿼리에 실행 단위를 식별하는 것이다. 따라서 조인만 수행하는 쿼리에서는 id는 항상 1이 된다. select_type select_type은 항상 SIMPLE 이된다. 복잡한 조인을 해도 SIMPLE이 된다. 서브쿼리나 UNION이 있으면 id와 select_type이 변한다. SIMPLE: 단순 select ( union이나 서브쿼리를 사용하지 않음 ) PRIMARY: 가장 외곽에 있는 select문 UNION: union에서의 두번째 혹은 나중에 따라오는 select문 DEPENDENT UNION: unio..
-
MySql 옵티마이져 실행 개요DB/MySql 2020. 5. 11. 17:15
쿼리 실행 절차 사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리한다. SQL의 파싱 정보(파스 트리)를 확인하면서 어떤 테이블부터 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선택한다. 두번째 단계에서 결정된 테이블의 읽기 순서나 선택된 인덱스를 이용해 스토리지 엔진으로부터 데이터를 가져온다. 첫 번째 단계를 "SQL 파싱(Parsing)"이라고 하며, MySQL 서버의 "SQL 파서"라는 모듈로 처리합니다. 만약 SQL 문장이 문법적으로 잘못됐다면 이 단계에서 걸러집니다. 또한 이 단계에서 "SQL 파스 트리"가 만들어집니다. MySQL 서버는 SQL 문장 그 자체가 아니라 SQL 파스 트리를 이용해 쿼리를 실행합니다. 두 번째 단계는 첫 번째 단계에서 만들..