38.SQL-4

SOWA·2023년 4월 19일
0

SQL

목록 보기
4/12
CREATE TABLE celeb
    -> (
    ->  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),
    ->  AGENCY varchar(32)
    -> );

ㄴ 테이블 생성


mysql> desc celeb;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| ID        | int         | NO   | PRI | NULL    | auto_increment |
| NAME      | varchar(32) | NO   |     |         |                |
| BIRTHDAY  | date        | YES  |     | NULL    |                |
| AGE       | int         | YES  |     | NULL    |                |
| SEX       | char(1)     | YES  |     | NULL    |                |
| JOB_TITLE | varchar(32) | YES  |     | NULL    |                |
| AGENCY    | varchar(32) | YES  |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+

insert into celeb values (1, '아이유', '1993-05-16', 29, 'F', '가수, 탤런트', 'EDAM엔터테
이먼트');
insert into celeb values (2, '이미주', '1994-09-23', 28, 'F', '가수', '올림엔터테인먼트');
insert into celeb values (3, '송강', '1994-04-23', 28, 'M', '탤런트', '나무엑터스');
insert into celeb values (4, '강동원', '1981-01-18', 41, 'M', '영화배우,탤런트', 'YG엔터테인먼트');
insert into celeb values (5, '유재석', '1972-08-14', 50, 'M', 'MC,개그맨', '안테나');
insert into celeb values (6, '차승원', '1970-06-07', 48, 'M', '영화배우,모델', 'YG엔터테인먼트');
insert into celeb values (7, '이수현', '1999-05-04', 23, 'F', '가수', 'YG엔터테인먼트');

ㄴ 데이터 추가

mysql> select * from celeb;
+----+-----------+------------+------+------+------------------------+--------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE              | AGENCY                   |
+----+-----------+------------+------+------+------------------------+--------------------------+
|  1 | 아이유    | 1993-05-16 |   29 | F    | 가수, 탤런트           | EDAM엔터테이먼트         |
|  2 | 이미주    | 1994-09-23 |   28 | F    | 가수                   | 올림엔터테인먼트         |
|  3 | 송강      | 1994-04-23 |   28 | M    | 탤런트                 | 나무엑터스               |
|  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우,탤런트        | YG엔터테인먼트           |
|  5 | 유재석    | 1972-08-14 |   50 | M    | MC,개그맨              | 안테나                   |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우,모델          | YG엔터테인먼트           |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                   | YG엔터테인먼트           |
+----+-----------+------------+------+------+------------------------+--------------------------+

🖇️ Order by

Select문에서 데이터를 특정 컬럼 기주느로 오름차순 혹은 내림차순 정렬

  • ASC(Ascending): 오름차순으로 정렬
  • DESC(Descending): 내림차순으로 정렬

SELECT column1, column2,...
FROM tablename
ORDER BY column1, column2, ...ASC | DESC;

mysql> select age, name from celeb order by age asc;
+------+-----------+
| age  | name      |
+------+-----------+
|   23 | 이수현    |
|   28 | 이미주    |
|   28 | 송강      |
|   29 | 아이유    |
|   41 | 강동원    |
|   48 | 차승원    |
|   50 | 유재석    |
+------+-----------+

ㄴ celeb 테이블에서 이름과 나이를 나이순으로 조회(ASC를 생략해도 기본은 오름차순 정렬)


mysql> select age, name from celeb order by age desc, name asc;
+------+-----------+
| age  | name      |
+------+-----------+
|   50 | 유재석    |
|   48 | 차승원    |
|   41 | 강동원    |
|   29 | 아이유    |
|   28 | 송강      |
|   28 | 이미주    |
|   23 | 이수현    |
+------+-----------+

ㄴ celeb 테이블에서 이름과 나이를 나이의 역순으로 정렬한 뒤 이름순으로 정렬하여 조회


🖇️ Comparison Operators(비교 연산자)

연산자의미
A = BA와 B가 같은
A > BA가 B보다 큰(초과)
A < BA가 B보다 작은(미만)
A >= BA가 B보다 크거나 같은(이상)
A <= BA가 B보다 작거나 같은(이하)
A <> BA가 B보다 크거나 작은(같지 않은)
A != BA와 B가 같지않은

mysql> select name, age from celeb where age=29 order by age;
+-----------+------+
| name      | age  |
+-----------+------+
| 아이유    |   29 |
+-----------+------+

ㄴ 나이가 29세인 데이터 검색


mysql> select name, age from celeb where age != 29 order by age;
+-----------+------+
| name      | age  |
+-----------+------+
| 이수현    |   23 |
| 이미주    |   28 |
| 송강      |   28 |
| 강동원    |   41 |
| 차승원    |   48 |
| 유재석    |   50 |
+-----------+------+

ㄴ 나이가 29세가 아닌 데이터 검색


mysql> select name, age from celeb where age>29 order by age;
+-----------+------+
| name      | age  |
+-----------+------+
| 강동원    |   41 |
| 차승원    |   48 |
| 유재석    |   50 |
+-----------+------+

ㄴ 나이가 29세보다 큰 데이터 검색


mysql> select name, age from celeb where age<>29 order by age;
+-----------+------+
| name      | age  |
+-----------+------+
| 이수현    |   23 |
| 이미주    |   28 |
| 송강      |   28 |
| 강동원    |   41 |
| 차승원    |   48 |
| 유재석    |   50 |
+-----------+------+

ㄴ 나이가 29세보다 크거나 작은(같지않은)데이터 검색



from.제로베이스 데이터 취업스쿨 강의

0개의 댓글