ORDER BY

JYJ·2022년 2월 21일
0

SQL / MySQL

목록 보기
5/25

NOT NULL

  • NOT NULL 제약 조건을 설정하면, 해당 필드는 NULL값을 저장할 수 없다.
  • 즉, 이 제약 조건이 설정된 필드는 무조건 데이터를 가지고 있어야 한다.
  • NOT NULL 제약 조건은 CREATE 문으로 테이블을 생성하거나 ALTER 문으로 추가할 수도 있다.

AUTO_INCREMENT

  • 일반적으로 구분자를 설정하기 위해 PK(Primary Key) 설정을 한다.
  • PK의 특징은 고유성을 가져야하기 때문에 같은 데이터를 넣을 수 없다.
  • 그래서 보통 PK를 int타입으로 중복되지 않게 인덱스(정수값)을 계속 올린다.
  • 이때 이 인덱스(정수값)을 체크해 자동적으로 올려주는 옵션이 AUTO_INCREMENT이다.
  • 기본키(Primary Key)에만 옵션 부여가 가능하다.

DEFAULT

  • DEFAULT 제약 조건은 해당 필드의 기본값을 설정할 수 있게 해준다.
  • 만약 입력할 때 필드 값을 전달하지 않으면 자동으로 설정된 기본값을 저장한다.

CHAR, VARCHAR

  • CHAR와 VARCHAR은 문자열을 표현할 때 사용하는 자료형으로 사용할 때 길이를 명시해 주어야 한다.
  • CHAR와 VARCHAR은 정해진 길이를 초과하는 데이터를 입력하면 잘리게 된다.
  • CHAR은 고정형 문자열이기 때문에 CHAR(20)일때 2byte의 문자만 넣어도 20byte만큼의 데이터를 잡게된다.
  • 반면 VARCHAR(variable + char)는 가변형 문자열이기 때문에 VARCHAR(20)일 경우 2byte의 문자를 넣으면 2byte만큼의 데이터만 잡게된다.
  • 고정 사이즈인 CHAR 타입은 추후에 연산할 필요가 없기 때문에 검색속도 및 읽는 속도가 다른 타입보다 빠르다.
  • 하지만 CHAR 타입은 필요없는 공간을 낭비하게 되는 경우가 발생할 수 있으므로 공간복잡도와 시간복잡도를 모두 고려해서 적절한 타입을 설정해야 한다.

✔ testtable 생성

CREATE TABLE testtable
(
ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME varchar(32) NOT NULL DEFAULT '',
BIRTHDAY date,
AGE int,
SEX char(1),
JOB_TITLE varchar(32)
);



ORDER BY


  • SELECT문으로 데이터를 특정 칼럼을 기준으로 오름차순 혹은 내림차순으로 정렬
  • ASC(Ascending) : 오름차순으로 정렬
  • DESC(Descending) : 내림차순으로 정렬

✔ testtable에서 이름과 나이를 나이의 역순으로 정렬한 뒤 이름순으로 정렬하여 조회

SELECT age, name FROM testtable ORDER BY age DESC, name ASC;
profile
Study note

0개의 댓글