[개인 노트] SQL 조작 기초

1. 메 인 키 는 논리 적 메 인 키 와 업무 메 인 키 로 나 뉜 다.업무 키: 신분증, 은행 카드 등 진실 한 의 미 를 가 진 것 은 변화 하면 유지 하기 어렵다.논리 키: 실제 적 인 의미 가 없고 현재 데이터 테이블 에 열 거 된 위 치 를 표시 하기 위 한 유일한 표지 입 니 다.수 동 으로 편집 할 수 없습니다. 특별한 경우 에는 제외 합 니 다.모든 표 는 표지 열 을 추천 합 니 다. 논리 적 인 메 인 키 를 추천 합 니 다. 모든 표 는 메 인 키 열 을 추천 하고 표 지 · 메 인 키 표지 열 을 설정 합 니 다. 데이터 가 삭제 되 더 라 도 원래 의 표지 에 따라 증가 합 니 다.
명령 방식 으로 데이터베이스 만 들 기
create database MySchool – database name on (name = 'MySchool data', – database name filename = 'd: \ MySchool data. mdf', – 물리 파일 이름 size = 5mb, – 초기 크기 maxsize = 10mb, – 최대 파일 크기 filegrowth = 15% – 주 파일 성 장 률) 로그 온(name = 'MySchool log', – 로그 파일 이름 filename = 'MySchool log. ldf, – 로그 물리 파일 이름 size = 2mb, maxsize = 4mb, filegrowth = 1mb) go
명령 방식 으로 표를 만 듭 니 다. - 표를 만 들 위 치 를 먼저 선택해 야 합 니 다.
형식: 열 형식 표지 메 인 키 가 빈 id INT IDENTITY (1, 1) create table Student (id INT IDENTITY (1, 1) 미리 키, name NVARCHAR (16) NOT NULL, age INT NOT NULL) 로 허용 되 는 지 여부
DML 데이터베이스 조작 언어
· 첨삭 조 정 · 데이터 추가 INSERT INTO 표 명 (... 열 명) VALUES (... 삽입 할 데이터) · INSERT INTO 표 명 VALUES (... 삽입 할 데이터) – 완전 삽 입 · INSERT INTO 표 명 (... 삽입 할 열 명) VALUES (... 대응 하 는 데이터) – 선택적으로 삽입
      :
        1.       ,bit    "0/1"  True/False
        2.           ,                 , ‘2014-10-10’
        3.INSERT         VALUE       
        4.          (       ,SET IDENTITY_INSERT    ON)(    SET IDENTITY_INSERT    OFF)
        5.    ‘ ’        
        6.     ,             ,           
        7.      NULL             ,             
        8.               UNICODE              N    ,             
        9.INSERT INTO   (  ) VALUES(DEFAULT)
            VALUES        DEFAULT  ,    
        10.INSERT INTO Student(Name) VALUES(' '' ')
                         ,                (    )


·    
    DELETE FROM Student    --         
    TRUNCATA TABLE Studeng  --    (      )
        ·           ,    DELETE         ,    TRUNCATE         。
    DROP TABLE Student   --           (  )

·    
    UPDATE    SET   1=  1,  2=  2··· WHERE   1=  1( AND   2=  2 AND   3=  3 ···)( OR   2=  2 ···)( AND   2=  2 OR   3=  3)
        UPDATE Student SET age=age+1
        UPDATE Student SET age+=1
        update Student set Phone='10010' where name='  ' and Gender=1 or name='  6'
        UPDATE Student SET Address='  ' WHERE Address IS NULL
        WHERE Address IS NOT NULL
        WHERE Address=' '
        WHERE Address

      :
        1. AND     OR   
        2. SET            
        3. WHERE              :(||)OR 、 (&&)AND 、 (!)NOT 、 < 、 > 、 >= 、 <= 、 <>( !=)(  )  

  :
        :      
        :       
        :    ,    ,       
        :     ,     
        :        。           -CHECK  
        :       ,           

·    
    select   1( as    ),  2( as    )··· from    where   
    select   1( as '   '),  2( as '   ')··· from    where   
    select   1(    ),  2(    )··· from    where   

    select 1+1  --      
    SELECT GETDATE()  --               

    -TOP
        --                  
        select top 10 * from Student  --  Student   10      
        select top 10 Name,Gender,Age from Student  --  Student   10      
        select top 10 percent * from Student  -- Student     10%   ,           ,  21/10=2.1=>3

    -ORDER BY   (    ,        )
        --                ,              
        --order by    desc  :         
        --order by    asc   :         
        select top 10 * from Student order by id desc

    -DISTINCT
        --              。                      。
        select distinct Name,Gender,Age from Student  --                。

· 취 합 함수 MAX (열 이름) – 한 줄 의 데이터 MIN (열 이름) 을 되 돌려 줍 니 다 – 한 줄 의 데이터 AVG (열 이름) 를 되 돌려 줍 니 다 – 한 줄 의 데이터 SUM (열 이름) 을 되 돌려 줍 니 다 – 한 줄 의 데이터 COUNT (열 이름) 를 되 돌려 줍 니 다 – 선별 에 성공 한 데 이 터 를 되 돌려 줍 니 다. COUNT (ID) 를 사용 하 는 것 을 권장 합 니 다.
 :1.     NULL    。        NULL,COUNT(*)       、      。
    2.           ,【select           from   】  【select * from Student】      。

 :select max(age) from Student  --         
    select min(age),max(age),avg(age),sum(age) from Student  --      
    select count(*) from Student where age=10  --            

· 정렬 규칙 - 선후 순 서 는 숫자, 자모, 사나이 (병 음)
· WHERE - < > < = > = < >! = 등 판단 기호
- BETWEEN...AND... (       ,        ,      )
    -   BETWEEN 20 AND 30          20 30 
    -SELECT * FROM STUDENT WHERE AGE BETWEEN 20 AND 30

- IN (  1,2...) (                 )
    -SELECT * FROM STUDENT WHERE CID IN (1,2)   SELECT * FROM STUDENT WHERE CID=1 OR CID=2
    -SELECT * FROM dbo.Student WHERE Gender IN (' ',' ')

 :1.BETWEEN and               ,     > and <       

· 퍼 지 조회 - 시스템 에서 정 의 된 일치 부 호 를 사용 하여 정 의 된 규칙 에 따라 데 이 터 를 선별 합 니 다 - 일치 부:% [] ^ 는 하나의 임 의 문자% 가 0 개 또는 여러 개의 임 의 문 자 를 대표 합 니 다 [] 는 한 문 자 를 대표 하 는 수치 구간 - 대소 문자 구분 없 음 ^ 배합 []이 구간 에 속 하지 않 음 을 표시 합 니 다. - 이 일치 문자 데이터 베 이 스 는 호 환 되 지 않 습 니 다. SQL SERVER 는 사용 할 수 있 습 니 다. 다른 데이터 베 이 스 는 NOT LIKE 를 사용 해 야 합 니 다.
 :1.             
    2.             []     , '^'  ,   '^' []          '^'  

-  :SELECT * FROM STUDENT WHERE NAME LIKE '% %' --          ' '   
       SELECT * FROM STUDENT WHERE NAME LIKE ' %'  --       ' '  
       SELECT * FROM STUDENT WHERE NAME LIKE '_A%'  --             'A'  
       SELECT * FROM STUDENT WHERE NAME LIKE '%[A-Z]%]  --              
       SELECT * FROM STUDENT SHERE NAME LIKE '%[0-9]%'  --            
       SELECT * FROM STUDENT WHERE NAME LIKE '%[0-9(,)A-Z]%'  --
       SELECT * FROM STUDENT WHERE NAME LIKE '%[^0-9A-Z]%'  --              
       SELECT * FROM STUDENT WHERE NAME NOT LIKE '%[0-9A-Z]%'  --  ,              
         :
           SELECT * FROM STUDENT WHERE NAME LIKE '%[%]%'  --        '%'  
           SELECT * FROM STUDENT WHERE NAME LIKE '%[_]%'  --        '_'  
           SELECT * FROM STUDENT WHERE NAME LIKE '%['']%'  --               
           SELECT * FROM STUDENT WHERE NAME LIKE '%['']%'  --  
           SELECT * FROM STUDENT WHERE NAME LIKE '%^%'  --         '^'  

· 빈 값 판단 - SELECT * ADRESS 가 NULL 인 STUDENT 에서 - SELECT * ADRESS 가 NULL 이 아 닌 STUDENT 에서
· ISNULL () 함수 - 예 를 들 어 SELECT NAME, ISNULL (AGE, AGE 형식 에 맞 는 다른 값) FROM STUDENT WHERE... - 조회 결과 AGE 의 값 이 'NULL' 이면 교체 할 값 으로 표 시 됩 니 다.
· 형식 변환 - CAST (AGE AS NVARCHAR (10)) – INT 형식 이 었 던 AGE 를 NVARCHAR (10) 형식 으로 변환 - CONVERT (INT, '123') – 문자열 '123' 을 INT 형식 으로 변환 -
· GROUP BY CAST (EXPRESSION AS DATA TYPE) CONVERT (DATA TYPE, EXPRESSION, [STYLE]) - 특정한 데이터 에 따라 그룹 을 나 누고 되 돌아 오 는 데이터 시트 의 한 줄 은 한 그룹 을 대표 하 며 취 합 함수 에 맞 춰 사용 합 니 다. - 예 를 들 어 SELECT GENDER, MAX (AGE), MIN (AGE), SUM (AGE)FROM STUDENT GROUP BY GENDER SELECT * FROM STUDENT GROUP BY GENDER - 주:
-HAVING
    -               。      GROUP BY           
    -  :SELECT AGE,COUNT(ID) FROM STUDENT GROUP BY AGE HAVING AGE>25
           SELECT AGE,COUNT(ID) FROM STUDENT GROUP BY AGE HAVING COUNT(ID)>1

· SQL 문장의 실행 순서 1. SELECT - > DISTINCT - > TOP 2. FROM 표 3. WHERE 조건 - 형성 결과 집 4. GROUP BY 열 5. HAVING 선별 조건 6. ORDER BY 열
'UNION 공동 조회 - 1. 두 결과 집합 은 같은 열 수 를 가 져 야 합 니 다. 2. 열 은 같은 데이터 형식 (최소 암시 적 변환 가능) 을 가 져 야 합 니 다. 3. 최종 출력 된 집합의 열 이름 은 첫 번 째 결과 집합의 열 이름 으로 정 해 집 니 다.
-SELECT * FROM STUDENT WHERE AGE>25
 UNION
 SELECT * FROM STUDENT WHERE AGE<30
 UNITON
 ...
 (         ,            )

 -SELECT * FROM STUDENT WHERE AGE>25
 UNION ALL
 SELECT * FROM STUDENT WHERE AGE<30
 UNITON ALL
 ...
 (         ,           )

· 일괄 삽입 = 삽입 문 + 결과 집 - 결과 집 을 값 으로 데이터베이스 에 삽입 합 니 다. 결과 집의 열 수, 유형 은 모두 같 아야 합 니 다. INSERT INTO STUDENT (STUNO, ENGLISH, MATH) SELECT 1, 80, 100 UNION SELECT 1, 80, 100 UNION SELECT 3, 50, 59 UNION ALL SELECT 4, 66, 89 UNION SELECT 5, 59, 100
 -       ,      
    Select * into Score2 from Score where 1<>1

· 문자열 함수 - LEN (STRING) 계산 문자열 의 문자 갯 수 - DATALENGTH (STRING) 계산 문자열 의 바이트 길이 - LOWER (STRING) 문자열 을 소문 자로 변환 - UPPER (STRING) 문자열 을 대문자 로 변환 - LTRIM (STRING) 문자열 왼쪽 의 공백 문자 제거 - RTRIM (STRING) 문자열 오른쪽 공백 문자 제거 - LEFT (STRING, LENGTH)왼쪽 에서 부터 문자열 을 가 져 오 는 LENGTH 길이 의 문자열 - RIGHT (STRING, LENGTH) 오른쪽 에서 부터 문자열 을 가 져 오 는 LENGTH 길이 의 문자열 - SUBSTRING (STRING, START NUM, LENGTH) 문자열 에서 START NUM 문자 부터 LENGTH 문 자 를 가 져 옵 니 다.
날짜 함수 - GETDATE () 가 현재 날짜 - DATEDD (PART NAME, NUM, DATE) 를 얻 고 DATE 에 NUM 을 추가 하 는 시간 예 를 들 어 SELECT DATEADD (YEAR, 2, GETDATE () SELECT DATEADD (MONTH, 2, GETDATE ()) SELECT DATEADD (DAY, 2, GETDATE () SELECT DATEADD (HOUR, 2, GETDATE ())) SELECT DATEADD (HOUR, 2, GETDATE ()).... - DATEDFF (DATE DAME, START DATE, END DATE, END DATE, DATE, END DATE,........ -).DATE NAME 를 시간 단위 로 하 는 두 시간의 차 이 를 예 로 들 면 SELECT DATEDIFF (MINUTE, GETDATE (), DATEADD (YEAR, 2, GATDATE ())) - DATEPART (DATE) 가 한 날 짜 를 얻 는 특정한 부분, 예 를 들 어 SELECT DATEPART (YEAR, GETDATE ()) SELECT DATEPART (MONTH, GETDATE ()) SELECT DATEPART (HOUR, GETDATE () - YEAR (DATE) - YEAR (DATE) 이 얻 은 해 - MONTH, GETDATE ()) SELECT DATEPART (HOUR, GETDATE () - YEAR () - YEAR (DATE) 이 얻 은 해 - MONT(DATE)취득 일 월 - DAY (DATE) 취득 일
· 절대 값 ABS (수치)
【 고급 운용 】 - INSERT 1. INSERT 문장의 VALUES 앞 에 OUTPUT INSERTED. 열 명 을 추가 하면 추가 데이터 의 열 명 치 를 얻 을 수 있 습 니 다. 일반적인 INSERT 구문 에 비해 OUTPUT 를 사용 할 때 열 명 치 를 되 돌려 줍 니 다. @ IDENTITY 와 유사 합 니 다.
- DELETE 1. DELETED. 열 이름, WHERE 앞에서 사용 하면 INSERTED. 열 이름과 같은 효과 가 있 습 니 다. (여러 줄 을 삭제 하면 여러 값 을 되 돌려 줍 니 다.)
존재 하 는 표 의 열 에 기본 값 제약 조건 을 추가 합 니 다 ALTER TABLE [표 이름] ADD CONSTRAINT [제약 이름] DEFAULT ([기본 값]) FOR [열 이름]

좋은 웹페이지 즐겨찾기