ABOUT ME

-

Today
-
Yesterday
-
Total
-

  • SQL> 테이블만들기, 수정, 삭제
    프로그래밍 2008. 3. 24. 14:20

    테이블 만들기
    ceate table address    -- create table 테이블명
    (
    ID    varchar(20)    not null,    -- ID (컬럼명, 데이터형, null허용여부)
    Name    varchar(20)    not null,    -- 이름
    Email    varchar(200)    null,    -- 이메일
    Age    int    not null,    -- 나이
    BirthDay    datetime    not null    -- 생일
    )


    컬럼 추가하기
    alter table address    -- alter table 테이블명
    add sex char(1)    -- add 컬럼명 데이터형

    컬럼 삭제하기
    alter table address    -- alter table 테이블명
    drop column sex    -- drop column 컬럼명

    컬럼 데이터형 변경하기
    alter table address    -- alter table 테이블명
    alter column ID varchar(30)    -- alter column 컬럼명 데이터형


    데이터 추가하기(insert)
    ; 쿼리문을 실행하려면 항상 해당 데이터베이스에서 실행을 해야한다.
    ; use 데이터베이스이름 을 실행하게 되면 그 데이터베이스를 사용한다는 것.
    ; 실제 테이블의 데이터가 변경되므로 항상 주의를 기울여야한다.

    insert문
    insert into 테이블이름 (컬럼1, 컬럼2, ... ) values (값1, 값2, ... )
        -- into 생략가능
    ; insert 문을 사용하고 테이블 이름을 지정해준 후에 컬럼들과 그에 해당되는 값들을 지정해주는것.
    ; 문자열, 날짜 등의 데이터형은 앞뒤에 작은따옴표('')로 감싸 주어야한다.

    컬럼을 지정하지 않고 insert문 사용
    insert address values('값1', '값2', '값3', 값4, '값5')
    ; 컬럼을 생략하면 사용하기는 간편하지만 테이블의 컬럼을 추가, 삭제 또는 변경했을 경우에 오류를 발생할수있는 원인을 제공하기도 한다.

    컬럼을 지정하고 insert문을 사용
    ; 특정 테이블에만 데이터가 들어가는 경우 사용
    ; 데이터를 넣지 않는 칼럼은 null이 허용되거나 디폴트 값이 지정되어 있어야 한다.
    ; 컬럼과 데이터의 갯수가 같아야하며, 데이터형도 같아야한다.
    insert address (ID, Name, Email, Age, BrithDay)    -- insert address (컬럼1, 컬럼2, ... )
    values ('값1', '값2', '값3', 값4, '값5')    -- values (값1, 값2, ... )
    * null의 의미 ; null은 ''와 같이 비어 있는 문자열과는 다른것. 아무것도 없는 상태


    데이터 가져오기(select) - 데이터 검색
    select 컬럼1, 컬럼2, ...    -- 검색할 컬럼지정
    from 테이블이름    -- 검색할 테이블 지정
    where 검색조건    -- 검색할 테이블의 조건절을 지정
    order by 결과정렬    -- 검색한 결과를 정렬

    테이블의 모든데이터 가져오기(select *)
    select * from address    -- select * from 테이블이름
    ;ADO.NET에서의 쿼리문으로는 비추!

    컬럼을 지정해서 데이터 가져오기
    select ID, Name, Email
    from address    -- address테이블에서 ID, Name, Email 컬럼의 데이터를 가져온다.
    ; 사용할 컬럼만을 지정해서 데이터를 불러오는 것이 속도와 응용프로그램 개발시 편의면에서 좋다.

    특정 데이터 가져오기(where)
    ; 실무에서 가장 많이 사용
    ; 컬럼값을 연산자나 함수 등을 이용해서 원하는 데이터만 가져온다.
    ; 데이터를 추가, 수정 또는 삭제할 때에서 사용되는 부분이므로 정확히 알고 있어야 한다.

    - 비교연산자
    = 같다,  < 작다,  >크다,  >= 크거나같다,  <작거나같다,  <>같지 않다,  != 같지 않다,  !> 크지 않다,  !< 작지 않다
    ; 비교되는 데이터형은 같거나 서로 호환이 가능해야 한다.

    -- ID가 cuteguy인 데이터의 ID와 Name을 가져온다.
    select ID, Name
    from address
    where ID = 'cuteguy'   

     -- ID가 cuteguy인 데이터를 제외하고 가져온다.
    select ID, Name
    from address
    where ID <> 'cuteguy'   

    -- Name이 'ㄱ'보다 크고 'ㄴ'보다 작은 데이터, 즉, 'ㄱ'으로 시작하는 데이터 불러오기.
    select ID, Name
    from address
    where Name >'ㄱ' and Name <'ㄴ'

    - 범위 연산자(between)
    ; 'between A and B' A와 B 사이의 값을 검색하는것(A보다는 크고 B보다는 작은 값을 가지는 데이터)
    ; 숫자, 문자, 날짜 등의 데이터형에서 아주 유용하게 사용

    -- between을 사용해서 Name이 'ㄱ'보다 크고 'ㄴ'보다 작은 데이터 불러오기
    select ID, Name
    from Address
    where Name between 'ㄱ' and 'ㄴ'

    - 특정 문자열 찾기(like)
    ; %<-와일드카드!
    ; 뒤에만 '%'를 넣었을 경우 방으로 시작하는 데이터를 검색
    ; 앞에만 넣으면 방으로 끝나는 데이터 검색

    -- Name 에 '방'이라는 문자가 들어있는 데이터 불러오기
    select ID, Name, Email
    from address
    where Name like '%방%'

    -- Name 에 '방'이라는 문자가 들어있지 않은 데이터 불러오기
    select ID, Name, Email
    from address
    where Name not Like '%방%'

    - 논리 연산자(and, or, not)
    ; 우선순위 --> 괄호로 묶인것 > not > and > or
    ; 연산자 우선 순위에 따라 결과가 다르게 나타날 수 있으므로 주의해서 사용

    -- 연산자 우선 순위1 ;Age가 30이 아니거나 ID가 'guy'로 끝나고 Name이 '개'로 끝나는 데이터 찾기
    select ID, Name
    from address
    where not Age = 30 or ID like '%guy%' and Name like '%개'
    결과 cuteguy(ID) 깜찍이(Name)

    -- 연산자 우선 순위2 (괄호를 사용한 경우)
    select ID, Name, Age
    from address
    where (not Age = 30 or ID like '%guy') and Name like '%개'
    결과값 없음

    - 데이터 정렬하기(order by)
    -- Name을 기준으로 데이터를 정렬해서 불러오기
    select ID, Name, Email
    from address
    order by Name asc    -- desc키워드는 역순으로 출력

    데이터 수정하기(update)
    ; 지정한 테이블의 조건을 만족하는 레코드의 컬럼을 지정한 값으로 수정
    ; where조건절을 사용하지 않을경우 테이블에 있는 모든 데이터가 변경된다. 조심~!
    ; select문을 사용해서 수정을 원하는 데이터들이 정확히 나왔을때 where문을 그대로 사용하는 것도 좋은 방법이다.

    update 테이블이름
    set 컬럼이름1 = 값1, 컬럼이름2 = 값2, ...
    where 조건절

    데이터 삭제하기(delete)

    delete from 테이블이름
    where 조건절

    -- name에 '개'가 들어가는 레코드를 삭제합니다.
    delete address
    where name like '%개%'

    댓글 0

Designed by Tistory.