집 >데이터 베이스 >MySQL 튜토리얼 >mysql의 select 문 작업 예제 이해
선택 구문
SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr, ... [INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name'] [FROM table_references [WHERE where_definition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_definition] [ORDER BY {col_name | expr | position} [ASC | DESC] , ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [FOR UPDATE | LOCK IN SHARE MODE]]
SELECT는 하나 이상의 테이블에서 선택한 행을 복원하는 데 사용되며 UNION문과 하위쿼리. 각 select_expr은 복원하려는 열을 나타내고, table_references는 행이 복원되는 테이블을 나타냅니다.
간단 쿼리
SELECT columna columnb FROM mytable;
ORDER BY 쿼리
SELECT college, region, seed FROM tournament ORDER BY region, seed; SELECT college, region AS r, seed AS s FROM tournament ORDER BY r, s; SELECT college, region, seed FROM tournament ORDER BY 2, 3; --要以相反的顺序进行分类,应把DESC(降序)关键字添加到ORDER BY子句中的列名称中。默认值为升序;该值可以使用ASC关键词明确地指定。 SELECT a, COUNT(b) FROM test_table ORDER BY a DESC;
GROUP BY 쿼리
SELECT a, COUNT(b) FROM test_table GROUP BY a DESC; SELECT COUNT(col1) AS col2 FROM t GROUP BY col2 HAVING col2 = 2; -- HAVING不能用于应被用于WHERE子句的条目,不能编写如下语句: SELECT col_name FROM tbl_name HAVING col_name > 0; --而应该这么编写 SELECT col_name FROM tbl_name WHERE col_name > 0; --HAVING子句可以引用总计函数,而WHERE子句不能引用: SELECT user, MAX(salary) FROM users GROUP BY user HAVING MAX(salary)>10;
LIMIT 쿼리
SELECT * FROM tbl LIMIT 10; # Retrieve rows 0-9; SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15; --如果要恢复从某个偏移量到结果集合的末端之间的所有的行,您可以对第二个参数是使用比较大的数。 --以下语句可以恢复从第96行到最后的所有行: SELECT * FROM tbl LIMIT 95,18446744073709551615;
SELECT...INTO OUTFILE
SELECT...INTO OUTFILE SELECT의 'file_name' 형식은 선택한 행을 파일에 쓸 수 있습니다. 파일은 서버 호스트에 생성되므로 이 구문을 사용하려면 FILE 권한이 있어야 합니다. file_name은 원본 파일일 수 없습니다.
SELECT...INTO OUTFILE 문의 주요 기능은 테이블을 서버 시스템에 매우 빠르게 덤프할 수 있도록 하는 것입니다. 서버 호스트가 아닌 클라이언트 호스트에 결과 파일을 생성하려는 경우에는 SELECT...INTO OUTFILE을 사용할 수 없습니다. 이 경우 클라이언트 호스트에서 "mysql -e "SELECT ..." > file_name"과 같은 명령을 사용하여 파일을 생성해야 합니다.
SELECT...INTO OUTFILE은 LOAD DATA INFILE의 보완입니다. 문의 exort_options 부분에 사용되는 구문에는 LOAD DATA INFILE 문과 동시에 사용되는 부분적인 FIELDS 및 LINES 절이 포함됩니다.
다음 예에서는 쉼표로 구분된 값으로 파일이 생성됩니다. 이 형식은 많은 프로그램에서 사용할 수 있습니다.
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;INTO OUTFILE 대신 INTO DUMPFILE을 사용하면 MySQL은 열이나 행을 종료하지 않고 단일 행만 파일에 씁니다. 또한 이스케이프도 없습니다. 수행됩니다. 이 명령문은 BLOB 값을 파일에 저장하려는 경우에 유용합니다.
UNIONUNION은 여러 SELECT 문의 결과를 결과 집합으로 결합하는 데 사용됩니다. 구문은 다음과 같습니다.
SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL | DISTINCT] SELECT ...]는 각 SELECT에 나열됩니다. 해당 위치에서 선택한 열은 동일한 유형이어야 합니다. (예를 들어 첫 번째 문에서 선택한 첫 번째 열은 다른 문에서 선택한 첫 번째 열과 동일한 유형이어야 합니다.) 첫 번째 SELECT 문에서 사용한 열 이름은 결과의 열 이름에도 사용됩니다.
UNION에 ALL 키워드를 사용하지 않으면 반환된 모든 행은 전체 결과 집합에 DISTINCT를 사용한 것처럼 고유합니다. ALL을 지정하면 사용된 모든 SELECT 문에서 일치하는 모든 행을 가져옵니다.
동일한 쿼리에 UNION ALL과 UNION DISTINCT를 혼합할 수 있습니다. 혼합 UNION 유형은 DISTICT 공용체가 왼쪽에 있는 모든 모든 공용체를 포함하는 방식으로 처리됩니다. DISTINCT 공용체는 UNION DISTINCT를 사용하여 명시적으로 생성하거나 UNION을 사용하여 암시적으로(뒤에 DISTINCT 또는 ALL 키워드 없이) 생성할 수 있습니다.
간단한 예:
(SELECT a FROM tbl_name WHERE a=10 AND B=1) UNION (SELECT a FROM tbl_name WHERE a=11 AND B=2) ORDER BY a LIMIT 10;
ALL, DISTINCT 및 DISTINCTROW ALL, DISTINCT 및 DISTINCTROW 옵션은 중복 행을 반환해야 하는지 여부를 지정합니다. . 이러한 옵션이 제공되지 않으면 기본값은 ALL입니다(일치하는 모든 행이 반환됨). DISTINCT 및 DISTINCTROW는 동의어이며 결과 집합의 중복 행을
제거하도록 지정하는 데 사용됩니다.
아아아아
위 내용은 mysql의 select 문 작업 예제 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!