top 40 best mysql interview questions
예제 쿼리와 함께 가장 인기있는 MySQL 인터뷰 질문 목록 (2021 년의 최신 MySQL 질문) :
MySQL은 최신 웹 애플리케이션의 필수 부분이며 MySQL에 대한 지식은 모든 웹 개발자의 업무에 공통적 인 요구 사항입니다.
이 기사에서는 신입생과 경험이 풍부한 전문가를위한 기본 및 고급 수준의 MySQL 질문 목록이 필요한 예와 함께 설명되어 있습니다.
이 질문은 구직자가 자신감 수준을 높이고 면접에 성공적으로 직면하는 데 도움이 될 것입니다.
가장 자주 묻는 MySQL 인터뷰 질문
아래에 나열된 것은 전문가의 인터뷰에서 일반적으로 묻는 가장 인기있는 MySQL 인터뷰 질문입니다.
Q # 1) MySQL이란 무엇입니까?
대답: MySQL은 Oracle Corporation에서 개발 및 배포하는 오픈 소스 DBMS입니다.
Windows, Linux 등 널리 사용되는 대부분의 운영 체제에서 지원됩니다. 다양한 유형의 응용 프로그램을 개발하는 데 사용할 수 있지만 주로 웹 응용 프로그램을 개발하는 데 사용됩니다.
또한 읽기 = >> 웹 개발자 인터뷰 질문
MySQL은 GPL (GNU General Public License)을 사용하므로 누구나 자유롭게 게시하거나 배포 할 응용 프로그램을 개발하기 위해 다운로드하여 설치할 수 있습니다. 그러나 사용자가 MySQL을 사용하여 상용 애플리케이션을 개발하려면 상용 버전의 MySQL을 구입해야합니다.
Q # 2) MySQL의 기능은 무엇입니까?
대답: MySQL에는 인기있는 데이터베이스 관리 소프트웨어가되는 몇 가지 유용한 기능이 있습니다.
MySQL의 몇 가지 중요한 기능은 다음과 같습니다.
- 신뢰할 수 있고 사용하기 쉽습니다.
- 크고 작은 애플리케이션 모두에 적합한 데이터베이스 소프트웨어입니다.
- 누구나 무료로 설치하고 사용할 수 있습니다.
- PHP, Java, C ++, PERL 등과 같이 잘 알려진 많은 프로그래밍 언어에서 지원됩니다.
- 표준 SQL (Structured Query Language)을 지원합니다.
- MySQL의 오픈 소스 라이선스는 사용자 정의 할 수 있습니다. 따라서 개발자는 응용 프로그램의 요구 사항에 따라 수정할 수 있습니다.
Q # 3) MySQL의 기본 포트 번호는 무엇입니까?
대답: MySQL의 기본 포트 번호는 3306입니다.
Q # 4) 설치된 MySQL의 버전을 어떻게 알 수 있습니까?
대답: 설치된 MySQL 서버의 버전은 MySQL 프롬프트에서 다음 명령을 실행하여 쉽게 찾을 수 있습니다.
mysql> '% version %'와 같은 변수 표시;
Q # 5) MySQL 사용의 장점과 단점은 무엇입니까?
대답: MySQL에는 몇 가지 장점이있어 현재 데이터베이스 시스템이 더 널리 사용되고 있습니다.
MySQL의 몇 가지 중요한 장단점은 아래에 언급되어 있습니다.
장점 :
- 안정적이고 안전한 데이터베이스 관리 시스템으로 잘 알려져 있습니다. 이 소프트웨어를 사용하면 웹 사이트의 트랜잭션 작업을보다 안전하게 수행 할 수 있습니다.
- 데이터를 저장하기 위해 다양한 유형의 스토리지 엔진을 지원하며이 기능에 대해 더 빠르게 작동합니다.
- 고속 트랜잭션 프로세스로 수백만 개의 쿼리를 처리 할 수 있습니다.
- 다중 레벨 트랜잭션, 데이터 무결성, 교착 상태 식별 등과 같은 많은 고급 레벨 데이터베이스 기능을 지원합니다.
- 이 소프트웨어는 유지 관리 및 디버깅 프로세스가 더 쉽습니다.
단점 :
- MySQL을 확장 가능하게 만드는 것은 어렵습니다.
- 매우 큰 유형의 데이터베이스에는 적합하지 않습니다.
- 저장된 루틴 및 트리거의 사용은 MySQL로 제한됩니다.
Q # 6) myisamchk의 기능은 무엇입니까?
대답: myisamchk는 MyISAM 데이터베이스 테이블에 대한 정보를 얻는 데 사용되는 유용한 데이터베이스 유틸리티 도구입니다.
또한 데이터베이스 테이블을 확인, 디버깅, 복구 및 최적화하는 데 사용됩니다. 서버가 다운되었거나 필요한 테이블이 서버에서 사용되지 않을 때이 명령을 사용하는 것이 좋습니다.
통사론:
myisamchk (옵션) table_name…
이 도구의 사용 가능한 옵션은 다음 명령을 사용하여 검색 할 수 있습니다.
myisamchk – 도움말
모든 MyISAM 테이블을 확인하거나 복구하려면 데이터베이스 디렉토리 위치에서 실행하기 위해 다음 명령이 필요합니다.
myisamchk * .MYI
Q # 7) ENUM 및 SET 데이터 유형을 사용하는 목적은 무엇입니까?
대답: ENUM 데이터 유형은 미리 정의 된 목록에서 하나의 값을 선택하기 위해 MySQL 데이터베이스 테이블에서 사용됩니다.
ENUM으로 선언 된 필드는 목록 외부의 값을 허용하지 않으므로 사전 정의 된 목록을 정의하여 특정 필드의 값을 제한 할 수 있습니다.
SET 데이터 유형은 미리 정의 된 목록에서 하나 이상의 값 또는 모든 값을 선택하는 데 사용됩니다. 이 데이터 유형은 ENUM과 같은 미리 정의 된 값 목록 만 삽입하기위한 필드를 제한하는데도 사용할 수 있습니다.
예:
명령 프롬프트에서 MySQL 서버를 실행하고 다음 SQL 명령을 실행하여 ENUM 및 SET 데이터 유형의 사용을 확인하십시오.
다음 SQL 명령 새 데이터베이스 생성 명명 된 ' newdb '를 클릭하고 사용할 데이터베이스를 선택합니다.
CREATE DATABASE newdb;
USE newdb;
다음 SQL 명령은 클라이언트 필드 ENUM 및 SET 데이터 유형.
CREATE TABLE clients ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), membership ENUM('Silver', 'Gold', 'Diamond'), interest SET('Movie', 'Music', 'Concert'));
INSERT 쿼리는 테이블에 두 개의 레코드를 만듭니다. ENUM 필드는 정의 된 목록의 데이터 만 허용합니다.
' 프리미엄 ’값이 ENUM 목록에 없습니다. 따라서 ENUM 필드의 값은 두 번째 레코드에 대해 비어 있습니다. SET는 여러 값을 허용 할 수 있으며 두 데이터 모두 두 번째 레코드에 삽입됩니다.
INSERT INTO clients (name, membership,interest) VALUES ('Sehnaz','Gold', 'Music'), ('Sourav','Premium', 'Movie,Concert'); SELECT * FROM clients;
Q # 8) 기본 키와 외래 키의 차이점은 무엇입니까?
대답: 데이터베이스 테이블은 기본 키를 사용하여 각 행을 고유하게 식별합니다. 테이블 간의 관계를 생성해야하는 테이블에서 기본 키를 선언해야합니다. 테이블의 하나 이상의 필드를 기본 키로 선언 할 수 있습니다.
어떤 테이블의 기본 키가 다른 테이블에서 기본 키 또는 데이터베이스 관계를 만들기위한 다른 필드로 사용되는 경우이를 외래 키라고합니다.
이 두 키의 차이점은 다음과 같습니다.
- 기본 키는 레코드를 고유하게 식별하는 반면 외래 키는 다른 테이블의 기본 키를 참조합니다.
- 기본 키는 NULL 값을 허용 할 수 없지만 외래 키는 NULL 값을 허용합니다.
- 기본 키가 포함 된 테이블에 레코드가 삽입되면이 기본 키 필드를 포함하는 테이블에 값을 외래 키로 삽입 할 필요가 없습니다.
- 기본 키가 포함 된 테이블에서 레코드가 삭제되면 데이터 일관성을 위해 외래 키가 포함 된 테이블에서 해당 레코드를 삭제해야합니다. 그러나 다른 테이블의 관련 레코드를 삭제하지 않고 외래 키가 포함 된 테이블에서 모든 레코드를 삭제할 수 있습니다.
예:
이름이 지정된 두 개의 테이블 제조업 자 과 항목 다음 두 가지 SQL 명령을 실행하면 생성됩니다.
여기에서 기본 키는 제조업 자 테이블은 외부 키로 사용됩니다. 항목 필드 이름이있는 테이블 제조업체 _ID . 따라서 제조업체 _ID 필드에는 제조업 자 표.
CREATE TABLE manufacturers ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50)); CREATE TABLE items ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), type VARCHAR(50), brand VARCHAR(50), manufacturer_id INT, FOREIGN KEY (manufacturer_id) REFERENCES manufacturers(id));
Q # 9) CHAR와 VARCHAR 데이터 유형의 차이점은 무엇입니까?
대답: CHAR 및 VARCHAR 데이터 유형은 모두 테이블의 필드에 문자열 데이터를 저장하는 데 사용됩니다.
이러한 데이터 유형 간의 차이점은 다음과 같습니다.
- CHAR 데이터 유형은 고정 길이 문자열 데이터를 저장하는 데 사용되며 VARCHAR 데이터 유형은 가변 길이 문자열 데이터를 저장하는 데 사용됩니다.
- CHAR 데이터 유형의 스토리지 크기는 항상이 데이터 유형의 최대 길이이고 VARCHAR의 스토리지 크기는 삽입 된 문자열 데이터의 길이입니다. 따라서 문자열의 길이가 모든 레코드에 대해 동일한 길이가 될 때 CHAR 데이터 유형을 사용하는 것이 좋습니다.
- CHAR는 작은 데이터를 저장하는 데 사용되는 반면 VARCHAR은 큰 데이터를 저장하는 데 사용됩니다.
- CHAR은 더 빠르게 작동하고 VARCHAR은 더 느리게 작동합니다.
추가 읽기 = >> MySQL 데이터 유형
예:
다음 SQL 문은 Customers라는 테이블을 만듭니다. 이 표에서 데이터 유형은 이름 필드는 VARCHAR이고 데이터 유형은 전화 필드는 CHAR입니다.
의 크기 이름 필드는 삽입 된 값의 길이에 따라 달라집니다. 의 크기 전화 필드는 삽입 된 값의 길이가 14 자 미만인 경우에도 항상 14 자입니다.
CREATE TABLE customers ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), phone CHAR(14))
Q # 10) TIMESTAMP 데이터 유형을 사용하는 목적은 무엇입니까?
대답: TIMESTAMP 데이터 유형은 19 자 길이의 날짜 및 시간 값 조합을 저장하는 데 사용됩니다.
TIMESTAMP의 형식은 YYYY-MM-DD HH : MM : SS입니다. ‘1970-01-01 00:00:01’UTC부터‘2038-01-19 03:14:07’UTC까지 데이터를 저장할 수 있습니다. 기본적으로 서버의 현재 날짜와 시간은 새 레코드가 삽입되거나 업데이트 될 때이 데이터 유형의 필드에 삽입됩니다.
Q # 11) mysql_fetch_array ()와 ysql_fetch_object ()의 차이점은 무엇입니까?
대답: mysql_fetch_array ()와 mysql_fetch_object ()는 모두 MySQL 데이터베이스 테이블에서 레코드를 검색하는 PHP의 내장 메서드입니다.
이 메소드의 차이점은 mysql_fetch_array ()는 결과 집합을 배열로 반환하고 mysql_fetch_object ()는 결과 집합을 객체로 반환한다는 것입니다.
예:
$result = mysql_query('SELECT id, name FROM clients'); //using mysql_fetch_array() while ($row = mysql_fetch_array($result, MYSQL_NUM)) { printf('ID: %s Name: %s', $row(0), $row(1)); } //using mysql_fetch_object() while ($row = mysql_fetch_object($result)) { printf('ID: %s Name: %s', $row->id, $row->name); }
Q # 12) 테이블에서 레코드를 검색하는 동안 중복 데이터를 어떻게 필터링 할 수 있습니까?
대답: DISTINCT 키워드는 테이블에서 레코드를 검색하는 동안 테이블에서 중복 데이터를 필터링하는 데 사용됩니다.
예:
다음 SQL 명령은 항목 표. 출력은 테이블의 유형 필드에 중복 값이 포함되어 있음을 보여줍니다.
SELECT * from items;
다음 SQL 명령은 유형 중복 값을 제거하여 필드.
SELECT DISTINCT type from items;
Q # 13) NOW ()와 CURRENT_DATE ()의 차이점은 무엇입니까?
대답: 양자 모두 지금() 과 CURRENT_DATE () 내장 MySQL 메소드입니다. 지금() 서버의 현재 날짜와 시간을 표시하는 데 사용되며 CURRENT_DATE () 서버의 날짜 만 표시하는 데 사용됩니다.
SELECT now();
SELECT current_date();
Q # 14) 부분 일치를위한 선택 쿼리에서 사용되는 문은 무엇입니까?
대답: REGEXP 과 처럼 부분 일치를 위해 SELECT 쿼리에서 문을 사용할 수 있습니다. REGEXP는 패턴을 기반으로 레코드를 검색하는 데 사용되며 LIKE는 특정 필드 값의 시작 또는 끝 또는 중간에있는 문자열을 일치시켜 레코드를 검색하는 데 사용됩니다.
예:
먼저‘ 고객의 SELECT 쿼리를 실행하여 테이블.
SELECT * FROM clients;
REGEXP 절을 사용하여 SELECT 쿼리를 실행하여 클라이언트 클라이언트 이름이‘ 에스 '
SELECT * FROM clients WHERE name REGEXP '^S';
LIKE 절을 사용하여 SELECT 쿼리를 실행하여 클라이언트 클라이언트 이름이‘ 에 '
SELECT * FROM clients WHERE name LIKE 'A%';
Q # 15) 문자열을 연결하는 데 사용되는 MySQL 함수는 무엇입니까?
대답: CONCAT () 함수는 둘 이상의 문자열 데이터를 결합하는 데 사용됩니다. 이 기능의 사용은 여기에 예제와 함께 있습니다.
예:
다음과 같은 CONCAT을 사용한 SELECT 쿼리 () 함수는‘Welcome‘,‘to’,‘SoftwareTestingHelp’,’.’,‘com’의 다섯 단어를 결합합니다.
SELECT CONCAT('Welcome ',to ','SoftwareTestingHelp','.',com');
CONCAT () 함수는 모든 테이블에서도 사용할 수 있습니다. 다음 SELECT 쿼리는 두 필드를 결합하여 출력을 표시합니다. 상표 과 유형 의 항목 표.
SELECT CONCAT(brand,'=>',type) from items;
Q # 16) SQL 문을 사용하여 기존 테이블의 이름을 어떻게 변경할 수 있습니까?
대답: 다음 SQL 명령은 데이터베이스의 기존 테이블 이름을 바꾸는 데 사용됩니다.
RENAME TABLE table_name TO new_name
예:
다음 명령은 테이블 목록을 표시합니다. newdb 데이터 베이스.
SHOW TABLES;
C ++ 버블 정렬 기능
다음 이름 바꾸기 명령은 테이블 이름을 바꿉니다. 항목 새로운 이름으로 제품 .
RENAME TABLE items TO products;
SHOW TABLES;
Q # 17) SELECT 쿼리를 사용하여 열 값의 일부를 검색하려면 어떻게해야합니까?
대답: SUBSTR () 함수는 열의 일부를 검색하는 데 사용됩니다. 이 기능의 사용은 예제와 함께 여기에 설명되어 있습니다.
예:
여기서 첫 번째 SELECT 명령은 Products 테이블의 모든 레코드를 표시하는 데 사용되며 두 번째 SELECT 명령은 SUBSTR 함수를 사용하여 실행되며 이름 필드의 처음 5 개 문자 만 인쇄합니다.
SELECT * FROM products;
SELECT SUBSTR(name,1,5) FROM products;
Q # 18) HEAP 테이블을 사용하는 목적은 무엇입니까?
대답: 해시 된 인덱스를 사용하여 메모리에 저장하는 테이블을 HEAP 테이블이라고합니다. 임시 테이블로 작동하며 다른 테이블 유형보다 빠르게 만드는 인덱스를 사용합니다.
어떤 이유로 든 MySQL이 충돌하면이 테이블에 저장된 모든 데이터가 손실 될 수 있습니다. 고정 길이 데이터 유형을 사용합니다. 따라서 BLOB 및 TEXT 데이터 유형은이 테이블에서 지원되지 않습니다. 속도가 가장 중요한 요소이고 임시 데이터가 사용되는 MySQL 작업에 유용한 테이블입니다.
Q # 19) 테이블의 열을 어떻게 추가하고 제거 할 수 있습니까?
대답: 기존 테이블에 열을 추가하는 구문은 다음과 같습니다.
ALTER TABLE table_name ADD COLUMN column_name column_definition (FIRST|AFTER existing_column)
예:
DESCRIBE 명령은 제품 테이블의 구조를 표시하는 데 사용됩니다.
DESCRIBE products;
ADD COLUMN 절이있는 다음 ALTER 명령은‘ 가격' 테이블에 제품 .
ALTER TABLE products ADD COLUMN price DECIMAL(5,2);
DESCRIBE products;
기존 테이블에서 열을 제거하는 구문은 다음과 같습니다.
ALTER TABLE table_name DROP COLUMN column_name;
예:
DROP COLUMN 절이있는 다음 ALTER 명령은‘ 상표' 표 ' 제품' .
ALTER TABLE products DROP COLUMN brand;
DESCRIBE products;
Q # 20) 인덱스 란 무엇입니까? MySQL에서 인덱스를 어떻게 선언 할 수 있습니까?
대답: 인덱스는 쿼리 속도를 높이는 데 사용되는 MySQL 테이블의 데이터 구조입니다.
레코드를 더 빨리 찾기 위해 데이터베이스 검색 엔진에서 사용됩니다. 테이블의 하나 이상의 필드를 인덱스 키로 사용할 수 있습니다. 인덱스 키는 테이블 선언시 할당하거나 테이블 생성 후 할당 할 수 있습니다.
예:
사용자 이름 과 이메일 필드는 다음 create table 문에서 인덱스로 설정됩니다.
CREATE TABLE users( username VARCHAR(50) PRIMARY KEY, email VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, INDEX (username, email));
다음 명령은‘ 사용자 표.
SHOW INDEXES FROM users;
Q # 21) 소수점 (5,2)은 무엇을 의미합니까?
대답: 소수점 데이터 유형은 MySQL에서 분수 데이터를 저장하는 데 사용됩니다.
소수점 (5,2)의 의미는 분수 값의 총 길이가 5임을 의미합니다. 필드에는 소수점 앞 3 자리와 소수점 뒤 2 자리가 포함될 수 있습니다. 사용자가 정의 된 길이보다 큰 값을 추가하면 필드에 999.99가 삽입됩니다.
이 데이터 유형의 사용은 다음 예에서 설명됩니다.
예:
다음 삽입 쿼리에서 789.56 에 삽입됩니다 가격 들. 이 값은 1000 미만이고 소수 부분이있는 총 자릿수는 5입니다. 따라서이 값은이 필드에 유효합니다.
INSERT INTO products (type, name, price, manufacturer_id) VALUES ('Mobile', 'iPhone 8', 789.56, 1); SELECT * FROM products;
다음 삽입 쿼리에서 34789,567 가격 필드에 대해 설정됩니다. 그러면이 값은 1000보다 크고 소수 부분이있는 총 자릿수는 8입니다. 따라서 34789.567 대신 기본값 999.99가 삽입됩니다. .
INSERT INTO products (type, name, price, manufacturer_id) VALUES('TV','Sony 32' Smart TV',34789.567, 2); SELECT * FROM products;
Q # 22) 견해는 무엇입니까? MySQL에서 뷰를 어떻게 생성하고 삭제할 수 있습니까?
대답: 뷰는 쿼리를 저장하는 데 사용되는 가상 테이블로 작동하며 호출시 결과 집합을 반환합니다. 업데이트 가능한 뷰는 MySQL에서도 지원됩니다.
MySQL에서 뷰를 생성하거나 삭제하는 방법은 다음 예제에 나와 있습니다.
보기 만들기 예제 :
다음 문은‘ client_list ’표에 따라 클라이언트 .
CREATE VIEW `client_list` AS SELECT `name` as 'Name', `membership` as 'Membership' FROM `clients`;
SELECT 문은 다음의 레코드를 표시합니다. client_list 값.
SELECT * FROM client_list;
DROP보기 예 :
드롭 뷰 문은 뷰 파일을 삭제합니다. 뷰를 삭제하면 SELECT 쿼리에 오류가 표시됩니다.
DROP VIEW client_list;
SELECT * FROM client_list;
Q # 23) mysqldump의 기능은 무엇입니까?
대답: mysqldump는 백업 또는 다른 데이터베이스 서버로의 전송을 위해 서버에서 하나 이상의 또는 모든 데이터베이스를 덤프하는 데 사용되는 MySQL의 유용한 유틸리티 도구입니다.
통사론:
단일 데이터베이스의 경우
mysqldump (옵션) db_name (테이블)
여러 데이터베이스의 경우
mysqldump (옵션) – 데이터베이스 DB1 (DB2 DB3…)
모든 데이터베이스에 대해
mysqldump (옵션) – 모든 데이터베이스
예:
다음 명령은 ‘newdb’ 데이터베이스 및 파일에있는 데이터베이스의 내용을 내 보냅니다. newdb.sql .
mysqldump --databases newdb > newdb.sql
Q # 24) MySQL 사용자의 비밀번호는 어떻게 변경하나요?
대답: 세트 암호 문은 MySQL 사용자의 암호를 변경하는 데 사용됩니다.
통사론:
'username'@ 'hostname'에 대한 비밀번호 설정 = PASSWORD (‘password ');
예:
다음 명령문은 루트 암호를 설정하거나 변경합니다.
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
Q # 25) UNIX TIMESTAMP와 MySQL TIMESTAMP의 차이점은 무엇입니까?
대답: UNIX TIMESTAMP 및 MySQL TIMESTAMP는 모두 날짜 및 시간 값을 나타내는 데 사용됩니다. 이 값의 주요 차이점은 UNIX TIMESTAMP는 32 비트 정수를 사용하여 값을 나타내고 MySQL TIMESTAMP는 사람이 읽을 수있는 형식으로 값을 나타냅니다.
예:
UNIX 시간 값은 SELECT 쿼리의 FROM_UNIXTIME 함수에서 사람이 읽을 수있는 형식으로 날짜 및 시간 값을 가져 오는 데 사용됩니다.
SELECT FROM_UNIXTIME (1596222320) AS 'MySQLTIMESTAMP';
날짜 및 시간 값은 SELECT 쿼리의 UNIX_TIMESTAMP 함수에서 UNIX 형식의 날짜 및 시간 값을 가져 오는 데 사용됩니다.
SELECT UNIX_TIMESTAMP ('2018-12-25 09:45:40') AS 'UNIXTIMESTAMP';
Q # 26) MySQL 클라이언트를 사용하여 SQL 파일의 테이블을 데이터베이스로 어떻게 가져올 수 있습니까?
bin 파일로 수행 할 작업
대답: 다음 MySQL 문을 사용하여 SQL 파일에서 데이터베이스 테이블을 데이터베이스로 가져올 수 있습니다.
mysql -u 사용자 이름 -p 데이터베이스 _ 이름
예:
루트 사용자의 비밀번호가 비어있는 경우 다음 명령은 'newdb.sql'파일에서 데이터베이스로 테이블을 가져옵니다. `mydb`.
mysql -u root mydb
Q # 27) 기본 키와 고유 키의 차이점은 무엇입니까?
대답: 고유 데이터는 기본 키 및 고유 키 필드에 저장됩니다. 기본 키 필드는 NULL 값을 허용하지 않지만 고유 키 필드는 NULL 값을 허용합니다.
예:
에서 사용자 테이블, 신분증 필드는 기본 키 그리고 이메일 필드는 고유 키 . 2에 대해 이메일 필드가 NULL 인 테이블에 두 개의 레코드가 삽입됩니다.nd기록. 고유 필드가 NULL 값을 지원하므로 레코드가 올바르게 삽입됩니다.
INSERT INTO users (username, email, password) VALUES('admin', 'admin@example.com', '7890'), ('staff', 'NULL', '1234'); SELECT * FROM users;
Q # 28) IFNULL () 함수를 사용하는 목적은 무엇입니까?
대답: IFNULL () 함수는 두 개의 인수를 사용합니다. 첫 번째 인수의 값이 NULL이 아니면 첫 번째 인수 값을 반환하고 첫 번째 인수의 값이 NULL이면 두 번째 인수를 반환합니다.
예:
여기서 IFNULL 함수의 첫 번째 인수는 NULL이 아닙니다. 따라서 출력은 첫 번째 인수 값입니다.
SELECT IFNULL ('Tutorial', 'fahmidasclassroom.com');
여기서 IFNULL 함수의 첫 번째 인수는 NULL입니다. 따라서 출력은 NULL입니다.
SELECT IFNULL ('NULL', 'fahmidasclassroom.com');
Q # 29) 조인이란 무엇입니까? 다양한 유형의 MySQL 조인을 설명하십시오.
대답: 일치하는 열을 기반으로 두 개 이상의 테이블을 연결하는 데 사용되는 SQL 문을 조인이라고합니다. 주로 복잡한 쿼리에 사용됩니다.
다양한 유형의 SQL 조인이 아래에 언급되어 있습니다.
- 내부 조인 : 기본 조인입니다. 조인 테이블에서 값이 일치하면 레코드를 반환합니다.
- 왼쪽 외부 결합 : 오른쪽 테이블에서 일치하는 레코드를 기준으로 왼쪽 테이블의 모든 레코드를 반환합니다.
- 오른쪽 외부 결합 : 왼쪽 테이블에서 일치하는 레코드를 기준으로 오른쪽 테이블의 모든 레코드를 반환합니다.
- 전체 외부 결합 : 왼쪽 또는 오른쪽 테이블에서 일치하는 모든 레코드를 반환합니다.
예:
두 개의 테이블, 제조업 자 과 제품 이 예에서는 INNER JOIN의 사용을 보여주기 위해 사용됩니다. 여기서 SELECT 쿼리는이 두 테이블의 현재 레코드를 표시하는 데 사용됩니다.
SELECT * FROM manufacturers;
SELECT * FROM products;
INNER JOIN은 일치에 따라 제품 테이블의 모든 ID와 이름이 표시되는 다음 SELECT 쿼리에서 사용됩니다. 제조업체 _ID 의 제품 와 함께 신분증 의 제조업 자 표.
SELECT products.id, products.name FROM products INNER JOIN manufacturers ON manufacturers.id= products.manufacturer_id;
Q # 30) 테이블에서 특정 수의 레코드를 검색하려면 어떻게해야합니까?
대답: 한도 절은 테이블에서 특정 수의 레코드를 검색하기 위해 SQL 문과 함께 사용됩니다. 검색되는 레코드와 레코드 수는 LIMIT 절에 의해 정의됩니다.
통사론:
시작 _ 번호, 행 _ 수 LIMIT
예:
Products 테이블에는 첫 번째 SELECT 쿼리에 의해 표시되는 5 개의 레코드가 있고 두 번째 SELECT 쿼리는 2의 레코드를 표시하는 데 사용됩니다.nd~ 3rdLIMIT 1, 2를 사용하여
SELECT * FROM products;
SELECT * FROM products LIMIT 1, 2;
Q # 31) MySQL에서 테이블을 XML 파일로 내보내려면 어떻게해야합니까?
대답: '-X'옵션은 파일을 XML로 내보내기 위해 'mysql'명령과 함께 사용됩니다. 다음 명령문은 데이터베이스의 모든 테이블을 XML 파일로 내 보냅니다.
mysql -u 사용자 이름 -X -e“SELECT query”database_name
예:
다음 명령은 항목 테이블에 xmlData.xml 파일.
mysql -u root -X -e 'SELECT * from products' newdb > xmlData.xml
Q # 32) CSV 테이블이 무엇인가요?
대답: CSV 스토리지 엔진을 사용하는 MySQL 테이블을 CSV 테이블이라고합니다. 데이터는 CSV 테이블에 쉼표로 구분 된 값으로 저장됩니다. MySQL 서버는 CSV 테이블의 내용을 저장하기 위해 확장자가‘.csv’인 데이터 파일을 생성합니다.
예:
다음 create 문은 book이라는 CSV 파일을 생성합니다.
CREATE TABLE book ( id INT NOT NULL) ENGINE=CSV;
Q # 33) 테이블 열의 합계를 어떻게 계산할 수 있습니까?
대답: 합집합() 함수는 모든 열의 합계를 계산하는 데 사용됩니다.
통사론:
SUM (DISTINCT 표현식)
예:
제품 테이블에는 가격이라는 숫자 필드가 있습니다. 이 예에서 SUM () 함수 총 가치를 계산하는 데 사용됩니다 가격 들.
SELECT * FROM products; SELECT SUM(price) as total FROM products;
Q # 34) 테이블의 총 레코드 수를 어떻게 계산할 수 있습니까?
대답: 카운트() 함수 테이블의 총 레코드 수를 계산하는 데 사용됩니다.
통사론:
COUNT (표현식)
예:
다음 SELECT 쿼리는 총 레코드 수를 계산하는 데 사용됩니다. 제품 표.
SELECT COUNT(*) as `Total Records` FROM products;
Q # 35) DELETE와 TRUNCATE의 차이점을 설명하세요.
대답: DELETE 및 TRUNCATE 명령은 모두 데이터베이스 테이블에서 레코드를 삭제하는 데 사용됩니다. 그러나 이러한 명령 간에는 몇 가지 중요한 차이점이 있습니다. 테이블에 AUTO_INCREMENT PRIMARY KEY 필드가 포함되어 있으면 이러한 명령의 효과를 제대로 표시 할 수 있습니다.
이러한 명령 간의 두 가지 차이점은 아래에 설명되어 있습니다.
- DELETE 명령은 테이블에서 단일 또는 다중 또는 모든 레코드를 삭제하는 데 사용됩니다. TRUNCATE 명령은 테이블에서 모든 레코드를 삭제하거나 테이블을 비우는 데 사용됩니다.
- DELETE 명령을 사용하여 테이블에서 모든 레코드를 삭제하면 테이블이 다시 초기화되지 않습니다. 따라서 AUTO_INCREMENT 필드는 사용자가 레코드를 삽입 할 때 하나에서 계산되지 않습니다.
그러나 TRUNCATE 명령을 사용하여 테이블의 모든 레코드를 삭제하면 테이블이 다시 초기화되고 AUTO_INCREMENT 필드에 대한 새 레코드가 시작됩니다.
예:
이 예에서는 이전에 만든 사용자 테이블이 사용됩니다.
먼저 SELECT 쿼리는 사용자 테이블의 모든 레코드를 표시합니다. DELETE 쿼리는 사용자의 테이블에서 모든 레코드를 삭제합니다. INSERT 쿼리는 사용자의 테이블에 새 레코드를 삽입합니다. 삽입 후 SELECT 쿼리가 다시 실행되면 새로운 신분증 삭제 후 계산됩니다. 신분증 .
SELECT * FROM users; DELETE FROM users; INSERT INTO users (username, email) VALUES ('Durjoy', 'durjoy@gmail.com'); SELECT * FROM users;
현재 사용자 테이블에는 두 개의 레코드가 있으며 모든 레코드를 삭제 한 후 새 레코드를 삽입하면 새 ID는 1이 아니라 3입니다.
이 부분에서는 동일한 쿼리가 실행되며 DELETE 대신 TRUNCATE 문을 사용했습니다. 새 레코드의 id 값이 1 인 것으로 표시됩니다.
TRUNCATE table users; INSERT INTO users (username, email) VALUES ('Farheen', 'farheen@gmail.com'); SELECT * FROM users;
Q # 36) 스토리지 엔진이란 무엇입니까? InnoDB와 MyISAM 엔진의 차이점은 무엇입니까?
대답: MySQL 서버의 주요 구성 요소 중 하나는 다양한 유형의 데이터베이스 작업을 수행하기위한 스토리지 엔진입니다. 생성 된 각 데이터베이스 테이블은 특정 스토리지 엔진을 기반으로합니다.
MySQL은 두 가지 유형의 스토리지 엔진을 지원합니다. 트랜잭션 및 비 트랜잭션 . InnoDB는 트랜잭션 인 MySQL의 기본 스토리지 엔진입니다. MyISAM 스토리지 엔진은 비 트랜잭션 스토리지 엔진입니다.
InnoDB와 MyISAM 스토리지 엔진의 차이점은 아래에서 설명합니다.
- MyISAM은 FULLTEXT 인덱스를 지원하지만 InnoDB는 FULLTEXT 인덱스를 지원하지 않습니다.
- MyISAM은 더 빠르고 InnoDB는 더 느립니다.
- InnoDB는 ACID (Atomicity, Consistency, Isolation, Durability) 속성을 지원하지만 MyISAM은 지원하지 않습니다.
- InnoDB는 행 수준 잠금을 지원하고 MyISAM은 테이블 수준 잠금을 지원합니다.
- InnoDB는 대규모 데이터베이스에 적합하고 MyISAM은 소규모 데이터베이스에 적합합니다.
Q # 37) 거래 란 무엇인가요? MySQL 트랜잭션 속성을 설명합니다.
대답: 데이터베이스 작업 그룹이 단일 단위로 수행되는 경우이를 트랜잭션이라고합니다. 트랜잭션 작업의 작업이 불완전하게 남아 있으면 트랜잭션이 성공하지 못합니다. 따라서 트랜잭션을 성공적으로 수행하려면 트랜잭션의 모든 작업을 완료해야합니다.
트랜잭션에는 ACID 속성으로 알려진 4 개의 속성이 있습니다. 이러한 속성은 아래에 설명되어 있습니다.
- 원 자성 : 트랜잭션의 모든 작업이 성공적으로 완료되도록 보장합니다. 그렇지 않으면 완료된 모든 작업이 실패에 대해 이전 상태로 롤백됩니다.
- 일관성: 커밋 된 트랜잭션에 대해 데이터베이스 상태를 정확하게 변경해야합니다.
- 격리: 트랜잭션의 모든 작업이 독립적이고 투명하게 수행되도록합니다.
- 내구성: 커밋 된 모든 트랜잭션이 모든 유형의 시스템 오류에 대해 일관되도록 보장합니다.
Q # 38) 커밋 및 롤백 문의 기능은 무엇입니까?
대답: Commit은 트랜잭션의 모든 작업이 성공적으로 완료 될 때 실행되는 트랜잭션 명령입니다. 트랜잭션을 확인하기 위해 데이터베이스를 영구적으로 수정합니다.
통사론:
범하다;
롤백은 트랜잭션 작업 중 하나가 실패 할 때 실행되는 또 다른 트랜잭션 명령이며 트랜잭션 작업에 의해 수행 된 모든 변경 사항을 실행 취소하여 트랜잭션을 실패하게 만듭니다.
통사론:
롤백;
Q # 39) MyISAM Static과 MyISAM Dynamic의 차이점은 무엇입니까?
대답: MyISAM Static 및 MyISAM dynamic은 MyISAM 스토리지 엔진의 변형입니다. 이 표의 차이점은 아래에 설명되어 있습니다.
- MyISAM 정적 테이블의 모든 필드는 고정 길이이며 MyISAM 동적 테이블은 BLOB, TEXT 등과 같은 가변 길이 필드를 허용합니다.
- 데이터 손상 후 MyISAM 동적 테이블보다 MyISAM 정적 테이블을 복원하는 것이 더 쉽습니다.
Q # 40) 트리거 란 무엇입니까? MySQL에서 트리거를 어떻게 생성 할 수 있습니까?
대답: MySQL 데이터베이스의 중요한 기능 중 하나는 특정 데이터베이스 이벤트가 발생할 때 자동으로 실행되는 트리거입니다.
삽입, 업데이트 또는 명령문 삭제 실행 전후에 발생합니다. 데이터베이스 사용자가 일부 데이터베이스 작업을 자동으로 수행하려고 할 때 매우 유용한 옵션입니다.
트리거 예 :
공급자의 품목을 삭제하려면 항목 '에서 특정 공급 업체의 항목을 삭제 한 후 자동으로 테이블 공급 업체 테이블에 다음과 같은 방법으로 트리거를 작성하십시오.
예:
이것은 레코드가에서 제거 될 때 자동으로 실행되는 삭제 후 트리거의 예입니다. 제조업체 테이블에서 모든 레코드를 삭제합니다. 제품 삭제 된 테이블 신분증 의 제조업체 테이블은 제조업체 _ID 의 분야 제품 표.
DELIMITER // CREATE TRIGGER manufacturer_after_delete AFTER DELETE ON manufacturers FOR EACH ROW BEGIN DELETE FROM products WHERE products.manufacturers_id = OLD.id; END; //
결론
MySQL 서버에는 테이블 데이터에 대해 다양한 유형의 작업을 수행하기위한 몇 가지 내장 함수와 절이 있습니다. 이 기사에서는 MySQL 서버에서 가장 일반적으로 사용되는 SQL 함수와 절을 다양한 예제와 함께 설명합니다.
최고의 MySQL 인터뷰 질문에 대한이 기사가 더 신선하고 숙련 된 전문가를 위해 MySQL 서버의 기본 및 고급 수준 개념을 이해하는 데 도움이되기를 바랍니다.
최선을 다하겠습니다 !!
추천 도서
- 인터뷰 질문 및 답변
- 몇 가지 흥미로운 소프트웨어 테스트 인터뷰 질문
- Oracle 인터뷰 질문 : Oracle Basic, SQL, PL / SQL 질문
- 2021 년 인터뷰를 클리어하기위한 20 가지 선택적 QA 인터뷰 질문
- ETL 테스트 인터뷰 질문 및 답변
- 상위 40 개 C 프로그래밍 인터뷰 질문 및 답변
- Teradata 인터뷰 질문 및 답변
- 읽어야 할 인기있는 40 가지 J2EE 인터뷰 질문 및 답변
- SQL 대 MySQL 대 SQL Server의 차이점 (예제 포함)
- 상위 40 개 최고의 MySQL 인터뷰 질문 및 답변 (2021 개 질문)