스터디노트 (SQL 4~5)

zoe·2023년 4월 11일
0

실습환경 만들기

  • zerobase 사용(이동)

  • person 테이블 생성

create table person (id int, name varchar(16), age int, sex char);
show tables;
  • 실습 테이블 정보 확인
desc person;
  • INSERT 문법 : 입력한 컬럼 이름의 순서와 값의 순서가 일치하도록 주의
    - 모든 컬럽값을 추가하는 경우, 컬럼 이름을 지정하지 않아도 되지만, 입력하는 값의 순서가 테이블의 컬럼 순서와 일치하도록 주의
insert into tablename (column1, colum2 ...)
values (value1, value2, ...)

- ID 값이 1인 이효리, 43세, 여자(F) 데이터 추가
insert into person (id, name, age, sex) values (1, '이효리', 43, 'F');
  • ID값이 2인 이상순, 48세, 남자(M) 데이터 추가
insert into person values (2, '이상순', 48, 'M');
select * from person;

문제 1. person 테이블에 다음의 데이터를 추가하고 확인

use testdb
show tables;
create table person( id int, name varchar(16), age int, sex char);
show tables;
desc person;
insert into person (id, name, age, sex) values (1, '이효리', 43, 'F');
select * from person;
insert into person values (2, '이상순',  48, 'M');
select * from person;




SELECT, WHERE

  • SELECT 문법 : 테이블 내의 특정 컬럼에 대한 데이터를 조회
select column1, column2, ...
from tablename;

  • person 테이블 내의 이름, 나이, 성별 데이터를 조회
use zerobase;
insert into person values (3, '유재석', 50, 'M');
insert into person values (4, '이미주', 28, 'F');
select name, age, sex from person;
  • SELECT 문법 : 테이블 내의 모든 컬럼에 대한 데이터를 조회
select * from tablename;

  • person 테이블 내의 모든 컬럼에 대한 데이터를 조회
select * from person;
  • WHERE 문법 : SQL문에 조건을 추가하며 select뿐만 아니라 update, delete에도 사용, 테이블 내에서 조건을 만족하는 데이터 조회
select column1, column2, ...
from table name
where condition;

  • person 테이블에서 성별이 여자인 데이터 조회
select * from person where sex='F';

문제 1. person 테이블에 나이가 50세인 데이터를 조회

select * from person where age = 50;

문제 2. person 테이블에서 성별이 여자인 데이터 조회

select * from person where sex = 'F';




UPDATE, DELETE

  • UPDATE : 데이터 수정
update tablename
set column1 = value1, column2 = value2, ...
where condition;

  • 이효리의 나이를 23세로 수정
update person set age=23 where name='이효리';
select * from person;
  • DELETE : 데이터 삭제
delete from tablename where condition;

  • 이상순 데이터 삭제
delete from person where name='이상순';
select * from person;

문제 1. person 테이블에서 유재석의 성별을 여자(F)로 수정하고 확인

update person set sex='F' where name='유재석';
select * from person;

문제 2. person 테이블에서 이름이 이미주를 다른 이름으로 수정하고 확인

 update person set name='김미주' where name='이미주';
select * from person;

문제 3. person 테이블에서 성별이 여자인 데이터를 삭제하고 확인

 delete from person where sex='F';
select * from person;

문제 4. person 테이블을 삭제하고 확인(testdb)

show databases;
use testdb;
show tables;
drop table person;

문제 5. person 테이블을 삭제하고 확인

drop table person;
show tables;




실습환경 만들기

  • zerobase 사용(이동)
use zerobase;
  • 실습할 테이블 생성
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;

ORDER BY

  • ORDER BY : select 문에서 데이터를 특정 컬럼 기준으로 오름차순 혹은 내림차순 정렬하여 조회
    - ASC(Ascending) : 오름차순으로 정렬
    - DESC(Descending) : 내림차순으로 정렬
select column1, column2, ...
from tablename
order by column1, column2, ... ASC | DESC;

  • celeb 테이블에서 이름과 나이를 나이순으로 조회
 select NAME, AGE from celeb order by age asc;

  • celeb 테이블에서 이름과 나이를 나이의 역순(내림차순)으로 조회
select NAME, AGE from celeb order by age desc;

  • celeb 테이블에서 이름과 나이를 나이와 이름순으로 정렬하여 조회(ASC를 생략해도 기본은 오름차순 정렬)
 select NAME, AGE from celeb order by age, name;

  • celeb 테이블에서 이름과 나이를 나이의 역순으로 정렬한 뒤 이름순으로 정렬하여 조회
 select name, age from celeb order by age desc, name desc;

문제 1. celeb 테이블에서 이름, 생년월일, 성별, 소속자 데이터를 소속사 순으로 정렬하여 조회

select name, birthday, sex, agency from celeb order by agency;

문제 2. celeb 테이블에서 전체 컬럼을 소속사, 이름 순으로 정렬하여 조회

select * from celeb order by agency, name;

문제 3. celeb 테이블에서 이름, 나이, 직업, 소속사 데이터를 소속사 순, 나이 역순으로 정렬하여 조회

select name, age, job_title, agency from celeb orderby agency asc , age desc;

💻 출처 : 제로베이스 데이터 취업 스쿨

profile
#데이터분석 #퍼포먼스마케팅 #데이터 #디지털마케팅

0개의 댓글