사상 초강력 상용 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'@'%';
창작이 쉽지 않습니다. 만약에 이 블로그가 당신에게 어느 정도 도움이 된다면 여러분은 댓글+좋아요를 눌러주세요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.