[SQL] 데이터베이스와 테이블

·2023년 4월 18일
0

[SQL]

목록 보기
2/3

1. 생성, 관리, 삭제

  • 데이터베이스 생성

create database mydb;
  • 이모지 사용 가능한 데이터베이스 생성

create database zerobase default character set utf8mb4;
  • 데이터베이스 사용

use zerobase;
Database changed
  • 데이터베이스 확인

show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
| zerobase           |
+--------------------+
  • 데이터베이스 삭제

drop database testdb;

User 관리

조회, 생성, 삭제

  • user 조회

    사용자 정보는 mysql에서 관리하므로 mysql로 이동 후 조회
use mysql;
select host, user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
  • user 생성

현재 PC에서만 접속 가능하고 비밀번호가 1234 인 사용자 생성

create user 'yun'@'localhost' identified by '1234'

외부에서 접속 가능하고 비밀번호가 1234인 사용자 생성

create user 'outyun'@'%' identifeid by '1234' 
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | outyun           |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
| localhost | yun              |
+-----------+------------------+
  • user 삭제

drop user 'yun'@'localhost';
drop user 'outyun'@'%';

권한 관리

  • user 권한 확인

show grants for 'yun'@'localhost';
+-----------------------------------------+
| Grants for yun@localhost                |
+-----------------------------------------+
| GRANT USAGE ON *.* TO `yun`@`localhost` |
+-----------------------------------------+
  • 데이터베이스의 모든 권한 부여

grant all on zerobase.* to 'yun'@'localhost';
+-----------------------------------------------------------+
| Grants for yun@localhost                                  |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO `yun`@`localhost`                   |
| GRANT ALL PRIVILEGES ON `zerobase`.* TO `yun`@`localhost` |
+-----------------------------------------------------------+
  • 권한 삭제

revoke all on zerobase.* from 'yun'@'localhost';
+-----------------------------------------+
| Grants for yun@localhost                |
+-----------------------------------------+
| GRANT USAGE ON *.* TO `yun`@`localhost` |
+-----------------------------------------+

테이블

  • 테이블 생성

    name : animal
    컬럼 : name(varchar(16)), type(varchar(16))

create table animal(
name varchar(16),
type varchar(16)
);
  • 테이블 목록 확인

show tables;
+--------------------+
| Tables_in_zerobase |
+--------------------+
| animal             |
| mytable            |
+--------------------+
  • 테이블 정보 확인

desc animal;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | De- fault | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(16) | YES  |     | NULL    |       |
| type  | varchar(16) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
  • 테이블 이름 변경

alter table mytable rename person;
+--------------------+
| Tables_in_zerobase |
+--------------------+
| animal             |
| person             |
+--------------------+
  • 테이블 컬럼 추가

alter table person add column age_ double;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
| age_  | double      | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
  • 테이블 컬럼 타입 변경

alter table person modify column age_ int;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
| age_  | int         | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
  • 테이블 컬럼 변경

alter table person chage column age_ age int 
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
| age   | int         | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
  • 테이블 컬럼 삭제

alter table person drop column age;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+



2. 테이블 데이터 조회, 추가

insert - 추가

  • 실습 테이블 환경

desc person;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
| age   | int         | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
  • 데이터 추가

insert into person (id, name, age, sex)
values (1, '이효리', 43, 'F');
+------+-----------+------+------+
| id   | name      | age  | sex  |
+------+-----------+------+------+
|    1 | 이효리    |   43 | F    |
+------+-----------+------+------+
  • 코든 컬럼값을 추가하는 경우 컬럼 이름 지정하지 않고 컬럼 순서대로 데이터 입력 가능
insert into person values (2, '이상순', 48, 'M');
  • 테이블 내 특정 컬럼 데이터 조회
select name, age from person;
+-----------+------+
| name      | age  |
+-----------+------+
| 이효리    |   43 |
| 이상순    |   48 |
+-----------+------+

where - 조건

  • 테이블 내에서 조건을 만족하는 데이터 조회
select * from person where sex='F';
+------+-----------+------+------+
| id   | name      | age  | sex  |
+------+-----------+------+------+
|    1 | 이효리    |   43 | F    |
+------+-----------+------+------+

UPDATA - 데이터 수정

updata person set age=23 where name='이효리';
+------+-----------+------+------+
| id   | name      | age  | sex  |
+------+-----------+------+------+
|    1 | 이효리    |   23 | F    |
|    2 | 이상순    |   48 | M    |
+------+-----------+------+------+

DELETE - 데이터 삭제

delete from table where name='이상순'
+------+-----------+------+------+
| id   | name      | age  | sex  |
+------+-----------+------+------+
|    1 | 이효리    |   23 | F    |
+------+-----------+------+------+



3. 데이터 정렬

  • 실습 테이블 환경
    auto_increment : primary key 값 자동으로 1씩 증가하게 설정 -
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    |                |
+-----------+-------------+------+-----+---------+----------------+
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 |   58 | M    | MC, 개그맨                | 안테나                   |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델             | YG엔터테이먼트            |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                      | YG엔터테이먼트            |
+----+-----------+------------+------+------+-------------------------+--------------------------+
  • 데이터 정렬

이름과 나이를 나이순으로 조회

  • 오름차순
select age, name from celeb order by age;
+------+-----------+
| age  | name      |
+------+-----------+
|   23 | 이수현    |
|   28 | 이미주    |
|   28 | 송강      |
|   29 | 아이유    |
|   41 | 강동원    |
|   48 | 차승원    |
|   58 | 유재석    |
+------+-----------+
  • 내림차순
select name, age from celeb order by age desc;
+-----------+------+
| name      | age  |
+-----------+------+
| 유재석    |   58 |
| 차승원    |   48 |
| 강동원    |   41 |
| 아이유    |   29 |
| 이미주    |   28 |
| 송강      |   28 |
| 이수현    |   23 |
+-----------+------+
  • 다중 정렬 기준 설정
select name, age from celeb order by age desc, name asc;
+-----------+------+
| name      | age  |
+-----------+------+
| 유재석    |   58 |
| 차승원    |   48 |
| 강동원    |   41 |
| 아이유    |   29 |
| 송강      |   28 |
| 이미주    |   28 |
| 이수현    |   23 |
+-----------+------+



4. 연산자

비교 연산자

+-------+----------------------------------+
| 연산자 |               의미                |
+-------+----------------------------------+
| A=B   | A와 B가 같은                      | 
| A>B   | A가 B보다 큰 (초과)                |
| A<B   | A가 B보다 작은 (미만)              |
| A>=B  | A가 B보다 크거나 같은 (이상)        |
| A<=B  | A가 B보다 작거나 같은 (이하)        |
| A<>B  | A가 B보다 크거나 작은 (같지않은)     |
| A!=B  | A와 B가 같지않으                   |
+-------+----------------------------------+
 나이가 29 보다 큰 데이터 검색 
select * from celeb where age > 29 order by age;
+----+-----------+------------+------+------+-------------------------+----------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE               | AGENCY               |
+----+-----------+------------+------+------+-------------------------+----------------------+
|  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 텔런트        | YG엔터테이먼트       |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트       |
|  5 | 유재석    | 1972-08-14 |   58 | M    | MC, 개그맨              | 안테나               |
+----+-----------+------------+------+------+-------------------------+----------------------+
 이름이 아이유인 데이터 검색 
 select name, age, agency from celeb where name = '아이유' ;
+-----------+------+------------------------+
| name      | age  | agency                 |
+-----------+------+------------------------+
| 아이유    |   29 | EDAM엔터테이먼트         |
+-----------+------+------------------------+
 성별이 남자인 데이터의 이름, 성별, 소속사 정보를 나이의 역순으로 정렬 뒤 소속사 순으로 정렬 
select name, sex, agency from celeb where sex='M' order by age desc, agency;
+-----------+------+----------------------+
| name      | sex  | agency               |
+-----------+------+----------------------+
| 유재석    | M    | 안테나                |
| 차승원    | M    | YG엔터테이먼트         |
| 강동원    | M    | YG엔터테이먼트         |
| 송강      | M    | 나무엑터스            |
+-----------+------+----------------------+

논리 연산자

+----------+-----------------------------------+
| 연산자    |               의미                |
+----------+-----------------------------------+
| AND      | 조건을 모두 만족하는 경우 TRUE       | 
| OR       | 하나의 조건이라도 만족하는 경우 TRUE  |
| NOT      | 조건을 만족하지 않는 경우 TRUE       |
| BETWEEN  | 조건겂이 범위 사이에 있으면 TRUE      |
| IN       | 조건값이 목록에 있으면 TRUE          |
| LIKE     | 조건값이 패턴에 맞으면 TRUE          |
+----------+-----------------------------------+

AND

 나이가 29세이고 성별이 여성인 데이터 검색 
select * from celeb where sex ='F' and age =29;
+----+-----------+------------+------+------+-------------------+------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE         | AGENCY                 |
+----+-----------+------------+------+------+-------------------+------------------------+
|  1 | 아이유    | 1993-05-16 |   29 | F    | 가수, 텔런트      | EDAM엔터테이먼트       |
+----+-----------+------------+------+------+-------------------+------------------------+
 성별이 남자이고 나이가 40세 보다 큰 데이터를 이름의 역순으로 정렬 
 select * from celeb where sex='M' and age>40 order by name desc;
 
+----+-----------+------------+------+------+-------------------------+----------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE               | AGENCY               |
+----+-----------+------------+------+------+-------------------------+----------------------+
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트       |
|  5 | 유재석    | 1972-08-14 |   58 | M    | MC, 개그맨              | 안테나               |
|  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 텔런트        | YG엔터테이먼트       |
+----+-----------+------------+------+------+-------------------------+----------------------+

OR

 나이가 25세 보다 작거나 30세 보다 큰 데이터 검색 
select * from celeb where age <25 or age>30;
 
+----+-----------+------------+------+------+-------------------------+----------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE               | AGENCY               |
+----+-----------+------------+------+------+-------------------------+----------------------+
|  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 텔런트        | YG엔터테이먼트       |
|  5 | 유재석    | 1972-08-14 |   58 | M    | MC, 개그맨              | 안테나               |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트       |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                    | YG엔터테이먼트       |
+----+-----------+------------+------+------+-------------------------+----------------------+
 나이가 29세보다 작고 여자이거나, 나이가 30세 보다 크고 남자인 데이터를 나이와 성별 순으로 정렬하여 검색 
 select * from celeb where (age <29 and sex ='F') or (age>30 and sex='M') order by age, sex;
+----+-----------+------------+------+------+-------------------------+--------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE               | AGENCY                   |
+----+-----------+------------+------+------+-------------------------+--------------------------+
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                    | YG엔터테이먼트           |
|  2 | 이미주    | 1994-09-23 |   28 | F    | 가수                    | 울림엔터테이먼트         |
|  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 텔런트        | YG엔터테이먼트           |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트           |
|  5 | 유재석    | 1972-08-14 |   58 | M    | MC, 개그맨              | 안테나                   |
+----+-----------+------------+------+------+-------------------------+--------------------------+

NOT

 소속사가 YG 면서 남자가 아니거나 직업이 가수면서 소속사가 YG가 아닌 데이터 검색 
select * from celeb where (agency = 'YG엔터테이먼트' and not sex = 'M') or ( job_title ='가수' and not agency ='YG엔터테이먼트');
+----+-----------+------------+------+------+-----------+--------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE | AGENCY                   |
+----+-----------+------------+------+------+-----------+--------------------------+
|  2 | 이미주    | 1994-09-23 |   28 | F    | 가수      | 울림엔터테이먼트         |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수      | YG엔터테이먼트           |
+----+-----------+------------+------+------+-----------+--------------------------+
 생일이 1990년 이후이면서 여자가 아니거나, 생일이 1979년 이전이면서 소속사가 안테나가 아닌 데이터 검색 
select * from celeb where (birthday >= 19900101 and not sex ='F') or ( birthday < 19800101 and not agency = '안테나');
+----+-----------+------------+------+------+----------------------+----------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE            | AGENCY               |
+----+-----------+------------+------+------+----------------------+----------------------+
|  3 | 송강      | 1994-04-23 |   28 | M    | 텔런트               | 나무엑터스           |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델       | YG엔터테이먼트       |
+----+-----------+------------+------+------+----------------------+----------------------+

BETWEEN

 나이가 20세에서 40세 사이의 데이터 검색 
select * from celeb where age between 20 and 40;
+----+-----------+------------+------+------+-------------------+--------------------------+
| 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    | 텔런트            | 나무엑터스               |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수              | YG엔터테이먼트           |
+----+-----------+------------+------+------+-------------------+--------------------------+
 생년월일이 1980년에서 1995년 사이가 아니면서 여자이거나, 소속사가 YG면서 나이가 20세에서 45세 사이가 아닌 데이터 검색 
select * from celeb where (birthday not between 19800101 and 19950101 and sex ='F') or (agency = 'YG엔터테이먼트' and not (age>=20 and age<=45));
+----+-----------+------------+------+------+----------------------+----------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE            | AGENCY               |
+----+-----------+------------+------+------+----------------------+----------------------+
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델       | YG엔터테이먼트       |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                 | YG엔터테이먼트       |
+----+-----------+------------+------+------+----------------------+----------------------+

IN

 나이가 28세, 48세 중 하나인 데이터 검색 
select * from celeb where age in (28, 48);
+----+-----------+------------+------+------+----------------------+--------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE            | AGENCY                   |
+----+-----------+------------+------+------+----------------------+--------------------------+
|  2 | 이미주    | 1994-09-23 |   28 | F    | 가수                 | 울림엔터테이먼트         |
|  3 | 송강      | 1994-04-23 |   28 | M    | 텔런트               | 나무엑터스               |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델       | YG엔터테이먼트           |
+----+-----------+------------+------+------+----------------------+--------------------------+
 소속사가 나무엑터스, 안테나, 울림이 아니면서, 성별이 여자이거나 나이가 45세 이상인 데이터 검색 
select * from celeb where (not agency in ('나무엑터스', '안테나', '울림엔터테이먼트')) and (sex
 = 'F'  or age>=45);
+----+-----------+------------+------+------+----------------------+------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE            | AGENCY                 |
+----+-----------+------------+------+------+----------------------+------------------------+
|  1 | 아이유    | 1993-05-16 |   29 | F    | 가수, 텔런트         | EDAM엔터테이먼트       |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델       | YG엔터테이먼트         |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                 | YG엔터테이먼트         |
+----+-----------+------------+------+------+----------------------+------------------------+

LIKE

 소속사 이름이 'YG엔터테이먼트' 검색 
select * from celeb where agency like 'YG엔터테이먼트';
+----+-----------+------------+------+------+-------------------------+----------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE               | AGENCY               |
+----+-----------+------------+------+------+-------------------------+----------------------+
|  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 텔런트        | YG엔터테이먼트       |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트       |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                    | YG엔터테이먼트       |
+----+-----------+------------+------+------+-------------------------+----------------------+
 소속사 이름이 'YG'로 시작하는 데이터 검색 
mysql> select * from celeb where agency like 'YG%';
+----+-----------+------------+------+------+-------------------------+----------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE               | AGENCY               |
+----+-----------+------------+------+------+-------------------------+----------------------+
|  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 텔런트        | YG엔터테이먼트       |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트       |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                    | YG엔터테이먼트       |
+----+-----------+------------+------+------+-------------------------+----------------------+
 작업명에 '가수'가 포함된 데이터 검색
mysql> select * from celeb where job_title like '%가수%';
+----+-----------+------------+------+------+-------------------+--------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE         | AGENCY                   |
+----+-----------+------------+------+------+-------------------+--------------------------+
|  1 | 아이유    | 1993-05-16 |   29 | F    | 가수, 텔런트      | EDAM엔터테이먼트         |
|  2 | 이미주    | 1994-09-23 |   28 | F    | 가수              | 울림엔터테이먼트         |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수              | YG엔터테이먼트           |
+----+-----------+------------+------+------+-------------------+--------------------------+
 소속사의 두번째 글자가 'G'인 데이터 검색
mysql> select * from celeb where agency like '_G%';
+----+-----------+------------+------+------+-------------------------+----------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE               | AGENCY               |
+----+-----------+------------+------+------+-------------------------+----------------------+
|  4 | 강동원    | 1981-01-18 |   41 | M    | 영화배우, 텔런트        | YG엔터테이먼트       |
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델          | YG엔터테이먼트       |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수                    | YG엔터테이먼트       |
+----+-----------+------------+------+------+-------------------------+----------------------+
 직업명이 '가'로 시작하고 최소 2글자 이상인 데이터 검색 
mysql> select * from celeb where job_title like '가_%';
+----+-----------+------------+------+------+-------------------+--------------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE         | AGENCY                   |
+----+-----------+------------+------+------+-------------------+--------------------------+
|  1 | 아이유    | 1993-05-16 |   29 | F    | 가수, 텔런트      | EDAM엔터테이먼트         |
|  2 | 이미주    | 1994-09-23 |   28 | F    | 가수              | 울림엔터테이먼트         |
|  7 | 이수현    | 1999-05-04 |   23 | F    | 가수              | YG엔터테이먼트           |
+----+-----------+------------+------+------+-------------------+--------------------------+
 직업명이 '영' 으로 시작하고 '모델'로 끝나는 데이터 검색
mysql> select * from celeb where job_title like '영%모델';
+----+-----------+------------+------+------+----------------------+----------------------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE            | AGENCY               |
+----+-----------+------------+------+------+----------------------+----------------------+
|  6 | 차승원    | 1970-06-07 |   48 | M    | 영화배우, 모델       | YG엔터테이먼트       |
+----+-----------+------------+------+------+----------------------+----------------------+
 직업이 하나 이상인 연예인 중 영화배우 혹은 텔런트가 아닌 연예인 검색 
 select * from celeb where (job_title like '%,%') and not (job_title like '%영화배우%' or job_title like '%텔런트%');
+----+-----------+------------+------+------+---------------+-----------+
| ID | NAME      | BIRTHDAY   | AGE  | SEX  | JOB_TITLE     | AGENCY    |
+----+-----------+------------+------+------+---------------+-----------+
|  5 | 유재석    | 1972-08-14 |   58 | M    | MC, 개그맨    | 안테나    |
+----+-----------+------------+------+------+---------------+-----------+
profile
개발하고싶은사람

0개의 댓글