데이터를 추가, 삭제, 수정 및 확인하는 MySql

SQL 소개

SQL 언어는 데이터베이스 쿼리 및 프로그래밍 언어입니다. 주로 데이터 액세스, 데이터 쿼리, 데이터 업데이트 및 관계형 데이터베이스 시스템 관리에 사용됩니다. SQL 언어는 1975 년에서 1979 년 사이에 IBM에서 개발했으며 주로 IBM 관계형 데이터베이스 프로토 타입 시스템 R에서 사용됩니다. 1980 년대에 SQL 언어는 ANSI (American National Standards Institute)와 SO (International Organization for Standardization)에서 관계형 데이터베이스 언어의 표준으로 채택되었습니다.

SQL 언어는 세 부분으로 나뉩니다.

  • 데이터 정의 언어 (DDL이라고하는 데이터 정의 언어)
  • 데이터 조작 언어 (DML)
  • 데이터 제어 언어 (DCL이라고하는 데이터 제어 언어).

DDL 문 : 데이터 정의 언어는 주로 데이터베이스, 테이블, 뷰, 인덱스 및 트리거를 정의하는 데 사용됩니다. CREATE 문, ALTER 문 및 DROP 문 포함. CREATE 문은 주로 데이터베이스 생성, 테이블 생성 및 뷰 생성에 사용됩니다. ALTER 문은 주로 테이블의 정의를 수정하고 뷰의 정의를 수정하는 데 사용됩니다. DROP 문은 주로 데이터베이스 삭제, 테이블 삭제 및 뷰 삭제에 사용됩니다.

DML 문 : 데이터 조작 언어는 주로 데이터 삽입, 데이터 쿼리, 데이터 업데이트 및 데이터 삭제에 사용됩니다. INSERT 문, SELECT 문, UPDATE 문 및 DELETE 문이 포함됩니다. INSERT 문은 데이터 삽입에 사용되며 SELECT 문은 데이터 쿼리에 사용되며 UPDATE 문은 데이터 업데이트에 사용되며 DELETE 문은 데이터 삭제에 사용됩니다.

DCL 문 : 데이터 제어 언어는 주로 사용자의 액세스 권한을 제어하는 ​​데 사용됩니다. GRANT 문 및 REVOKE 문 포함. GRANT 문은 사용자에게 권한을 추가하는 데 사용되며 REVOKE 문은 사용자의 권한을 회수하는 데 사용됩니다.

데이터베이스 관리 시스템은 이러한 SQL 문을 통해 데이터베이스의 데이터를 조작 할 수 있습니다. 응용 프로그램에서 SQL 문을 통해 데이터를 조작 할 수도 있습니다. 예를 들어, Java 언어로 SQL 문을 임베드 할 수 있습니다. Java 언어를 실행하여 SQL 문을 호출하면 데이터베이스에 데이터를 삽입하고 데이터를 쿼리 할 수 ​​있습니다. SQL 문은 C # 및 PHP와 같은 프로그래밍 언어에 포함될 수도 있습니다.

데이터
삽입 지정된 열에 데이터 삽입
테이블에 삽입 (열 1, 열 2 ...) 값 (값 1, 값 2 ...);
값이 할당되지 않은 필드의 경우 데이터베이스 시스템에서 기본값을 삽입합니다. 그들을 위해. 이 기본값은 테이블이 생성 될 때 정의됩니다. 기본값이 정의되어 있지 않으면 NULL입니다.

모든 열에 데이터
삽입 테이블 값에 삽입 (값 1, 값 2 ...);


테이블 (열 1, 열 2 ...) 값 (값 1, 값 2 ...), (값 1, 값 2 ...), (값 1, 값 2 ...)에 여러 행 삽입 합니다. ) ...;

연습 : 다음 세 개의 테이블을 만들고 데이터를 추가합니다. [중요, 완료해야합니다. 그렇지 않으면 후속 과정을 계속할 수 없습니다.]
여기에 사진 설명 삽입

쿼리 데이터

  • 단일 열
    SELECT 열 이름 FROM 테이블을 쿼리 합니다.

  • 직원의 이름을 쿼리합니다.
    SELECT ename FROM emp;

  • 여러 열 쿼리
    SELECT column 1, column 2, column 3 ... FROM table;

  • 직원의 이름과 직업을 쿼리합니다.
    SELECT ename, job FROM emp;

  • 모든 열 쿼리
    SELECT * FROM table;

  • 모든 직원 정보 쿼리
    SELECT * FROM emp;

  • 중복 데이터 제거
    SELECT DISTINCT 열 1, 열 2 ... FROM table;

  • emp 테이블에 어떤 유형의 작업이 있는지 쿼리
    SELECT DISTINCT job FROM emp; 쿼리
    의 네 가지 산술 연산
    Mysql은 쿼리 [+,-, *, /]에서 직접 네 가지 산술 연산을 지원 합니다 .

  • 각 직원의 연봉 쿼리
    SELECT ename, sal * 12 FROM emp;

  • Query alias
    Select column 1 AS alias 1, column 2 alias 2… FROM table;

  • 각 직원의 연봉 쿼리
    SELECT ename name, sal * 12 AS Annual salary FROM emp;

  • 정렬 쿼리
    SELECT * FROM 테이블 ORDER BY 열 1 ASC, 열 2 DESC ...

  • 직원의 이름과 급여를 쿼리하고 급여의 내림차순으로 정렬
    SELECT ename, sal FROM emp ORDER BY sal DESC;

  • 여러 필드로 정렬 : 직원의 이름, 입력 날짜 및 급여를 급여의 오름차순, 입력 날짜의 오름차순으로
    쿼리 SELECT ename, emp.HIREDATE, sal FROM emp ORDER BY sal ASC, emp.HIREDATE ASC;

  • 페이징 쿼리
    SELECT * FROM table LIMIT start, pagesize;

  • 직원 테이블
    SELECT ename, emp.HIREDATE, sal FROM emp LIMIT 3 의 처음 세 레코드를 쿼리합니다 . – 처음 세 레코드를 가져옵니다.

  • 5 번째부터 시작하여 직원 테이블 중간에있는 세 개의 레코드를 쿼리하고
    SELECT ename, emp.HIREDATE, sal FROM emp LIMIT 4,3을 사용합니다. – 5는 행 번호이고 행 번호는 0부터 시작합니다.

  • 5 번째부터 시작하여 급여의 오름차순으로 직원 테이블 중간에있는 10 개의 레코드를 쿼리합니다.
    SELECT ename, emp.HIREDATE, sal FROM emp ORDER BY sal LIMIT 5,10;

  • 완전한 컬럼 이름을 사용하여
    SELECT 테이블 1 을 조회 하십시오. 컬럼 1, 테이블 1. 컬럼 2 ... FROM 테이블;

  • 직원 이름 및 급여 쿼리
    SELECT emp.ename, emp.sal FROM emp;

  • 조회 테이블 별칭 쿼리
    SELECT a. 열 1, a. 열 2 ... FROM 테이블 a;

  • 직원의 이름과 급여 쿼리
    SELECT e.ename, e.sal FROM emp e;
    WHERE 절
    Select * from table where conditions order by column1…;
    여기에 사진 설명 삽입

비교 연산자를 사용하여 쿼리

  • 직원 번호가 7566 인 직원 정보 쿼리
    SELECT * FROM emp e WHERE e.EMPNO = 7566;

  • 영업 사원이 아닌 직원에 대한 쿼리 정보
    SELECT * FROM emp e WHERE e.JOB! = 'SALESMAN';
    SELECT * FROM emp e WHERE e.JOB <> 'SALESMAN';

  • 급여가 3200 미만인 직원에 대한 쿼리 정보
    SELECT * FROM emp e WHERE e.SAL <3200;

  • 급여가 3200보다 큰 직원에 대한 쿼리 정보
    SELECT * FROM emp e WHERE e.SAL> 3200;

  • 급여가 2000 이하인 직원에 대한 쿼리 정보
    SELECT * FROM emp e WHERE e.SAL <= 2000;

  • 급여가 2000 이상인 직원에 대한 쿼리 정보
    SELECT * FROM emp e WHERE e. SAL> = 2000,
    범위 쿼리 수행

  • 급여가 2000-3000 사이 인 직원에 대한 쿼리 정보
    SELECT * FROM emp e WHERE e.SAL BETWEEN 2000 AND 3000;
    null / non-null 쿼리

  • 보너스
    SELECT * FROM emp e WHERE e. COMM IS NOT NULL;

  • 보너스없이 직원 정보 쿼리
    SELECT * FROM emp e WHERE e. COMM IS NULL;
    다중 조건 쿼리 -AND

  • 영업 사원 중 임금이 1200 이상인 직원에 대한 쿼리 정보
    SELECT * FROM emp e WHERE e.SAL> 1250 AND e.JOB = 'salesman';

  • 영업 사원 중 임금이 1200 명 이상인 사원의 정보를 조회합니다.
    SELECT * FROM emp e WHERE e.SAL> 1250 AND e.JOB = 'salesman'AND e.HIREDATE < '1981-5-1';
    다중 조건 조회 -또는

  • 급여가 4500 이상이거나
    영업사 원인 직원에 대한 쿼리 정보 SELECT * FROM emp e WHERE e.SAL> 4500 OR e.JOB = 'salesman';


  • 7566, 7788, 7956 세 직원의 정보를 쿼리 SELECT * FROM emp e WHERE e.EMPNO = 7566 OR e.EMPNO = 7788 OR e.EMPNO = 7839;
    IN 키워드 쿼리

  • 7566, 7788, 7956
    SELECT * FROM emp e WHERE e.EMPNO IN (7566,7788,7839,777);
    NOT 키워드 쿼리 의 세 직원의 정보를 쿼리합니다.

  • 쿼리는 7566, 7788, 7956
    SELECT * FROM emp e WHERE e. EMPNO NOT IN (7566, 7788, 7839);
    퍼지 쿼리 의 세 직원의 정보가 아닙니다 .

  • 이름에서 A를 사용하여 직원 정보를 쿼리합니다.
    SELECT * FROM emp e WHERE e. ENAME LIKE '% a %';

  • 이름이 A
    SELECT * FROM emp e WHERE e. ENAME LIKE '% a'로 끝나는 직원 정보를 쿼리합니다 .

  • 이름에서 A로 시작하는 직원 정보 쿼리
    SELECT * FROM emp e WHERE e. ENAME LIKE'a % ';

  • 두 번째 문자에서 이름이 A 인 직원 정보를 쿼리합니다.
    SELECT * FROM emp e WHERE e. ENAME LIKE'_a % ';

  • 세 번째 문자에서 이름이 A 인 직원 정보를 쿼리합니다.
    SELECT * FROM emp e WHERE e. ENAME LIKE '__ a %';

  • 두 번째 문자로 이름이 _ 인 직원의 정보를 쿼리
    SELECT * FROM emp e WHERE e. ENAME LIKE ' / %'ESCAPE '/';

  • 결합 된 쿼리 결합 결과 세트

  • 급여가 1200 이상인 직원의 정보를 쿼리합니다
    SELECT ename, sal FROM emp e WHERE e. SAL> 1200;

  • 급여가 3000 이상인 직원의 정보를 쿼리
    SELECT ename, sal FROM emp e WHERE e. SAL> 3000;

  • 결과 집합을 결합합니다. 중복 데이터 제거
    SELECT ename, sal FROM emp e WHERE e.SAL> 1200
    UNION
    SELECT ename, sal FROM emp e WHERE e.SAL> 3000;

  • 결합 된 결과 집합 : 중복 데이터를 제거하지 마십시오
    SELECT ename, sal FROM emp e WHERE e.SAL> 1200
    UNION ALL
    SELECT ename, sal FROM emp e WHERE e.SAL> 2000 ORDER BY sal;

  • 그룹화 기능 (집계 기능)
    여기에 사진 설명 삽입

  • 합계 함수 SUM () : 모든 임금의 합계 찾기
    SELECT SUM (sal) FROM emp;

  • 부서 20에서 임금의 합계를 구하십시오
    SELECT SUM (sal) FROM emp WHERE emp.DEPTNO = 20;

  • 평균 함수 AVG () : 모든 사람의 평균 급여를 찾습니다.
    SELECT AVG (sal) FROM emp;

  • 부서 20의 평균 급여 찾기
    SELECT AVG (sal) FROM emp WHERE emp.DEPTNO = 20;

  • 최대 값 함수 찾기 MAX () : 최고 급여 쿼리
    SELECT MAX (sal) FROM emp;

  • 부서 20의 최대 급여 쿼리
    SELECT MAX (sal) FROM emp WHERE emp.DEPTNO = 20;

  • 최소값 찾기 함수 MIN () : 최저 임금 쿼리
    SELECT MIN (sal) FROM emp;

  • 부서 20의 최저 임금 쿼리
    SELECT MIN (sal) FROM emp WHERE emp.DEPTNO = 20;

  • 총 행 수를 찾는 함수 count () : 회사에 몇 명의 직원이 있는지 쿼리
    SELECT COUNT (empno) FROM emp;

  • 20 부서의 사람 수를 쿼리합니다
    SELECT COUNT (empno) FROM emp WHERE emp.DEPTNO = 20;

그룹 쿼리

  • 각 부서의 최저 임금 쿼리
    SELECT deptno, MIN (sal) xyz FROM emp GROUP BY deptno;
  • 각 부서의 최대 급여 쿼리
    SELECT deptno, MAX (sal) xyz FROM emp GROUP BY deptno;
  • 각 부서의 인원 수 쿼리
    SELECT deptno, COUNT (empno) xyz FROM emp GROUP BY deptno;
  • 각 부서의 각
    직업 범주에 몇 명의 사람이 있는지 쿼리 SELECT deptno, job, COUNT (empno) FROM emp e GROUP BY e.DEPTNO, e.JOB;
  • 각 부서의 최저 임금 및 부서 번호를 쿼리합니다.
    SELECT deptno, MIN (sal) FROM emp e GROUP BY e.DEPTNO;


-그룹 기능 실습 : 비영업 직원의 직무 명과 같은 직무에 종사하는 직원의 월 임금 합계를 표시합니다. SELECT e.JOB, SUM (sal) FROM emp e WHERE e.JOB <> 'salesman'GROUP e.JOB에 의해;

  • 그룹화 쿼리 : 그룹화 조건 필터링
    HAVING 절을 사용하여 그룹화 후 데이터를 필터링합니다.
  • 비영업 직원의 직위와 같은 직무에 종사하는 직원의 월 임금 합계를 보여줍니다.
  • 그리고 같은 직업에 대한 총 월급이 5000 이상이고, 그 결과가 월급의 오름차순으로 정렬되는 것을 만족시킬 필요가 있습니다. 첫 번째 레코드를 꺼내십시오.
    SELECT e.JOB, SUM (sal) sum FROM emp e WHERE e.JOB <> 'salesman'GROUP
    BY e.JOB HAVING SUM (sal)> 5000 ORDER BY sum DESC LIMIT 1;

작은 요약 :

  • SQL 문 시퀀스 :
    select column 1, column 2 ... from tableName [WHERE clause] [GROUP BY clause] [HAVING clause] [ORDER BY clause] [limit x, y]
    Delete data
    format : DELETE FROM tableName [WHERE condition] ;

  • 조건으로 삭제하거나 그렇지 않으면 전체 테이블
    DELETE FROM salgrade 의 데이터를 삭제합니다 .

  • 번호가 7369 인 직원을 삭제합니다.
    DELETE FROM emp WHERE empno = 7369;

  • 7521 또는 부서 20의 직원 삭제
    emp에서 삭제 WHERE empno = 7521 OR deptno = 20;

  • 정말로 테이블의 데이터를 비우려면 잘린 테이블을 더 빨리 사용하십시오
    . TRUNCATE emp;

데이터 업데이트
형식 : UPDATE tableName SET 열 1 = 값 1, 열 2 = 값 2 [여기서 조건]

  • 모든 부서 주소를 Shanghai
    UPDATE dept SET loc = 'Shanghai'로 수정하십시오 .- 업데이트는 조건부 여야합니다. 그렇지 않으면 전체 테이블을 업데이트하십시오.
  • 부서 번호 10의 주소를 베이징으로 변경하고 부서 이름을 정보 부서
    UPDATE dept SET dname = 'Information Department', loc = 'Beijing'WHERE deptno = 10으로 변경합니다.

추천

출처blog.csdn.net/shuai_ge_feng/article/details/108770974