mysql delete statement delete command syntax
이 자습서에서는 MySQL DELETE 문을 사용하여 테이블에서 데이터를 삭제하거나 전체 테이블을 삭제하는 방법 및 자르기 및 삭제 명령의 차이점을 설명합니다.
MySQL에서 DELETE는 우리가 알고 있듯이 데이터 조작 언어 또는 DML입니다.
이름 자체에서 알 수 있듯이이 명령은 테이블에서 행을 삭제하는 데 사용됩니다. 이 명령을 사용하여 단일 트랜잭션에서 하나 이상의 원하지 않는 행을 삭제할 수 있습니다. DELETE 명령을 사용하여 테이블에서 레코드를 삭제하는 방법에는 여러 가지가 있습니다.
최고의 무료 이메일은 무엇입니까
이 튜토리얼에서는 간단한 예제와 함께이 모든 것을 자세히 설명합니다.
학습 내용 :
MySQL DELETE 명령
진행하기 전에 명심해야 할 중요한 요소가 있습니다. DELETE 명령을 사용하여 삭제 한 모든 행 또는 여러 행은 검색 할 수 없습니다.
따라서 실수로 행이 삭제되는 시나리오를 방지하려면 DELETE 문을 실행하기 전에 테이블을 백업하는 것이 좋습니다. 나중에이 백업을 사용하여 실수가있는 경우 테이블을 복원 할 수 있습니다.
노트 : MySQL 버전 8.0을 사용하고 있습니다. 다음에서 다운로드 할 수 있습니다. 여기 .
MySQL 삭제 구문 :
DELETE (LOW_PRIORITY) (QUICK) (IGNORE) FROM tablename(.*) (, tablename(.*)) (WHERE condition) (ORDER BY) (LIMIT row_count) ;
구문 설명 :
- 구문은 키워드 'DELETE FROM'으로 시작하여 수행 할 활동 유형에 대해 MySQL 서버에 알립니다. 이것은 필수 키워드이며 생략 할 수 없습니다.
- 다음은 DELETE 작업이 수행되어야하는 테이블의 이름입니다. 이것은 또한 필수이며 생략 할 수 없습니다. 여기에서 하나 이상의 테이블 이름을 언급 할 수 있습니다.
- 다음으로 삭제할 행의 적격성을 제어하는 모든 조건을 언급 할 수 있습니다. 이것은 선택적 절입니다. 여기서 키워드는 WHERE입니다.
- WHERE 절 뒤에 오는 ORDER BY 절은 열에서 특정 순서 (오름차순 또는 내림차순)로 삭제되도록 행을 강제합니다. 이것은 선택적 절입니다.
- LIMIT 절은 ORDER BY 절 뒤에옵니다. DELETE 문이 테이블에서 제거 할 수있는 행 수에 제한을 둡니다.
DELETE 문의 수정 자
# 1) LOW_PRIORITY :
이 수정자는 DELETE를 시도하는 테이블에서 읽는 연결이 없을 때까지 DELETE 문의 실행을 지연하도록 MySQL 엔진에 알립니다.
이는 해당 테이블에서 수행 될 다른 모든 작업에서 일관성을 유지하는 데 도움이됩니다. 이는 또한 테이블 잠금 문제를 방지하는 데 도움이됩니다.
# 2) 빠른 :
행을 삭제할 때마다 해당 색인도 삭제됩니다. DELETE 문 실행시 공간을 재 확보하면 프로세서 시간이 소비됩니다. QUICK 키워드를 사용하면 해당 인덱스 공간은 사용되지 않고 이전에 삭제 된 인덱스 범위에 맞는 새 레코드가 삽입 될 때 사용할 수 있습니다.
예를 들어, 직원 ID가 인덱스 인 직원 테이블을 고려하십시오. 직원이 퇴사 할 때마다 해당 레코드를 삭제해야합니다. QUICK 절을 사용하면 해당 인덱스 공간은 사용되지 않습니다.
신입 사원이 입사하면 퇴사 한 사람의 번호가 아닌 신입 사원 번호를 받게됩니다. 이러한 예에서는 QUICK를 사용하지 않는 것이 좋습니다.
MYSQL DELETE 예
아래는 MYSQL에서 생성 된 샘플 테이블입니다.
스키마 이름 : 태평양
테이블 이름 : 직원
열 이름 :
empNum; 사원 번호에 대한 정수 값을 보유합니다.
lastName : 직원의성에 대한 varchar 값을 보유합니다.
이름: 직원의 이름에 대한 varchar 값을 보유합니다.
이메일: 직원의 이메일 ID에 대한 varchar 값을 보유합니다.
deptNum; 직원이 속한 부서 ID에 대한 varchar를 보유합니다.
봉급: 각 직원 급여의 소수 값을 보유합니다.
시작일 : 직원의 입사 날짜에 대한 날짜 값을 보유합니다.
스키마 이름 : 태평양
테이블 이름 : employee_history
열 이름 :
empNum; 사원 번호에 대한 정수 값을 보유합니다.
lastName : 직원의성에 대한 varchar 값을 보유합니다.
이름: 직원의 이름에 대한 varchar 값을 보유합니다.
이메일: 직원의 이메일 ID에 대한 varchar 값을 보유합니다.
deptNum; 직원이 속한 부서 ID에 대한 varchar를 보유합니다.
봉급: 각 직원 급여의 소수 값을 보유합니다.
시작일 : 직원의 입사일에 대한 날짜 값을 보유합니다.
스키마 이름 : 태평양
테이블 이름 : 부서
열 이름 :
deptNum; 조직 내 부서 ID에 대한 varchar를 보유합니다.
시티: 부서가 근무하는 도시의 이름을 보유합니다.
국가: 도시에 해당하는 국가 이름을 보유합니다.
보너스: 보너스의 백분율 값을 보유합니다.
MySQL 삭제 단일 행
하나의 적합한 레코드 만 삭제되도록하는 매우 강력한 WHERE 절을 사용하여 레코드를 하나씩 삭제할 때 테이블에서 레코드를 삭제하는 가장 쉽고 쉬운 방법입니다. 이것은 또한 테이블에서 유사한 종류의 행 집합을 삭제하는 데 사용할 수 있습니다.
delete 문과 실행에 대해 자세히 살펴 보겠습니다.
여기서는 직원 번호가 1013 인‘Chris Nolan’이라는 직원을 제거하려고합니다.
위의 그림과 같이 DELETE 문이 성공적으로 실행되고 직원 테이블에서 한 행이 삭제되었습니다.
그만큼 산출 아래의 문은 문이 실행 된 시간, 실행 된 MySQL 문 및 영향을받은 행 수를 보여줍니다.
여기에있는 WHERE 절에 대해 매우 확신하십시오. WHERE 절이 올바르지 않거나 WHERE 절을 놓친 경우 데이터가 손실 될 수 있습니다. 이러한 상황을 피하기 위해 프로덕션에서는 주기적으로 데이터를 백업하거나 언로드하는 관행이 있습니다.
이 DELETE 문의 출력을 확인하기 위해이 테이블에서 empNum을 1013으로 사용하여 SELECT 문을 실행 해 보겠습니다.
출력 결과는 모든 열에 대해 NULL 값을 표시하며 이러한 empNum에 대한 레코드가 없음을 의미합니다. 아래 쿼리의 출력은 0 개의 행이 반환되었음을 보여줍니다. 이는 위의 DELETE 문을 실행하여 레코드가 삭제되었음을 의미합니다.
질문:
DELETE FROM employees WHERE empNum = 1013 ;
이후 테이블 스냅 샷 :
empNum | lastName | 이름 | 이메일 | deptNum | 봉급 |
---|---|---|---|---|---|
7 | 이것은 테이블에서 전체 데이터를 삭제하는 것과 비교할 때 TRUNCATE보다 상대적으로 느립니다. | 테이블에서 전체 데이터를 삭제하는 것과 비교할 때 DELETE보다 상대적으로 빠릅니다. | |||
없는 | 없는 | 없는 | 없는 | 없는 | 없는 |
ORDER BY 및 LIMIT 절을 사용하는 MySQL DELETE
ORDER BY 및 LIMIT는 위에서 논의한 두 절입니다. 전자는 레코드가 제거되어야하는 순서를 결정하는 데 도움이됩니다. 오름차순으로 empNum으로 레코드를 삭제하거나 내림차순으로 급여가있는 레코드를 삭제합니다. 후자는이 트랜잭션이 삭제할 수있는 레코드 수를 제한하는 데 도움이됩니다.
예를 들어, 연봉이 높은 4 번 부서 직원 2 명만 삭제하려면 그런 다음이 쿼리에는 세 부분이 있습니다.
- 먼저, 부서 번호 4에서 직원을 제거해야합니다. 이것은 WHERE 절에 의해 처리됩니다.
- 다음, 높은 연봉을받는 직원을 제거해야합니다. 이는 급여 열의 ORDER BY 절에 의해 내림차순으로 처리됩니다.
- 마지막으로 두 명의 직원 만 제거하면됩니다. 이것은 LIMIT 절에 의해 처리됩니다.
DELETE 쿼리와 결과를 살펴 보겠습니다. 그렇게하기 전에 먼저 삭제하려는 정확한 레코드가 무엇인지 확인하겠습니다. 위의 조건을 SELECT 문과 함께 사용하여 삭제할 레코드를 가져오고 나중에 동일한 쿼리를 실행하여 해당 레코드가 삭제되었는지 여부를 확인합니다.
위의 SELECT 쿼리에서 WHERE, ORDER BY 및 LIMIT 절을 사용하여 위에서 설명한 세 가지 조건을 모두 충족했습니다. 쿼리는 2 개의 레코드를 제공했습니다. 하나는 empNum 1010이고 다른 하나는 1007입니다. 이제 DELETE 쿼리를 실행하여이 두 레코드가 삭제되었는지 확인합니다.
위 그림과 같이 DELETE 문이 성공적으로 실행되고 직원 테이블에서 두 행을 삭제했습니다. 그만큼 산출 아래의 문은 문이 실행 된 시간, 실행 된 MySQL 문 및 영향을받은 행 수를 보여줍니다.
이 DELETE 문의 출력을 확인하기 위해 empNum 1010 및 1007에 대한 SELECT를 실행 해 보겠습니다. deptNum 4 아래에 다른 직원을 표시하는 것처럼 위에서 사용 된 것과 동일한 SELECT 쿼리를 사용할 수 없습니다.
출력 결과는 모든 열에 대해 NULL 값을 표시하며 해당 직원 번호에 대한 레코드가 없음을 의미합니다. 그만큼 산출 아래 쿼리는 0 개의 행이 반환되었음을 보여줍니다. 이는 위의 DELETE 문을 실행하여 레코드가 삭제되었음을 의미합니다.
질문:
DELETE FROM employees WHERE deptNum = 4 ORDER BY salary DESC LIMIT 2 ;
이후 테이블 스냅 샷 :
empNum | lastName | 이름 | 이메일 | deptNum | 봉급 |
---|---|---|---|---|---|
없는 | 없는 | 없는 | 없는 | 없는 | 없는 |
Select 절을 사용하는 MySQL DELETE
다음으로 한 테이블에서 레코드를 삭제하는 동안 SELECT 절을 사용하는 방법을 살펴 보겠습니다.
다음 시나리오를 고려하십시오.
두 세트의 테이블이 있습니다. 직원과 부서. deptNum은 부서 테이블의 기본 키와 직원 테이블의 외래 키와 같습니다. 즉, 직원에게 부서가 할당되면 해당 부서의 테이블에있는 부서 중 하나 여야합니다.
이제 지금까지 직원이 할당되지 않은 부서의 테이블에서 해당 레코드를 삭제해야합니다. DELETE 쿼리의 하위 쿼리에 SELECT 절이 있으면이를 수행 할 수 있습니다.
먼저 삭제할 레코드를 식별 해 보겠습니다.
위의 SELECT 쿼리에는 하위 쿼리가 있습니다.
쿼리 기능은 다음과 같습니다.
쿼리는 직원의 테이블에 deptNum이없는 부서의 테이블에서 모든 레코드를 가져옵니다. 조인은 두 테이블의 deptNum에 대한 하위 쿼리에서 수행됩니다.
이제 DELETE 쿼리를 실행하고 해당 부서에 할당 된 직원이 없으므로 부서의 테이블에서이 두 레코드를 삭제할 수 있는지 살펴 보겠습니다.
위의 그림에서 볼 수 있듯이 delete 문은 직원이 할당되지 않은 부서 테이블에서 2 개의 행을 삭제했습니다.
이 DELETE 문의 출력을 확인하기 위해 테이블에서 SELECT를 실행하고 출력에 포함 된 내용을 살펴 보겠습니다.
위 확인 쿼리의 출력 메시지는 '0 개 행이 반환되었습니다'라고 표시됩니다. 이는 deptNum 6 및 7이있는 행이 삭제됨을 의미합니다. 또한 출력은 레코드가 삭제되었으므로 NULL 값을 표시하는 대신 레코드를 표시하지 않습니다.
질문:
DELETE FROM departments WHERE NOT EXISTS (SELECT deptNum FROM employees WHERE departments.deptNum = employees.deptNum ) ;
MySQL은 테이블에서 전체 데이터 삭제
다음으로 테이블에서 모든 행이나 레코드를 삭제해야하는 시나리오를 살펴 보겠습니다.
생산 상황에서 이러한 상황은 절대 발생하지 않을 수 있습니다. 그러나 이러한 종류의 작업은 여러 시나리오로 코드를 테스트해야하는 개발 영역에서 필요하며 테이블에있는 레코드를 삭제하여 새로운 테스트 데이터 세트를 다시 만들 수 있습니다.
먼저 삭제할 데이터를 살펴 보겠습니다. employee_history 테이블에서 데이터 삭제를 시도합니다.
아래는 표에 현재 존재하는 데이터입니다.
여기 employee_history 테이블에 18 개의 행이 있습니다. 이제 한 번의 트랜잭션으로이 모든 것을 삭제하겠습니다. 쿼리는 첫 번째 섹션에서 논의한 쿼리와 거의 유사합니다. 유일한 변경 사항은 삭제할 행 수에 제한이 없도록 쿼리에서 WHERE 절을 제거해야한다는 것입니다.
위 그림에서 볼 수 있듯이 delete 문이 성공적으로 실행되고 employee_history 테이블에서 18 개의 행이 모두 삭제되었습니다. 아래의 출력 문은 문이 실행 된 시간, 실행 된 MySQL 문 및 영향을받은 행 수를 보여줍니다.
이 DELETE 문의 출력을 확인하기 위해 테이블에서 SELECT를 실행하고 출력에 포함 된 내용을 살펴 보겠습니다.
출력 결과는 모든 열에 대해 NULL 값을 표시하며 해당 직원 번호에 대한 레코드가 없음을 의미합니다. 아래 쿼리의 출력은 0 개의 행이 반환되었음을 보여줍니다. 이는 위의 DELETE 문을 실행하여 모든 레코드가 삭제되었음을 의미합니다.
질문:
DELETE FROM employees_history ;
이후 테이블 스냅 샷 :
empNum | lastName | 이름 | 이메일 | deptNum | 봉급 |
---|---|---|---|---|---|
없는 | 없는 | 없는 | 없는 | 없는 | 없는 |
MySQL DELETE 전체 테이블
이제 테이블 자체를 삭제해야하는 시나리오를 살펴 보겠습니다. SQL 용어로 우리는 DROP the table이라고 부릅니다. 테이블에 데이터가 있는지 여부는 중요하지 않습니다. 데이터와 함께 테이블을 삭제합니다.
위 섹션에서는 employee_history 테이블에서 데이터를 삭제했습니다. 이 섹션에서는 employee_history 테이블 자체를 삭제합니다.
다음은 출력과 함께 명령입니다.
Windows 10에서 Java로 jar 파일을 여는 방법
위 그림과 같이 DROP 문이 성공적으로 실행되고 MySQL 데이터베이스의 시스템 카탈로그에서 employee_history 테이블이 삭제되었습니다.
메시지를 보면 '0 개의 행이 영향을 받음'이 표시됩니다. 이는 이전 섹션에서 18 개의 행을 모두 삭제했기 때문입니다. 이 테이블에 행이 있으면 해당 행 수가 영향을 받게되며 이는 삭제됨을 의미합니다.
이 DROP 문의 출력을 확인하기 위해 테이블에서 SELECT를 실행하고 출력에 포함 된 내용을 확인합니다.
위 검증 쿼리의 출력 메시지는 테이블이 존재하지 않는다는 것을 나타냅니다. 이것은 테이블을 삭제하기 위해 위의 DROP 문의 실행을 검증합니다.
질문:
DROP TABLE employees_history ;
MySQL 자르기 명령
DELETE 명령을 사용하여 테이블에서 모든 레코드를 삭제하는 방법에 대해 이미 논의했습니다. TRUNCATE 문을 사용하여도 동일한 결과를 얻을 수 있습니다.
이 예에서는 employee_history 테이블을 다시 만들고 데이터로 다시 채 웁니다. 티 다음은 테이블을 다시 만들고 다시 채우기 위해 실행 된 두 개의 쿼리입니다.
질문:
CREATE TABLE employees_history LIKE employees ; INSERT INTO employees_history (SELECT * FROM employees) ;
이제 데이터와 함께 employee_history 테이블이 표시됩니다.
다음으로 TRUNCATE 문을 사용하여이 테이블에서 모든 레코드를 제거합니다.
그림과 같이 쿼리가 성공적으로 실행됩니다. '메시지'부분을 자세히 살펴보면 '0 개의 행이 영향을 받음'이라고 표시되어 있습니다. 그러나이 테이블에 15 개의 행이 있음을 알고 있습니다. 그렇다면 쇼는 왜 제로입니까?
이유: Truncate 문은 실행으로 인해 영향을받는 행 수를 계산하지 않습니다. 단순히 테이블을 비 웁니다. 이것은 DELETE 문과 TRUNCATE 문 사이의 중요한 차이점 중 하나입니다.
employee_history 테이블에 대해 SELECT 쿼리를 실행하여 TRUNCATE 문의 실행을 확인하겠습니다.
위의 그림에서 볼 수 있듯이 쿼리는 행을 반환하지 않았으며 모든 열에 NULL 값이 표시되어 이전에 실행 한 TRUNCATE 문이 테이블에서 모든 레코드를 삭제했음을 의미합니다.
질문:
TRUNCATE TABLE employees_history ;
TRUNCATE 문과 DELETE 문의 차이점
미스터 아니오 | 지우다 | 자르기 |
---|---|---|
하나 | DML (Data Manipulation Language)입니다. | DDL (Data Definition Language)입니다. |
두 | 테이블의 모든 AFTER DELETE 트리거는 DELETE 명령을 사용할 때 활성화됩니다. | TRUNCATE 명령을 사용할 때 테이블의 AFTER DELETE 트리거가 활성화되지 않습니다. |
삼 | 외래 키 제약이 있어도 레코드를 삭제할 수 있습니다. | 외래 키 제약 조건이있는 경우 테이블의 레코드를자를 수 없습니다. |
4 | 테이블 재 초기화가 발생하지 않습니다. | 테이블이 다시 초기화됩니다. |
5 | WHERE 절을 사용할 수 있습니다. | WHERE 절을 사용할 수 없습니다. |
6 | 이것은 한 번에 하나의 레코드를 삭제하고 로그에서 삭제 된 총 레코드 수를 추적합니다. | 한 번에 모든 레코드를 제거하고 삭제 된 레코드 수를 추적하지 않습니다. |
참조 무결성 및 DELETE에 미치는 영향
우리가되기 전에 보자 참조 무결성 또는 RI 또는 외래 키 제약은 무엇입니까?
외래 키 제약 조건은 부모 테이블과 자식 테이블 간의 관계 또는 연결을 설정하는 것입니다. 이렇게하면 서로 연결된 테이블에서 데이터를 상호 참조하는 데 도움이됩니다. 하나의 상위 테이블에는 여러 개의 하위 테이블이있을 수 있으며 그 반대의 경우도 마찬가지입니다.
예를 들어, 지금까지 논의한 두 테이블, 즉 직원과 부서는 외래 키 제약 조건을 사용하여 서로 연결됩니다. 이 제약 조건은 하나의 열 (일반적으로 기본 키)을 두 테이블을 연결하는 키 열로 만들어 설정합니다.
부서 테이블의 deptNum 열이 직원 테이블의 deptNum 열에 연결되었습니다. 이 경우 부서는 상위 테이블이고 직원은 하위 테이블입니다.
그러나 이것이 DELETE 문에 어떤 영향을 미칩니 까?
MySQL 또는 모든 데이터베이스에는 상위 또는 하위 테이블에서 레코드를 삭제하는 동안 처리해야 할 특정 시나리오가 있습니다.
논의 할 수있는 여러 참조 옵션이 있습니다.
# 1) CASCADE 삭제시 : 규칙은 참조가 있거나 하위 테이블에 해당 행이있는 경우 상위 테이블에서 행을 제거 할 수 없다고 말합니다. 그러나 상위 테이블에 하위 테이블이 많이있는 경우 먼저 각 하위 테이블에서 레코드를 제거한 다음 상위 테이블에서 레코드를 제거하는 것은 지루한 작업입니다.
이를 위해 ON DELETE CASCADE라는 해결 방법이 있습니다. 이는 각 하위 테이블의 CREATE 문에 추가되는 하나의 절입니다. 따라서 부모 테이블에서 행을 삭제한다고 말할 때마다 MySQL 엔진은 먼저 자식 테이블에서 해당 행의 참조를 식별하고 해당 레코드를 제거하고 마지막으로 부모 테이블에서 레코드를 삭제합니다.
# 2) 조치 없음 : 이것은 기본 옵션입니다. DELETE 문을 실행하여 자식 테이블에 참조가있는 레코드를 삭제하려고하면이 옵션을 사용하면 문 실행이 중지되고 MySQL 트랜잭션 마지막 커밋 지점으로 롤백됩니다.
# 3) 제한 : RESTRICT 및 NO ACTION의 기능은 동일합니다. 실행을 중지하고 롤백을 발행합니다.
# 4) NULL 설정 : delete 문을 실행하여 자식 테이블에 참조가있는 레코드를 삭제하려고하면이 옵션은 모든 자식 테이블의 열 값을 NULL로 업데이트하고 완료되면 부모에서 레코드를 삭제합니다. 표.
# 5) 기본값 설정 : DELETE 문을 실행하여 자식 테이블에 참조가있는 레코드를 삭제하려고하면이 옵션은 테이블의 CREATE 문에 정의 된대로 열 값을 기본값으로 업데이트합니다.
자주 묻는 질문과 답변
Q # 1) MySQL의 테이블에서 데이터를 삭제하는 방법은 무엇입니까?
대답: 선택한 데이터 행만 삭제하는 삭제 명령 구문은 다음과 같습니다.
DELETE FROM table_name WHERE condition;
Q # 2) MySQL의 테이블에서 모든 데이터를 삭제하는 방법은 무엇입니까?
대답: 테이블에서 모든 행을 삭제하는 DELETE 명령 구문은 다음과 같습니다.
DELETE * FROM table_name;
Q # 3) MySQL의 데이터베이스에서 테이블을 삭제하는 방법은 무엇입니까?
대답: drop 명령을 사용하여 데이터베이스에서 테이블을 삭제할 수 있습니다. 사용자는 table_name을 삭제해야하는 테이블로 바꿀 수 있습니다.
PC 용 최고의 바이러스 제거 소프트웨어
DROP TABLE table_name;
Q # 4) MySQL에서 데이터베이스를 삭제하는 방법은 무엇입니까?
대답: drop 명령을 사용하여 데이터베이스를 삭제할 수 있습니다.
DROP Database db_name;
사용자는 db_name을 삭제해야하는 데이터베이스 이름으로 바꿀 수 있습니다.
Q # 5) MySQL에서 ON DELETE CASCADE 란 무엇입니까?
대답: 상위 레코드가 삭제되면 ON DELETE CASCADE는 삭제할 일치하는 하위 레코드를 만듭니다. 따라서 삭제 효과는 부모에서 자식으로 연속됩니다. 이는 다중 테이블 삭제를 수행 할 때 유용 할 수 있습니다.
Q # 6) TRUNCATE가 DDL 문으로 간주되는 이유는 무엇입니까?
대답: TRUNCATE 문은 실제로 테이블의 메타 데이터와 함께 테이블을 삭제하고 다시 만듭니다. 따라서 이것은 DDL 문입니다.
Q # 7) TRUNCATE를 롤백 할 수 있습니까?
대답: 아니요, TRUNCATE는 독립 실행 형으로 실행되는 경우 자동 커밋 문입니다. 이것은 커밋도 함께 실행되므로 롤백 할 수 없음을 의미합니다. 그러나 트랜잭션의 일부인 경우 SQL 로그 파일을 사용하여 롤백 할 수 있습니다.
Q # 8) DELETE 문을 롤백 할 수 있습니까?
대답: 예, DELETE 문을 롤백 할 수 있습니다. COMMIT를 실행하기 전에 ROLLBACK 명령을 실행하십시오.
Q # 9) DELETE 명령어로 컬럼을 삭제할 수 있나요?
대답: 열 추가 또는 삭제는 DDL 명령입니다. 테이블에서 열을 삭제하려면 ALTER 문을 사용해야합니다.
결론
이 튜토리얼에서는 MySQL에서 DELETE 문을 실행하는 다양한 방법을 배웠습니다.
간단히 말해서 우리는 다음을 보았습니다.
- MySQL 삭제 단일 행
- ORDER BY 및 제한 절을 사용하여 MySQL 삭제
- Select 절을 사용하여 MySQL 삭제
- MySQL 전체 테이블 삭제
- MySQL 자르기
- TRUNCATE 문과 DELETE 문의 차이점
- 참조 무결성 및 DELETE에 미치는 영향
요구 사항에 따라 위 중 하나를 사용할 수 있습니다.
행복한 독서 !!