데이터베이스 이동
person 테이블생성
테이블 정보확인
desc person;
컬럼 데이터 추가
insert into person (id, name, age, sex)
values (1, '이효리', 43, 'F');
select * from person;
insert into person (id, name, age, sex)
values (2, '이상순', 48, 'M');
select * from person;
person 테이블내의이름, 나이, 성별 데이터를 조회
select name, age, sex, from person;
SELECT name, age, sex from person;
person 테이블 내의모든 컬럼에 대한 데이터를 조회
select * from person;
테이블 내 조건을 만족하는 데이터 조회
person 테이블에서 성별이 여자인 데이터 조회
select * from person where sex='F';
person 테이블에나이가 48세 이상인 데이터를 조회
select * from person where age > 45;
person 테이블에서 성별 여자인 데이터를 조회
select * from person where sex='M';
UP DATA 데이터 수정
이효리 나이를 23세로 수정
update person set age=23 where name='이효리';
delete 데이터 삭제
이상순 데이터 삭제
delete from person where name='이상순';
select * from person;
실습 테이블 생성
mysql> create table celeb
(
id int not null auto_increment primary key,
name varchar(32) not null default '',
brithday date,
age int,
sex char(1),
job_title varchar(32),
agency varchar(32)
);
desc celeb;
데이터 추가
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엔터테이먼트');
select * from celeb;
데이터 확인
select * from celeb;
select문에서 데이터를 특정 컬럼을 기준으로 오름차순 또는 내림차순 정렬 조회
테이블 이름과 나이순으로 조회
select age, name from celeb order by age;
이름과 나이를 역순 내림차순 조회
select age, name from celeb order by age desc;
테이블 이름과 나이를 나이 와 이름순으로 정렬 조회 (ASC 를생략해도 기본은 오름차순 정렬)
select age, name from celeb order by age, name;
테이블에서 이름 과 나이를 나이의 역순으로 정렬 한뒤 이름순으로 정렬조회
select age, name from celeb order by age desc, name asc;
테이블에서 이름, 생년월일, 성별, 소속자 데이터를 소속사순으로 정렬조회
select name, brithday, sex, agency from celeb order by agency;
테이블에서 전체 컬럼을 소속사, 이름순으로 정렬조회
select * from celeb order by agency, name ASC;
테이블에서 이름, 나이, 직업, 소속사 데이터를 소속사순, 나이 역순으로 정렬조회
select * from celeb;
select name, age, job_title, agency from celeb order by agency ASC, age DESC;
나이 29세 데이터 검색
select name, age from celeb where age = 29 order by age;
나이가 29세가 아닌 데이터 검색
select name, age from celeb where age != 29 order by age;
나이가 29세 보다 큰 데이터 검색
select name, age from celeb where age > 29 order by age;
나이가 29세 보다 작은 데이터 검색
select name, age from celeb where age<29 order by age;
나이가 29세 보다 크거나 같은 데이터 검색
select name, age from celeb where age >= 29 order by age;
나이가 29세 보다 작거나 같은 데이터 검색
select name, age from celeb where age <= 29 order by age;
나이가 29세 크거나 작은(같지않은) 데이터 검색
select name, age from celeb where age <> 29 order by age;
테이블에서 나이(age)가 30세이하 데이터의 이름과 나이를 나이순조회
select name, age from celeb where age <= 30 order by age, name;
테이블에서 소속사가 YG엔터테이먼트가 아닌 데이터의 이름, 직업, 소속사를 소속 사순으로 정렬조회
테이블에서 이름이 ‘아이유’인 데이터의 이름과 나이, 성별, 직업, 소속사조회
select name, age,sex, agency, job_title from celeb where name='아이유';
테이블에서 소속사가 YG엔터테이먼트가 아닌 데이터의 이름, 직업, 소속사를 소속사 순으로 정렬하여 조회
select name, job_title from celeb where agency != 'YG엔터테이먼트' order by agency;
테이블에서 성별이 남자인 데이터의 이름, 성별, 소속사 정보를 나이의 역순으로 정렬한뒤 소속사순으로 정렬조회
select name, age, agency from celeb where sex = 'M' order by age desc, agency;
테이블에서나이가 50세 미만인 데이터의성별, 소속사, 이름, 나이를 성별순으로 정렬한뒤 소속사역순으로 정렬하고 마지막으로 이름순으로 정렬조회
select sex, agency, name, age from celeb where age < 50 order by sex, agency desc, name asc;
실습환경
show databases;
use zerobase; 이동
select * from celeb; 모든 테이블 가져오기
나이 29세이고 성별인 여성인 데이터 검색
select * from celeb where age=29 and sex='F';
성별이 남자이고 나이가 40세 보다 큰 데이터 이름의 역순 정렬
select * from celeb where sex='M' and age>40 order by name desc;
테이블에서 성별이 남자이고 소속사가 YG엔터테이먼트인 데이터를 소속사순으로 정렬조회
select * from celeb where sex='M' AND agency='YG엔터테이먼트' order by agency ASC;
테이블에서 나이가 30세이상 성별이 남자인 데이터를 나이순으로 정렬조회
select * from celeb where age>=30 AND sex='M' order by age;
나이가 25세보다 작거나 30세보다 큰 데이터 검색
select * from celeb where age<25 OR age<30 order by age;
나이가 29세 보다 자고 여자이거나, 나이가 30세 보다 크고 남자인 데이터을 나이와 성별 순으로 정렬검색
select * from celeb where age<29 AND sex='F';
select * from celeb where age>30 AND sex='M';
select * from celeb where (age<29 AND sex='F') OR (age>30 AND sex='M');
YG엔터테이먼트 소속이거나 나무엑터스 소속인 연예인 중, 나이가 30세 보다 작은 데이터를 검색(에러)
select * from celeb where agency='YG엔터테이먼트' OR agency='나무엑터스' AND age<30;
select * from celeb where (agency='YG엔터테이먼트' OR agency='나무엑터스') AND age<30;
show tables;
나이가 25세보다 작거나, 30세보다 큰 데이터 검색
select * from celeb where age<25 OR age>30;
나이순으로 다시 정렬
select * from celeb where age<25 OR age>30 order by age;
나이가 29세보다 작고, 여자인 데이터를 검색
select * from celeb where age<29 AND sex='F';
나이가 30세보다 크고, 남자인 데이터를 검색
select * from celeb where age>30 AND sex='M';
나이가 29세보다 작고 여자이거나, 나이가 30세보다 크고 남자인 데이터를 검색
select * from celeb where (age<29 AND sex='F') OR (age>30 AND sex='M');
4.나이가 29세보다 작고 여자이거나, 나이가 30세보다 크고 남자인 데이터를 나이와 성별 순으로 정렬하여 검색
select * from celeb where (age<29 AND sex='F') OR (age>30 AND sex='M') order by age, sex;
5.YG엔터테이먼트 소속이거나, 나무엑터스 소속인 연예인 중 나이가 30세 보다 작은 테이터를 검색
step1
step2
최종
select * from celeb where (agency='YG엔터테이먼트' OR agency='나무엑터스') AND age<39;
YG엔터테이먼트 소속이거나 나무엑터스소속인 연예인중, 나이가 30세보다 작은데이터를검색
select * from celeb where agency='YG엔터테이먼트' OR agency='안테나' order by agency ASC;
홀수 id 검색
select * from celeb where (id%2)=1;
id가 홀수이면서 성별이 남자 검색
select * from celeb where(id%2)=1 AND sex='M';
id가 짝수이면서 'YG엔터테이먼트' 검색
select * from celeb where(id%2)=0 AND agency='YG엔터테이먼트';
나이순으로 정렬
select * from celeb where(id%2)=0 AND agency='YG엔터테이먼트' order by age;
남자 나이순으로 검색
select * from celeb where((id%2)=1 AND sex='M') OR ((id%2)=0 AND agency='YG엔터테이먼트') order by age;
성별이 여자가 아닌 데이터 검색
select * from celeb where NOT sex='F';
생일이 1990년이후이면서 여자가아니거나, 생일이 1979년이전이면서소속사가 안테나가 아닌 데이터검색
select * from celeb where brithday > 19891231;
select * from celeb where brithday < 19800101 and not agency='안테나';
select * from celeb where (brithday > 19891231 and not sex='F') or (brithday < 19800101 and not agency='안테나');
테이블에서 성별이 남자가 아니거나 나이가 30세이상인 데이터를 나이의 역순으로 정렬
select * from celeb where NOT sex='M' OR age>=30 order by age desc;
between : 조건값이 범위 사이에 있으면 True
나이가 20세에서 40세 사이의 데이터 검색
select * from celeb where age between 20 and 40;
select * from celeb;
in : 목록 안에 조건이 존재하는 경우 True
나이가 28세, 48세 중 하나인 데이터 검색
select * from celeb where age in(28, 48);
소속사가 나무엑터스, 안테나, 울림엔터테이먼트가아니면서, 성별이여자거나나이가 45세이상인데이터검색
select * from celeb where agency in ('나무엑터스', '안테나', '울림엔터테이먼트');
select * from celeb where not agency in ('나무엑터스', '안테나', '울림엔터테이먼트');
select * from celeb where not agency in ('나무엑터스', '안테나', '울림엔터테이먼트') and age>=45;
select * from celeb where not agency in ('나무엑터스', '안테나', '울림엔터테이먼트') and (sex='f' or age>=45);