사상 초강력 상용 SQL 문장 대전


 
사상 초강력 상용 SQL 문장 대전
DDL(Data Definition Language) 데이터 정의 언어
1. 조작 라이브러리
2. 조작표
DML(Data Manipulation Language) 데이터 작업 언어
1. insert into 추가
삭제
3. 업데이트 수정
DQL(Data Query Language) 데이터 쿼리 언어
1. 기본 키워드
2. 정렬 조회order by
3. 집합 함수: 한 열의 데이터를 하나의 전체로 삼아 세로로 계산한다.
그룹 조회grout by
페이지 조회
6. 내부 연결 조회:
1. 암시적 내부 연결:where 조건을 사용하여 쓸모없는 데이터 제거
 2.명시적 내부 연결
7. 외부 연결 조회
1. 왼쪽 외부 연결 - 왼쪽 테이블의 모든 데이터와 그 교차 부분을 조회한다.
 2.오른쪽 외부 연결 - 오른쪽 테이블의 모든 데이터와 교차 부분을 조회합니다.
8. 하위 질의: 질의에 중첩된 질의
   1.하위 조회의 결과는 단행으로 열거된 것이다
   2. 하위 질의의 결과는 여러 줄 단일 열입니다.
   3. 하위 질의의 결과는 여러 줄 여러 열입니다.
DCL(Data Control Language) 데이터 제어 언어
사용자 관리
사용자 추가
사용자 삭제
권한 관리
질의 사용 권한
권한을 주다
권한을 취소하다
창작이 쉽지 않습니다. 만약에 이 블로그가 당신에게 어느 정도 도움이 된다면 여러분은 댓글+좋아요를 눌러주세요.  
DDL(Data Definition Language) 데이터 정의 언어
1. 조작 라이브러리
--    
create database db1;
--        ,      
create database if not exists db1;
--        
show databases;
--              
show create database db1; 
--          
alter database db1 character set utf8; 
--      
drop database db1; 

2. 조작표
--   
create table student(
    id int,
    name varchar(32),
    age int ,
    score double(4,1),
    birthday date,
    insert_time timestamp
);

--      
desc   ;
--       SQL  
show create table   ;
--     
alter table    rename to     ;
--     
alter table    add        ;
--    
alter table    drop   ;
--    
drop table   ;
drop table  if exists    ;

DML(Data Manipulation Language) 데이터 작업 언어
1. insert into 추가
--       
insert into   (  1,  2,...  n) values( 1, 2,... n);
--     (       )
insert into    values( 1, 2,... n);
--       
insert into   (  1,  2) values( 1, 2);

삭제
--       
delete from    where     =  ;
--         
delete from   ;
--         (       ,           。)
truncate table   ;

3. 업데이트 수정
--        (      )
update    set    =  ;
--       
updata    set    =   where   = ;

DQL(Data Query Language) 데이터 쿼리 언어
검색어에 관한 문장이 매우 많으니, 이곳의 기초는 더 이상 소개하지 않겠습니다.주로 정렬 조회, 집합 함수, 모호 조회, 그룹 조회, 페이지 조회, 내부 연결, 외부 연결, 하위 조회를 소개한다.
1. 기본 키워드
 BETWEEN...AND와 IN(컬렉션)
--         20     30				
SELECT * FROM student WHERE age >= 20 &&  age <=30;
SELECT * FROM student WHERE age >= 20 AND  age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;
				
--     22 ,18 ,25    
SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
SELECT * FROM student WHERE age IN (22,18,25);

is null (null 값이 아님) 과 like (모호한 검색),distinct (중복 값 제거)
--         null
SELECT * FROM student WHERE english  IS NOT NULL;
	
 _:      
 %:      
--         ? like
SELECT * FROM student WHERE NAME LIKE ' %';
--             			
SELECT * FROM student WHERE NAME LIKE "_ %";				
--      3    
SELECT * FROM student WHERE NAME LIKE '___';					
--           
SELECT * FROM student WHERE NAME LIKE '% %';

--     DISTINCT           。
--   :SELECT DISTINCT     FROM    
SELECT DISTINCT NAME FROM  student ;

2. 정렬 조회order by
문법:order by 자구
order by 정렬 필드 1 정렬 방식 1 정렬 필드 2 정렬 방식 2...
참고: 여러 정렬 조건이 있는 경우 현재 모서리의 조건 값이 같아야 두 번째 조건이 판단됩니다.
--   
SELECT * FROM person ORDER BY math; --    
SELECT * FROM person ORDER BY math desc; --  

3. 집합 함수: 한 열의 데이터를 하나의 전체로 삼아 세로로 계산한다.
1.count: 개수 계산
2.max: 최대값 계산
3.min: 최소값 계산
4.sum: 계산 및
5.avg:평균수 계산
그룹 조회grout by
문법: 그룹 by 그룹 필드;
주의: 그룹 구성 후 조회하는 필드: 그룹 필드, 집합 함수
--       。     、       
SELECT sex , AVG(math) FROM student GROUP BY sex;

--       。     、       ,  
 SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;

--        。     、       ,     :    70   ,     
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;

 --        。     、       ,     :    70   ,     ,    。     2  
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
SELECT sex , AVG(math),COUNT(id)    FROM student WHERE math > 70 GROUP BY sex HAVING    > 2;

페이지 조회
    1. 문법: limit에서 시작하는 색인, 페이지당 조회 항목 수;    2. 공식: 시작 색인 = (현재 페이지 번호 - 1)* 페이지당 표시된 막대 3.limit은 MySQL'사투리'입니다.
--     3    

SELECT * FROM student LIMIT 0,3; --  1 

SELECT * FROM student LIMIT 3,3; --  2 

SELECT * FROM student LIMIT 6,3; --  3 

6. 내부 연결 조회:
   1. 어떤 표에서 데이터를 조회합니까
   2.조건이 뭐예요?
   3. 질의 필드
1. 암시적 내부 연결:where 조건을 사용하여 쓸모없는 데이터 제거
--         ,  。      
SELECT emp.name,emp.gender,dept.name FROM emp,dept WHERE emp.`dept_id` = dept.`id`;

SELECT 
    t1.name, --       
    t1.gender,--       
    t2.name --       
FROM
    emp t1,
    dept t2
WHERE 
    t1.`dept_id` = t2.`id`;

 2.명시적 내부 연결
--   : 
select      from   1 [inner] join   2 on   
--   :
SELECT * FROM emp INNER JOIN dept ON emp.`dept_id` = dept.`id`;   
SELECT * FROM emp JOIN dept ON emp.`dept_id` = dept.`id`; 

7. 외부 연결 조회
1. 왼쪽 외부 연결 - 왼쪽 테이블의 모든 데이터와 그 교차 부분을 조회한다.
--   :select      from  1 left [outer] join  2 on   ;
--   :
--         ,       ,       ,    ,        
SELECT  t1.*,t2.`name` FROM emp t1 LEFT JOIN dept t2 ON t1.`dept_id` = t2.`id`;

 2.오른쪽 외부 연결 - 오른쪽 테이블의 모든 데이터와 교차 부분을 조회합니다.
--   :
select      from  1 right [outer] join  2 on   ;
--   :
SELECT  * FROM dept t2 RIGHT JOIN emp t1 ON t1.`dept_id` = t2.`id`;

8. 하위 질의: 질의에 중첩된 질의
--            
-- 1            9000
SELECT MAX(salary) FROM emp;

-- 2       ,      9000 
SELECT * FROM emp WHERE emp.`salary` = 9000;

 --   sql       。      
SELECT * FROM emp WHERE emp.`salary` = (SELECT MAX(salary) FROM emp);

   1.하위 조회의 결과는 단행으로 열거된 것이다
하위 조회는 조건으로 연산자를 사용하여 판단할 수 있다.연산자: > = <<=
--               
SELECT * FROM emp WHERE emp.salary < (SELECT AVG(salary) FROM emp);

   2. 하위 질의의 결과는 여러 줄 단일 열입니다.
하위 조회는 조건으로 연산자 in을 사용하여 판단할 수 있다
--   '   ' '   '       
SELECT id FROM dept WHERE NAME = '   ' OR NAME = '   ';
SELECT * FROM emp WHERE dept_id = 3 OR dept_id = 2;

--    
SELECT * FROM emp WHERE dept_id IN (SELECT id FROM dept WHERE NAME = '   ' OR NAME = '   ');

   3. 하위 질의의 결과는 여러 줄 여러 열입니다.
하위 쿼리는 가상 테이블로 쿼리에 참여할 수 있다
--          2011-11-11             
--    
SELECT * FROM dept t1 ,(SELECT * FROM emp WHERE emp.`join_date` > '2011-11-11') t2 WHERE t1.id = t2.dept_id;

--      
SELECT * FROM emp t1,dept t2 WHERE t1.`dept_id` = t2.`id` AND t1.`join_date` >  '2011-11-11'

DCL(Data Control Language) 데이터 제어 언어
사용자 관리
사용자 추가
  :CREATE USER '   '@'   ' IDENTIFIED BY '  ';

사용자 삭제
  :DROP USER '   '@'   ';

권한 관리
질의 사용 권한
--     
SHOW GRANTS FOR '   '@'   ';
SHOW GRANTS FOR 'lisi'@'%';

권한을 주다
--     
grant      on     .   to '   '@'   ';

--            ,          
GRANT ALL ON *.* TO 'zhangsan'@'localhost';

권한을 취소하다
--     :
revoke      on     .   from '   '@'   ';
REVOKE UPDATE ON db3.`account` FROM 'lisi'@'%';

창작이 쉽지 않습니다. 만약에 이 블로그가 당신에게 어느 정도 도움이 된다면 여러분은 댓글+좋아요를 눌러주세요.

좋은 웹페이지 즐겨찾기