HOWTO · MySQL
MySQL 데이터를 알파벳 순으로 정렬
이 튜토리얼은 MySQL 서버의 데이터를 알파벳 순서로 정렬하는 방법을 보여줍니다.
이 페이지의 내용
MySQL에서 이름을 A부터 Z까지 정렬하려면 SELECT 쿼리에 텍스트 열을 지정한 ORDER BY를 추가하세요. 기본 정렬은 오름차순이며, Z부터 A까지 반대로 정렬하려면 DESC를 추가합니다. 아래 예제에서는 student_details 테이블과 stu_firstName 열을 사용합니다.
MySQL에서 테이블 만들기
예제 테이블에는 ID, 이름, 성 열이 있습니다. 다음을 실행해 테이블을 만드세요. CREATE TABLE student_details (stu_id INT, stu_firstName VARCHAR(255) DEFAULT NULL, stu_lastName VARCHAR(255) DEFAULT NULL, PRIMARY KEY (stu_id));. 그런 다음 다음 쿼리로 예제 레코드를 추가하세요. INSERT INTO student_details (stu_id, stu_firstName, stu_lastName) VALUES (1, 'Preet', 'Sanghavi'), (2, 'Rich', 'John'), (3, 'Veron', 'Brow'), (4, 'Geo', 'Jos'), (5, 'Hash', 'Shah'), (6, 'Sachin', 'Parker'), (7, 'David', 'Miller');. 기본 키는 각 학생 행에 고유한 ID를 부여하고, 이름은 정렬 예제에서 사용할 값입니다. 이 SQL 문은 쿼리 예제이므로 결과를 확인하려면 MySQL 데이터베이스에서 실행해야 합니다.
추가한 행을 확인하려면 SELECT * FROM student_details;를 실행하세요. 이 쿼리는 정렬 순서를 지정하지 않으므로 데이터베이스는 알파벳순이 아닌 순서로 행을 반환할 수 있습니다. 삽입한 순서가 정렬을 보장한다고 가정하지 말고, 각 쿼리에서 원하는 순서를 지정하세요.
MySQL 데이터베이스에서 데이터를 알파벳순으로 정렬하기
정렬 절은 ORDER BY입니다. ORDER만으로는 충분하지 않습니다. 일반적인 형식은 SELECT columns FROM table_name ORDER BY column_name;입니다. 예제에서는 SELECT stu_firstName FROM student_details ORDER BY stu_firstName;처럼 이름만 선택합니다. 기본 정렬은 오름차순이므로 이름이 A부터 Z까지 정렬됩니다. 결과 이름 순서는 David, Geo, Hash, Preet, Rich, Sachin, Veron입니다.
정렬 방향을 분명히 하려면 ASC를 명시할 수 있습니다. SELECT stu_firstName FROM student_details ORDER BY stu_firstName ASC;처럼 작성하면 됩니다. 방향을 생략했을 때와 마찬가지로 오름차순으로 정렬됩니다. ASC와 DESC는 ORDER BY 절에서 열 이름 뒤에 오는 방향 키워드입니다.
순서를 반대로 바꾸려면 DESC를 붙이세요. SELECT stu_firstName FROM student_details ORDER BY stu_firstName DESC;를 실행하면 Veron, Sachin, Rich, Preet, Hash, Geo, David 순서로 결과가 반환됩니다. 이는 Z에서 A 방향으로 정렬하는 내림차순입니다. 방향은 반환되는 행의 순서에만 영향을 주며 저장된 값을 바꾸거나 테이블 자체를 재배열하지 않습니다. 예제는 stu_firstName만 선택하므로 결과에는 이름 열 하나만 표시됩니다. 정렬된 결과에 더 많은 정보를 표시하려면 SELECT 목록에 stu_id 또는 stu_lastName을 추가하세요. 정렬 기준은 여전히 ORDER BY 뒤에 지정한 열입니다.
student_details를 자신의 테이블 이름으로, stu_firstName을 정렬할 텍스트 열 이름으로 바꿔 쿼리를 조정하세요. 다른 열을 선택하더라도 ORDER BY 절에는 정렬할 열을 지정해야 합니다. 예를 들면 SELECT stu_firstName, stu_lastName FROM student_details ORDER BY stu_firstName;와 같습니다. A부터 Z까지 정렬하려면 기본 방향을 사용하거나 ASC를 지정하고, 반대 방향에는 DESC를 사용하세요. 실제 텍스트 정렬 순서는 해당 열의 MySQL collation을 따릅니다. 따라서 이 기본 예제는 제공된 영어 이름의 정렬을 보여 주며, 언어별 정렬 규칙을 정의하지는 않습니다.
쿼리에서 행도 필터링한다면 ORDER BY를 WHERE 뒤에 두세요. 반환 행 수를 제한한다면 정렬 절 뒤에 LIMIT을 둡니다. 예를 들어 쿼리 형식은 SELECT columns FROM table_name WHERE condition ORDER BY column_name DESC LIMIT row_count;입니다. MySQL은 먼저 조건에 맞는 행을 필터링하고, 그 행을 정렬한 다음, 요청한 개수만큼 반환합니다. 정렬할 열은 쿼리에서 사용할 수 있어야 하며, 방향 키워드는 그 열 이름 뒤에 옵니다.