DDL 정의어

    트렌잭션이 발생하지 않고 즉시 실행된다.

    create, drop, alter

     

    DML 조작어

    select, delete, update 

     

    DCL 제어어

    grant, revoke


    query-0.sql

    # 서브쿼리 (subQuery)
    -- 	- 쿼리문 내에 또다른 쿼리문이 있는 형태
    --     - 사용가능한 위치 select/from/where/having/order by/
    -- 			      insert/update
    
    use world;
    -- 국가명이 'South Korea'의 국가코드를 찾아 이에 해당되는 도시의 수를 표시하시오.
    -- count(*)
    select count(*)
    from city
    where countrycode=(
    select code
    from country 
    where name = 'South Korea'
    );
    
    -- city 테이븛에서 국가코드가 'KOR'인 도시의 평균 인구 수보다 많은
    -- 도시들의 이름과 인구수를 표시하시오.(인구수가 많은순서로) 
    select name, Population
    from city
    where Population > (
    select avg(Population)
    from city
    where countrycode='KOR')
    order by Population desc;
    
    
    # 집계(집합) 함수 : aggregation function
    -- 테이블의 전체레코드를 대상으로 특정 컬럼을 적용해서 한개의 값을 리턴하는 함수
    -- count() : 레코드의 개수를 리턴하는 함수
    -- sum()/avg() : 컬럼값의 합/ 평균을 리턴.
    -- max()/min() : 컬럼값의 최소/최대값을 리턴.
    
    -- select aggregation_function(컬럼명) form 테이블명 where 조건명;
    
    -- city테이블에서 국가코드가 'KOR'인 도시의 수를 표시하시오.
    select count(*)
    from city
    where countrycode = 'KOR';
    
    desc city;
    -- city테이블에서 국가코드가 'KOR'인 도시들의 인구수 총합을 구하시오
    select sum(Population)
    from city
    where countrycode = 'KOR';
     -- city테이블에서 국가코드가 'KOR'인 도시들의 인구수 평균을 구하시오
    select avg(Population)
    from city
    where countrycode = 'KOR';
    -- city테이블에서 국가코드가 'KOR'인 도시들의 인구수중 최대값을 구하시오
    select max(Population)
    from city
    where countrycode = 'KOR';
    -- city테이블에서 국가코드가 'KOR'인 도시들의 인구수중 최소값을 구하시오
    select min(Population)
    from city
    where countrycode = 'KOR';

     

    question-7~14.sql

    -- 문제7
    -- 만들어놓은 mydb에 아래와 같이 테이블을 만들시오.
    -- 테이블명 : video 
    -- 열이름 :      데이터 형식         NLL허용        PK                기타
    -- video_id        int              X           O         자동증가(1에서부터시작) 
    -- title        varchar(20)         X           X         
    -- genre        varchar(8)          X           X
    -- star         varchar(10)         o           X
    use mydb;
    drop table if exists video;
    create table video(
    video_id int not null AUTO_INCREMENT primary key,
    title varchar(20) not null,
    genre varchar(8) not null,
    star varchar(10) 
    );
    
    -- 문제8
    -- 만들어진 video 테이블에 아래의 데이터를 추가하라.
    -- null, '태극기휘날리며', '전쟁', '장동건'
    -- null, '대부', '액션', null
    -- null, '반지의제왕', '액션', '일라이저우드'
    -- null, '친구', '액션', '유오성'
    -- null, '해리포터', '환타지', '다니엘'
    -- null, '형', '코미디', '조정석'
    insert into video values
    (null, '태극기휘날리며', '전쟁', '장동건'),
    (null, '대부', '액션', null),
    (null, '반지의제왕', '액션', '일라이저우드'),
    (null, '친구', '액션', '유오성'),
    (null, '해리포터', '환타지', '다니엘'),
    (null, '형', '코미디', '조정석');
    
    select *
    from video;
    
    -- 문제9
    -- video 테이블에서 star값이 없는 것만 출력하시오.
    select * 
    from video
    where star is null;
    
    -- 문제10
    -- video 테이블에서 장르가 액션인것만 출력하시오.
    select * 
    from video
    where genre = '액션';
    
    -- 문제11
    -- video 테이블에서 주인공이 유오성인 것만 삭제하시오,
    select *
    from video
    where star = '유오성';
    
    delete 
    from video
    where star = '유오성';
    
    select *
    from video;
    
    -- 문제12
    -- video 테이블에서 제목이 형인 것을 동생으로 바꾸시오.
    update video
    set title = '동생'
    where title = '형';
    
    select * from video;
    
    -- 문제13
    -- video 테이블에 있는 모든 데이터를 지우시오.
    delete from video;
    
    -- 문제14
    -- video 테이블을 제거하세요.
    drop table video;

     

    query-5(테이블복사, group by, having, 집계함수).sql

    -- 테이블을 복사하는 방법
    use sqldb;
    
    -- buy의 데이터 전부를 쿼리를 해서 새로운 테이블인 buy_copy로 복사함.
    drop table if exists buy_copy;
    create table buy_copy(
    	select *
        from buy
    );
    desc buy;
    desc buy_copy;
    
    -- 테이블 복사를 하게 되더라도, PK, FK등의 제약조건은 복사가 되지 않음.
    select *
    from buy_copy;
    
    -- 기본적 쿼리문 순서(매우 중요함)
    -- 무조건 아래와 같은 순서로 작성을 해야한다.
    -- select...
    -- from...
    -- where...
    -- group by...
    -- having...
    -- order by...
    

     

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading