데이터베이스 만들기 ~ 테이블 만들기 ~ SQL - 데이터 작업 ~ 보기

5541 단어 데이터베이스

데이터베이스 만들기

create DataBase db_HXX
on
(
	name=HXX_Data,
	filename='D:\Data\HXX_Data.mdf',size=5,
	maxsize=15,
	filegrowth=2
)
log on
(
	name=HXX_LOG,
	filename='D;\Data\HXX_LOG.ldf',size=3,
	maxsize=10,
	fileGrowth=1
)

unlimited 설정 없음

테이블 생성

create table Student
(
	sno char(10) primary key,
	sfzh char(18) unique,
	cname varchar(16) not null,
	sex char(2) check(sex=' ' or sex=' '),
	dept varchar(30) default' ',
	birthday datetime,
        score float check(score between 0 and 100),
	polity char(8) check(polity=' ' or polity=' ' or polity=' ')
)

복합 키:consteaint pksnocname primary key(sno,cname);
외부 키:consteaint pksc foreign key(sno) references db_student.dbo.tb_student(sno) 키를 설정할 때 참고할 키가 있어야 합니다
 

검색


질의 기준
술어
비교(비교 연산자)
>,=,<=,!=,<>아니다,!>,!<
범위를 정하다
between a and b ,not between a and b
집합을 확정하다
in, not in 컬렉션 확인
문자 일치
like, not like 문자 일치
빈값
is null , is not null
다중 조건(논리적 술어)
and , or   
문자열에 포함할 수 있는 와일드카드
와일드카드
기능
인스턴스
%
0자 이상
'강%'가 강렬하면 임의의 문자열을 연결할 수 있습니다
_(밑줄)
문자
'강 '뒤에 두 글자밖에 없어요.
[  ]
범위의 문자를 나타냅니다.
[0~9] 0~9 사이.
[^ ]
더 이상 어떤 범위의 문자가 아니라는 것을 나타낸다
[^0~9] 더 이상 0~9 사이가 아니에요.
자주 사용하는 라이브러리 함수 및 기능
함수 이름
기능
AVG
열별 평균값
SUM
열에 따라 화합을 구하다
MAX
열의 최대치를 구하다
MIN
열의 최소값을 구하다
COUNT
열별로 개수를 집계하다
 

distinct 탈중


1. 별명 짓기

  • sno as학번
  • 학번 = sno
  • sno학번
  • 2.조합select sno+'('+sn+')'as학번 이름


    3. 문자열 구하기

  • where left(sn,8) ='20170114'문자열 왼쪽부터 반환하고 개수 문자열 지정
  • substring(sn, 6,2) ='14'문자열 캡처 6부터 2글자 문자열 지정
  • 4. 나이 구하기 year(getdate()) - year(birthday)


    5.select top n (n 개) * from 표 또는 top percent n (% n)


    6.like where name like'장%'성을 찾습니다.where name like'장 '두 글자를 한정하다


    7. In where banji in('14','15') 14 15반 찾습니다.

    use db_student17
    select * from tb_student where SUBSTRING(sno,7,2) in('14','15')

    8. is null


    9.order by 정렬where 후 asc 오름차순 (기본값) desc 내림차순

    select sno,sn,sex,SUBSTRING(sno,7,2) as  ,year(GETDATE())-year(birthday) as   from tb_student where SUBSTRING(sno,7,2) in('14') order by   asc  

    10. sum와 avg max min select sum(score), avg(score)from표where 조건


    11.count 총수 구하기

    use db_student17
    select count(*)from tb_student

     

    12.group by 그룹 조회

    use db_student17
    select  sno,count(*)from tb_score
    group by sno
    use db_Book
    select  CBS,COUNT(CBS)as   from tb_BookInfo 
    group by CBS having COUNT(CBS)>100

     
    각 반에 몇 명이 있는지 구하고, 순서를 낮추어 순서를 정하다.
    use db_student17
    select  SUBSTRING(sno,5,4) as   ,count(sno) as   from tb_student
    group by SUBSTRING(sno,5,4)
    order by   desc

     

    13.with rollup 분배 통계 출력 총계


     

    14. 멀티 테이블 조회(내부 연결)

    select sno,sc.cno,cn,score
    from tb_course c join tb_score sc
    on c.cno = sc.cno
    
    select sno,sc.cno,cn,score
    from tb_course c,tb_score sc
    where c.cno = sc.cno
    
    select s.sno,sn,cn,score
    from tb_student s,tb_score sc,tb_course c
    where s.sno = sc.sno and sc.cno = c.cno

    15. 멀티 테이블 조회(외부 연결)

    left outer join  * 
    right outer join * 
    full outer join  * 

    16. 하위 쿼리(네스트할 수 있음)

  •  =
  • in은any를 대체하여 임의의
  • 에 해당한다
  • ALL 전체
  • >
  • <

  • = 질의 결과가 하나일 경우 비교 연산자를 사용할 수 있습니다.

    use db_student17
    select sno,dept 
    from tb_student
    where dept=(select dept from tb_student where sn=’ ’)
    

    IN 질의 결과가 컬렉션으로 반환될 때


    예: 20세 이상의 모든 학우를 조회하다
    use db_student17
    select sn from tb_student where YEAR(birthday) in
    (select YEAR(birthday) from tb_student where YEAR(birthday)>20)

    All 모두 질의할 때


    예: 14반의 모든 학생보다 나이가 많은 학생을 조회하다
    use db_student17
    select sn from tb_student where YEAR(birthday) > all
    (select YEAR(birthday) from tb_student where SUBSTRING(sno,5,4)=0114)

    데이터 테이블에서의 데이터 조작


     

    insert into 표열value 값 열 값이 대응하고 () () 두 개의 기록


     

    insert into 테이블 열 select 삽입 결과 집합


     

    업데이트 테이블 set 필드 = 값where 조건 업데이트


     

    delete from 표 where 조건


     

    drop 삭제 테이블


    drop table 테이블 이름


    truncate table은 로깅에 기록되지 않습니다.


     
     
     


     

    뷰를 작성하려면 다음과 같이 하십시오.


    create view 보기 이름
    as
    select
     

    뷰를 수정하려면 다음과 같이 하십시오.


    alter view 보기 이름 (필드는 있어도 되고 없어도 됩니다)
    as
    select
     

    뷰를 삭제하려면 다음과 같이 하십시오.


    drop view 뷰 이름
     

    질의 뷰:


    조회와 같다
     

    뷰를 업데이트하려면 다음과 같이 하십시오.


    추가
    insert into 보기 이름 (필드)
    value(필드 값)
     
    수정
    업데이트 보기 이름
    set 필드 = 값
    where 조건
    삭제
    delete from 보기 이름
    where 조건
    색인 만들기
    create <> index 인덱스 이름 on 표 (열)
     
    색인 보기
    sp_helpindex t_course
     
    색인 삭제
    drop index t_course.qwe

    좋은 웹페이지 즐겨찾기