MariaDB 튜토리얼: 구문 학습, 예제가 포함된 명령

MariaDB?

MariaDB 의 포크이다 MySQL 데이터베이스 관리 시스템. 그것은 원래 개발자에 의해 만들어졌습니다. 이 DBMS 도구는 소규모 및 기업 작업 모두에 대한 데이터 처리 기능을 제공합니다.

MariaDB 의 개선된 버전입니다 MySQL. 여기에는 수많은 강력한 기능이 내장되어 있으며 다른 곳에서는 찾을 수 없는 많은 유용성, 보안 및 성능 개선 사항이 있습니다. MySQL.

의 기능은 다음과 같습니다. MariaDB:

  • It operaGPL, BSD 또는 LGPL 라이센스에 따른 테스트입니다.
  • MariaDB 대중적이고 표준적인 쿼리 언어를 지원합니다.
  • 다른 관계형 데이터베이스 관리 시스템과 통합할 수 있는 고성능 엔진을 포함하여 다양한 스토리지 엔진이 함께 제공됩니다.
  • 갈레라를 제공합니다. cluster 기술.
  • MariaDB 웹 개발에 널리 사용되는 언어인 PHP를 지원합니다.
  • MariaDB 다른 실행 가능 operating 시스템이며 다양한 프로그래밍 언어를 지원합니다.
  • MariaDB 에서는 사용할 수 없는 추가 명령이 제공됩니다. MySQL. MySQL DBMS 성능에 부정적인 영향을 미치는 기능이 있습니다. 이러한 기능은 다음에서 대체되었습니다. MariaDB.

MariaDB 대 MySQL

다음은 다음과 같은 몇 가지 주요 차이점입니다. MariaDB vs MySQL

매개 변수 MariaDB MySQL
스토리지 엔진을 위한 추가 옵션 MariaDB 다른 곳에서는 볼 수 없는 12개의 새로운 스토리지 엔진이 있습니다. MySQL. 비해 저장 옵션이 적습니다. MariaDB.
속도 향상 MariaDB 비해 향상된 속도를 보여줍니다. MySQL. 속도 최적화를 위한 다양한 기능이 제공됩니다. 이러한 기능에는 파생된 뷰/테이블, 하위 쿼리, 실행 제어, 디스크 액세스 및 최적화 프로그램 제어가 포함됩니다. MySQL 비해 느린 속도를 보인다. MariaDB. 속도 최적화를 위해 해시 인덱스와 같은 몇 가지 기능에만 의존합니다.
더 빠른 캐시/인덱스 메모리 스토리지 엔진으로 MariaDB, INSERT 문은 표준보다 24% 완료될 수 있습니다. MySQL. 메모리 저장 엔진 MySQL 그에 비해 속도가 느리다 MariaDB.
더 크고 더 빠른 연결 풀 MariaDB 더 빠르게 실행하고 최대 200,000개 이상의 연결을 지원할 수 있는 고급 스레드 풀이 함께 제공됩니다. 에서 제공하는 스레드 풀 MySQL 시간당 최대 200,000개의 연결을 지원할 수 없습니다.
향상된 복제 In MariaDB, 복제를 더욱 안전하고 빠르게 수행할 수 있습니다. 업데이트도 기존보다 2배 더 빠르게 수행할 수 있습니다. MySQL. MySQL님의 통신unity 에디션에서는 고정된 개수의 스레드를 연결할 수 있습니다. MySQL의 엔터프라이즈 플랜에는 스레드 기능이 포함되어 있습니다.
새로운 기능/확장 MariaDB JSON, WITH 및 KILL 문을 포함한 새로운 기능과 확장 기능이 함께 제공됩니다. 새로운 MariaDB 기능은 제공되지 않습니다 MySQL.
누락 된 기능 MariaDB 제공되는 기능 중 일부가 부족합니다. MySQL 기업용 에디션. 이 문제를 해결하기 위해 대체 오픈 소스 플러그인을 제공합니다. 따라서, MariaDB 사용자는 다음과 같은 기능을 즐길 수 있습니다. MySQL 엔터프라이즈 에디션 사용자. 엔터프라이즈 에디션 MySQL 독점 코드를 사용합니다. 사용자만 MySQL Enterprise Edition은 이에 액세스할 수 있습니다.

설치하는 방법 MariaDB

독립 실행형 응용 프로그램으로 설치

사용하기 위해서는 MariaDB, 컴퓨터에 설치해야 합니다.

설치는 다음을 통해 수행할 수 있습니다.wing 아래에 주어진 단계:

단계 1) 아래 URL 열기
링크에서 설치 파일을 다운로드하세요. https://downloads.mariadb.org/

단계 2) Double 파일을 클릭하여 설치를 시작하세요
다운로드가 완료되면 파일 열기

단계 3) 다음 버튼을 클릭하십시오.
팝업창에서 다음 버튼을 클릭하세요.

설치 MariaDB

단계 4) 라이센스 계약에 동의
그런 다음 다음 버튼을 클릭합니다.

설치 MariaDB

단계 5) 왼쪽 메뉴에서 MariaDB 서버
설치할 기능을 선택하고 다음을 클릭하십시오.

설치 MariaDB

단계 6) 비밀번호를 입력하십시오.
다음 창에서는 루트 사용자의 비밀번호를 변경해야 합니다.

  1. 비밀번호를 입력하고 동일한 비밀번호를 다시 입력하여 확인하세요. 원격 컴퓨터의 액세스를 허용하려면 필요한 확인을 활성화하십시오.box.
  2. 완료되면 다음 버튼을 클릭하세요.

설치 MariaDB

단계 7) 이름 입력 및 포트 번호 선택
다음 창에서 인스턴스 이름을 입력하고 포트 번호를 선택한 후 필요한 크기를 설정합니다. 다음 버튼을 클릭하세요.

설치 MariaDB

단계 8) 다음을 클릭하십시오.
다음 창에서 다음 버튼을 클릭하기만 하면 됩니다.

단계 9) 설치를 클릭하십시오
설치 버튼을 클릭하여 설치를 시작합니다.

설치 MariaDB

단계 10) 진행률 표시줄 표시
진행률 표시줄 쇼wing 설치 진행 상황이 표시됩니다:

설치 MariaDB

단계 11) 완료 버튼을 클릭하세요
설치가 완료되면 마침 버튼이 표시됩니다. 창을 닫으려면 버튼을 클릭하세요.

설치 MariaDB

단계 12) 축하합니다!
당신은 지금 MariaDB 컴퓨터에 설치되어 있어야합니다.

명령 프롬프트 작업

이제 당신은 MariaDB 컴퓨터에 설치되었으면 이제 실행하고 사용을 시작할 차례입니다. 이 작업은 다음을 통해 수행할 수 있습니다. MariaDB 명령 프롬프트.

아래 단계를 따르십시오.

단계 1) 시작을 클릭하고 모든 프로그램을 선택한 다음 클릭하세요. MariaDB...

단계 2) 선택 MariaDB 명령 프롬프트를 누릅니다.

MariaDB 명령 프롬프트

단계 3) XNUMXD덴탈의 MariaDB 명령 프롬프트가 시작됩니다. 이제 로그인할 시간입니다. 루트 사용자로 로그인해야 하며 설치 시 설정한 비밀번호를 입력해야 합니다. MariaDB. 팔로우를 입력하세요wing 명령 프롬프트에서 명령:

MySQL -u root -p

단계 4) 비밀번호를 입력하고 리턴 키를 누르십시오. 아래와 같이 로그인되어 있어야 합니다.

MariaDB 명령 프롬프트

이제 로그인되었습니다 MariaDB.

데이터 타입

MariaDB 팔로우를 지원합니다wing 데이터 유형 :

  • 문자열 데이터 유형
  • 숫자 데이터 유형
  • 날짜/시간 데이터 유형
  • 대형 객체 데이터 유형

문자열 데이터 유형

여기에는 다음이 포함됩니다.wing:

문자열 데이터 유형 상품 설명
문자(크기) 크기는 저장할 문자 수를 나타냅니다. 최대 255자를 저장합니다. 고정 길이 문자열.
varchar(크기) 크기는 저장할 문자 수를 나타냅니다. 최대 255자를 저장합니다. 가변 길이 문자열.
텍스트(크기) 크기는 저장할 문자 수를 나타냅니다. 최대 255자를 저장합니다. 고정 길이 문자열.
바이너리(크기) 크기는 저장할 문자 수를 나타냅니다. 최대 255자를 저장합니다. 고정 크기 문자열.

숫자 형 데이터 타입

여기에는 다음이 포함됩니다.wing:

숫자 형 데이터 타입 상품 설명
비트 tinyint(1)에 해당하는 매우 작은 정수 값입니다. 부호 있는 값의 범위는 -128에서 127 사이입니다. 부호 없는 값의 범위는 0에서 255입니다.
정수(m) 표준 정수 값입니다. 부호 있는 값의 범위는 -2147483648에서 2147483647 사이입니다. 부호 없는 값의 범위는 0에서 4294967295 사이입니다.
플로트(m, d) 단정밀도의 부동 소수점 숫자입니다.
double(m,d) 부동 소수점 숫자 double 정도.
플로트(p) 부동 소수점 숫자.

날짜/시간 데이터 유형

여기에는 다음이 포함됩니다.wing:

날짜/시간 데이터 유형 상품 설명
날짜 디스플레이yed 'yyyy-mm-dd' 형식입니다. 값 범위는 '1000-01-01'에서 '9999-12-31' 사이입니다.
날짜 시간 디스플레이yed 'yyyy-mm-dd hh:mm:ss' 형식입니다. 값 범위는 '1000-01-01 00:00:00'부터 '9999-12-31 23:59:59' 사이입니다.
타임스탬프(m) 디스플레이yed 'yyyy-mm-dd hh:mm:ss' 형식입니다. 값 범위는 '1970-01-01 00:00:01'utc와 '2038-01-19 03:14:07'utc입니다.
Time 디스플레이yed 'hh:mm:ss' 형식입니다. 값 범위는 '-838:59:59'에서 '838:59:59' 사이입니다.

LOB(대형 개체 데이터 유형)

여기에는 다음이 포함됩니다.wing:

대형 객체 데이터 유형 상품 설명
작은 덩어리 최대 크기는 255바이트입니다.
덩어리(크기) 최대 크기는 65,535바이트입니다.
중간 덩어리 최대 크기는 16,777,215바이트입니다.
긴 텍스트 최대 크기는 4GB입니다.

데이터베이스 및 테이블 생성

새 데이터베이스를 생성하려면 MariaDB, 루트 사용자와 관리자에게만 부여되는 특별한 권한이 있어야 합니다.

새 데이터베이스를 생성하려면 다음을 수행하는 CREATE DATABASE 명령을 사용해야 합니다.wing 통사론:

CREATE DATABASE DatabaseName;

이 경우 데이터베이스를 생성하고 Demo라는 이름을 지정해야 합니다.

시작 MariaDB 명령 프롬프트에 다음을 입력하여 루트 사용자로 로그인합니다.wing 명령:

mysql -u root -p

루트 비밀번호를 입력하고 리턴 키를 누르십시오. 로그인됩니다.

이제 Follow를 실행해 보세요.wing 명령:

CREATE DATABASE Demo;

데이터베이스 및 테이블 생성 MariaDB

그런 다음 Demo라는 데이터베이스를 만들었습니다. 데이터베이스가 성공적으로 생성되었는지 확인하는 것이 좋습니다. 다음을 실행하여 사용 가능한 데이터베이스 목록을 표시하기만 하면 됩니다.wing 명령:

SHOW DATABASES;

데이터베이스 및 테이블 생성 MariaDB

위 출력은 데모 데이터베이스가 목록의 일부이므로 데이터베이스가 성공적으로 생성되었음을 보여줍니다.

MariaDB 데이터베이스 선택

특정 데이터베이스를 사용하거나 작업하려면 사용 가능한 데이터베이스 목록에서 해당 데이터베이스를 선택해야 합니다. 데이터베이스를 선택한 후 데이터베이스 내에서 테이블 생성 등의 작업을 수행할 수 있습니다.

데이터베이스를 선택하려면 USE 명령을 사용해야 합니다. 아래 주어진 구문을 사용합니다.

USE database_name;

데모 데이터베이스를 사용해야 합니다. follo를 실행하여 선택할 수 있습니다.wing 명령:

USE Demo;

데이터베이스 및 테이블 생성 MariaDB

위 이미지는 MariaDB 명령 프롬프트가 없음에서 선택한 데이터베이스 이름으로 변경되었습니다.

이제 데모 데이터베이스 내에서 테이블을 생성할 수 있습니다.

MariaDB – 테이블 생성

테이블을 생성하려면 데이터베이스를 선택해야 합니다. CREATE TABLE 문을 사용하여 테이블을 생성할 수 있습니다. 명령 구문은 다음과 같습니다.

CREATE TABLE tableName (columnName columnType);

열 중 하나를 기본 키로 설정할 수 있습니다. 이 열은 Null 값을 허용해서는 안 됩니다.

데모 데이터베이스 내에 Book 및 Price 테이블이라는 두 개의 테이블을 생성하겠습니다. 각 테이블에는 두 개의 열이 있습니다.

id와 name이라는 두 개의 열이 있는 Book 테이블을 만드는 것부터 시작해 보겠습니다. 팔로우 실행wing 명령:

CREATE TABLE Book(  
id INT NOT NULL AUTO_INCREMENT,  
name VARCHAR(100) NOT NULL,  
PRIMARY KEY (id));  

데이터베이스 및 테이블 생성 MariaDB

PRIMARY KEY 제약 조건은 id 열을 테이블의 기본 키로 설정하는 데 사용되었습니다. AUTO_INCREMENT 속성은 테이블에 삽입된 새 레코드마다 자동으로 id 열의 값을 1씩 증가시킵니다. 모든 열은 Null 값을 허용하지 않습니다.

이제 두 번째 테이블인 Price 테이블을 만듭니다.

CREATE TABLE Price(  
id INT NOT NULL AUTO_INCREMENT,  
price float NOT NULL,  
PRIMARY KEY (id));  

데이터베이스 및 테이블 생성 MariaDB

id 열이 테이블의 기본 키로 설정되었습니다.

쇼wing 테이블

이제 두 개의 테이블을 생성했으므로 테이블이 성공적으로 생성되었는지 여부를 확인하는 것이 좋습니다. 다음을 실행하여 데이터베이스에 포함된 테이블 목록을 표시할 수 있습니다.wing 명령:

SHOW TABLES;

데이터베이스 및 테이블 생성 MariaDB

위 스크린샷은 데모 데이터베이스 내에서 두 테이블이 성공적으로 생성되었음을 보여줍니다.

쇼wing 테이블 구조

특정 테이블의 구조를 보려면 일반적으로 DESC로 축약되는 DESCRIBE 명령을 사용할 수 있습니다. 그것은 추종자가 필요합니다wing 통사론:

DESC TableName;

예를 들어 Book이라는 테이블의 구조를 보려면 다음을 실행하면 됩니다.wing 명령;

DESC Book;

데이터베이스 및 테이블 생성 MariaDB

테이블에는 두 개의 열이 있습니다. Price 테이블의 구조를 보려면 다음을 실행하세요.wing 명령:

DESC Price;

데이터베이스 및 테이블 생성 MariaDB

CRUD 및 조항

INSERT

데이터를 삽입하려면 MariaDB 테이블에서는 INSERT INTO 문을 사용해야 합니다. 이 명령은 아래 주어진 구문을 사용합니다.

INSERT INTO tableName
(column_1, column_2, ... )  
VALUES  
(value1, value2, ... ),  
(value1, value2, ... ),  
...;   

위 구문은 데이터를 삽입하려는 테이블 열과 삽입해야 하는 데이터를 지정해야 함을 보여줍니다.

Book 테이블에 레코드를 삽입해 보겠습니다.

INSERT INTO book  
(id, name)  
VALUES(1, 'MariaDB Book');  

CRUD 및 조항 -INSERT

테이블에 단일 레코드를 삽입했습니다. 가격 테이블에 레코드를 삽입합니다.

INSERT INTO price
(id, price)  
VALUES(1, 200);  

CRUD 및 조항 -INSERT

기록이 생성되었습니다.

SELECT

SELECT 문은 데이터베이스 테이블의 내용을 보거나 보는 데 도움이 됩니다. 예를 들어 Book 테이블의 내용을 보려면 다음을 실행해야 합니다.wing 명령:

SELECT * from book;

CRUD 및 조항 -INSERT

이제 Price 테이블의 내용을 봅니다.

SELECT * from price;

CRUD 및 조항 -INSERT

여러 레코드 삽입

여러 레코드를 하나의 파일에 삽입하는 것이 가능합니다. MariaDB 한 번에 테이블. 이를 시연하려면 다음을 실행하세요.wing 예:

INSERT INTO book
(id, name)  
VALUES  
(2,'MariaDB Book2'),  
(3,'MariaDB Book3'),  
(4,'MariaDB Book4'),  
(5,'MariaDB Book5');

여러 레코드 삽입

테이블을 쿼리하여 레코드가 성공적으로 삽입되었는지 확인할 수 있습니다.

SELECT * FROM book;

여러 레코드 삽입

레코드가 성공적으로 삽입되었습니다. 다음 예제를 실행하여 Price 테이블에 여러 레코드를 삽입합니다.

INSERT INTO price 
(id, price)  
VALUES  
(2, 250),  
(3, 220),  
(4, 190),  
(5, 300); 

여러 레코드 삽입

레코드가 성공적으로 생성되었는지 확인해 보겠습니다.

SELECT * FROM price;

여러 레코드 삽입

UPDATE

UPDATE 명령은 테이블에 이미 삽입된 레코드를 변경하거나 수정하는 데 도움이 됩니다. 이를 WHERE 절과 결합하여 업데이트할 레코드를 지정할 수 있습니다. 구문은 다음과 같습니다.

UPDATE tableName SET field=newValue, field2=newValue2,...  
[WHERE ...]  

UPDATE 명령은 SET, WHERE, LIMIT 및 ORDER BY와 같은 절과 결합될 수도 있습니다. 곧 이 내용을 보게 될 것입니다:

Followo가 포함된 Price라는 테이블을 생각해 보세요.wing 기록 :

CRUD 및 조항-UPDATE

ID가 1인 책의 가격을 200에서 250으로 변경해 보겠습니다.

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD 및 조항-UPDATE

명령이 성공적으로 실행되었습니다. 이제 테이블을 쿼리하여 변경이 발생했는지 확인할 수 있습니다.

CRUD 및 조항-UPDATE

위 스크린샷은 변경 사항이 구현되었음을 보여줍니다. 다음과 같은 테이블 책을 고려하십시오.wing 기록 :

CRUD 및 조항-UPDATE

Book이라는 책의 이름을 다음으로 변경해 보겠습니다. MariaDB 책1. 책의 ID는 1입니다. 이에 대한 명령은 다음과 같습니다.

UPDATE book
SET name = “MariaDB Book1”
WHERE id = 1;

CRUD 및 조항-UPDATE

변경 사항이 구현되었는지 확인하세요.

CRUD 및 조항-UPDATE

위 스크린샷은 변경 사항이 성공적으로 구현되었음을 보여줍니다.

위의 예에서는 한 번에 하나의 열만 변경했습니다. 그러나 한 번에 여러 열을 변경할 수 있습니다. 예제를 사용하여 이를 보여드리겠습니다.

가격표를 다음과 함께 사용해 보겠습니다.wing 데이터 :

CRUD 및 조항-UPDATE

id가 5인 책의 id와 가격을 모두 변경하겠습니다. id를 6으로, 가격을 6으로 변경하겠습니다. 다음을 실행하세요.wing 명령:

UPDATE price
SET id = 6,
price = 280
WHERE id = 5;

CRUD 및 조항-UPDATE

이제 테이블을 쿼리하여 변경이 성공적으로 이루어졌는지 확인합니다.

CRUD 및 조항-UPDATE

변경이 성공적으로 이루어졌습니다.

.

테이블에서 하나 이상의 레코드를 삭제해야 할 때 DELETE 명령을 사용합니다. 명령 구문은 다음과 같습니다.

DELETE FROM tableName  
[WHERE condition(s)]  
[ORDER BY exp [ ASC | DESC ]]  
[LIMIT numberRows];   

다음과 함께 가격표를 고려하십시오.wing 기록 :

CRUD 및 조항-DELETE

테이블에서 마지막 레코드를 삭제해야 합니다. ID는 6이고 가격은 280입니다. 레코드를 삭제해 보겠습니다.

DELETE FROM price
WHERE id = 6;   

CRUD 및 조항-DELETE

명령이 성공적으로 실행되었습니다. 삭제가 성공했는지 확인하기 위해 테이블을 쿼리해 보겠습니다.

CRUD 및 조항-DELETE

출력에는 레코드가 성공적으로 삭제되었음을 표시합니다.

어디에

WHERE 절은 변경이 필요한 정확한 위치를 지정하는 데 도움이 됩니다. INSERT, SELECT, UPDATE, DELETE 등의 문과 함께 사용됩니다. 다음과 함께 가격표를 고려하십시오.wing 데이터 :

CRUD 및 조항-Where

가격이 250 미만인 레코드를 확인해야 한다고 가정합니다. 다음을 실행할 수 있습니다.wing 명령:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD 및 조항-Where

가격이 250 미만인 모든 기록이 반환되었습니다.

WHERE 절은 AND 문과 결합될 수 있습니다. 가격이 250 미만이고 ID가 3보다 큰 가격 테이블의 모든 레코드를 확인해야 한다고 가정합니다. 다음을 실행할 수 있습니다.wing 명령:

SELECT *  
FROM price  
WHERE id > 3  
AND price < 250;   

CRUD 및 조항-Where

하나의 레코드만 반환되었습니다. 그 이유는 지정된 모든 조건, 즉 id가 3 이상, 가격이 250 미만을 충족해야 하기 때문입니다. 이 조건 중 하나라도 위반되면 레코드가 반환되지 않습니다.

이 절은 OR 명령과 결합될 수도 있습니다. 이전 명령의 AND를 OR로 바꾸고 우리가 받는 출력의 종류를 살펴보겠습니다.

SELECT *  
FROM price 
WHERE id > 3  
OR price < 250;   

CRUD 및 조항-Where

이제 2개가 아닌 1개의 기록을 얻습니다. 이는 적격 기록의 경우 지정된 조건 중 하나만 충족하면 되기 때문입니다.

처럼

이 절은 정확한 일치가 필요한 테이블 데이터에 접근할 때 데이터 패턴을 지정하는 데 사용됩니다. INSERT, UPDATE, SELECT 및 DELETE 문과 결합할 수 있습니다.

찾고 있는 데이터의 패턴을 절에 전달해야 하며, 이는 true 또는 false를 반환합니다. 절과 함께 사용할 수 있는 와일드카드 문자는 다음과 같습니다.

  • %: 0개 이상의 문자를 일치시킵니다.
  • _: 단일 문자를 일치시키는 데 사용됩니다.

LIKE 절의 구문은 다음과 같습니다.

SELECT field_1, field_2,... FROM tableName1, tableName2,...  
WHERE fieldName LIKE condition;

% 와일드카드 문자가 포함된 절을 사용하는 방법을 살펴보겠습니다. Follo와 함께 Book 테이블을 사용해 보겠습니다.wing 기록 :

CRUD 및 조항-Where

이름이 M으로 시작하는 모든 레코드를 확인해야 합니다. 다음을 실행할 수 있습니다.wing 명령:

SELECT name  
FROM book  
WHERE name LIKE 'M%';  

CRUD 및 조항-Where

이름이 문자 M으로 시작하기 때문에 모든 레코드가 반환되었습니다. 4로 끝나는 모든 이름을 보려면 다음을 실행하세요.wing 명령:

SELECT name  
FROM book  
WHERE name LIKE '%4';  

CRUD 및 조항-Where

조건을 충족하는 유일한 이름이므로 하나의 이름만 반환되었습니다.

검색 패턴을 와일드카드로 묶을 수도 있습니다.

SELECT name  
FROM book  
WHERE name LIKE '%DB%';  

CRUD 및 조항-Where

% 와일드카드 외에 LIKE 절을 _ 와일드카드와 함께 사용할 수 있습니다. 이는 밑줄 와일드카드이며 단일 문자만 찾습니다.

Follo를 사용하여 가격표를 작업해 보겠습니다.wing 기록 :

CRUD 및 조항-Where

가격이 1_0과 같은 기록을 확인해 보겠습니다. 우리는 팔로우를 운영합니다wing 명령:

SELECT *  
FROM price
WHERE price LIKE '1_0';  

CRUD 및 조항-Where

가격이 190인 기록을 반환했습니다. 다른 패턴을 시도해 볼 수도 있습니다.

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD 및 조항-Where

NOT과 함께 LIKE 절을 사용할 수 있습니다. opera토르. 그러면 지정된 패턴을 충족하지 않는 모든 레코드가 반환됩니다. 예를 들어:

가격표를 다음과 함께 사용해 보겠습니다.wing 기록 :

CRUD 및 조항-Where

가격이 2로 시작하지 않는 모든 레코드를 찾아보겠습니다.

SELECT *  
FROM price  
WHERE price NOT LIKE '2%';  

CRUD 및 조항-Where

단 하나의 레코드만이 지정된 패턴을 충족하지 않습니다.

에 의하여 주문

이 절은 기록을 오름차순 또는 내림차순으로 정렬하는 데 도움이 됩니다. 아래와 같이 SELECT 문과 함께 사용합니다.

SELECT expression(s)  
FROM tables  
[WHERE condition(s)]  
ORDER BY exp [ ASC | DESC ];   

ASC나 DESC 부분을 추가하지 않고도 이 절을 사용할 수 있습니다. 예를 들어:

우리는 가격표를 다음과 함께 사용할 것입니다wing 기록 :

CRUD 및 조항-Where

팔로우를 실행하세요.wing 테이블에 대한 명령:

SELECT * FROM price 
WHERE price LIKE '2%.'
ORDER BY price;   

CRUD 및 조항-Where

위의 명령에서는 가격으로 주문했습니다. 가격이 오름차순으로 기록이 정렬되었습니다. 즉, 순서를 지정하지 않으면 기본적으로 오름차순으로 정렬이 수행됩니다.

DESC 옵션을 사용하여 절을 실행해 보겠습니다.

SELECT * FROM price
WHERE price LIKE '2%'  
ORDER BY price DESC;   

CRUD 및 조항-Where

기록은 우리가 지정한 대로 가격이 내림차순으로 정렬되었습니다.

ASC 속성과 함께 ORDER BY 절을 사용해 보겠습니다.

SELECT * FROM price 
WHERE price LIKE '2%.'  
ORDER BY price ASC;   

CRUD 및 조항-Where

레코드가 주문되었지만 가격은 오름차순입니다. 이는 ASC 또는 DESC 속성 없이 ORDER BY 절을 사용할 때와 유사합니다.

DISTINCT

이 절은 테이블에서 레코드를 선택할 때 중복을 방지하는 데 도움이 됩니다. 이는 고유한 기록을 얻는 데 도움이 된다는 것을 의미합니다. 구문은 다음과 같습니다.

SELECT DISTINCT expression(s)  
FROM tableName  
[WHERE condition(s)];   

이를 설명하기 위해 가격 테이블을 다음과 함께 사용하겠습니다.wing 데이터 :

CRUD 및 조항-DISTINCT

테이블에서 가격 열을 선택하면 다음과 같은 결과가 나타납니다.wing 결과:

SELECT price FROM Price;

CRUD 및 조항-DISTINCT

가격이 250인 두 개의 레코드가 있어 중복 항목이 생성됩니다. 고유한 레코드만 있으면 됩니다. 아래와 같이 DISTINCT 절을 사용하여 이를 필터링할 수 있습니다.

SELECT DISTINCT price FROM Price;

CRUD 및 조항-DISTINCT

이제 위 출력에는 중복된 내용이 없습니다.

~

데이터베이스 테이블에서 데이터를 가져오는 데 사용되는 FROM 절입니다. 테이블을 조인할 때도 도움이 될 수 있습니다. 명령 구문은 다음과 같습니다.

SELECT columnNames FROM tableName; 

책 테이블의 내용을 보려면 다음을 실행하세요.wing 명령:

SELECT * FROM price;

CRUD 및 조항-From

이 절을 사용하면 데이터베이스 테이블에서 단일 열만 가져오는 데 도움이 될 수 있습니다. 예를 들어:

SELECT price FROM Price;

CRUD 및 조항-From

고급 작업

저장 프로 시저

절차는 MariaDB 매개변수를 전달할 수 있는 프로그램입니다. 프로시저는 값을 반환하지 않습니다. 프로시저를 생성하려면 CREATE PROCEDURE 명령을 사용합니다.

프로시저를 생성하고 호출하는 방법을 보여주기 위해 book 테이블에서 이름 열을 선택하는 데 도움이 되는 myProcedure()라는 프로시저를 생성하겠습니다. 절차는 다음과 같습니다.

DELIMITER $
    CREATE PROCEDURE myProcedure()
        BEGIN
            SELECT name FROM book;
        END;
;

고급 작업 저장 프로시저

프로시저가 생성되었습니다. 우리는 단순히 프로시저의 BEGIN 및 END 절 내에 SELECT 문을 포함시켰습니다.

이제 아래와 같이 이름으로 프로시저를 호출할 수 있습니다.

CALL myProcedure();

고급 작업 저장 프로시저

프로시저가 호출되면 책 테이블의 이름 열을 반환합니다.

매개변수를 받는 프로시저를 만들 수 있습니다. 예를 들어 책 이름을 선택하고 책 ID를 사용하여 필터링해야 합니다. 우리는 follo를 만들 수 있습니다wing 이에 대한 절차:

DELIMITER $
    CREATE PROCEDURE myProcedure2(book_id int)
        BEGIN
            SELECT name FROM book WHERE id = book_id;
        END;
;

고급 작업 저장 프로시저

위에서는 myProcedure2()라는 프로시저를 만들었습니다. 이 절차는 이름을 확인해야 하는 책의 ID인 book_id라는 하나의 정수 매개변수를 사용합니다. ID가 3인 책 이름을 보려면 다음과 같이 프로시저를 호출할 수 있습니다.

CALL myProcedure2(3);

고급 작업 저장 프로시저

함수

프로시저와 달리 매개변수를 함수에 전달해야 하며 함수는 값을 반환해야 합니다. 함수를 생성하려면 MariaDB, CREATE FUNCTION 문을 사용합니다. 성명서는 다음과 같습니다wing 통사론:

CREATE 
[ DEFINER = { CURRENT-USER | username } ] 
FUNCTION function-name [(parameter datatype [, parameter datatype]) ]
RETURNS datatype [LANGUAGE SQL
                        | DETERMINISTIC
                        | NOT DETERMINISTIC
                        | {CONTAINS SQL 
                          | NO SQL
                          | READS SQL DATA
                          | MODIFIES SQL DATA}
                        | SQL SECURITY {DEFINER | INVOKER}
                        | COMMENT 'comment'

BEGIN

   declaration-section

   executable-section

END;

위의 매개변수는 아래에 설명되어 있습니다.

매개 변수 상품 설명
DEFINER 절 이 매개변수는 선택사항입니다. 지정하지 않으면 정의자는 함수를 생성한 사용자가 됩니다. 다른 정의자를 지정해야 하는 경우 user_name이 함수의 정의자가 되는 DEFINER 절을 포함합니다.
함수 이름 이 기능에 할당될 이름은 MariaDB.
매개 변수 함수에 전달된 매개변수입니다. 함수를 생성하는 동안 모든 매개변수는 다음과 같이 처리됩니다. IN 매개변수 (OUT/INOUT 매개변수 대신).
return_datatype 함수 반환 값의 데이터 유형입니다.
언어 SQL 휴대성에 영향을 주지만 기능에는 영향을 미치지 않습니다.
결정적 이 함수는 여러 매개변수가 제공된 경우에만 하나의 결과를 반환합니다.
비결정적 여러 매개변수가 주어지면 함수가 다른 결과를 반환하는 것이 가능합니다.
SQL을 포함합니다. 알려 MariaDB 이 함수에는 SQL이 포함되어 있습니다. 데이터베이스는 이것이 사실인지 확인하지 않습니다.
SQL 없음 이 절은 사용되지 않으며 기능에 영향을 주지 않습니다.
SQL 데이터 읽기 알 MariaDB 이 함수는 SELECT 문을 사용하여 데이터를 읽지만 데이터를 수정하지는 않습니다.
SQL 데이터 수정 알 MariaDB 이 함수는 INSERT, DELETE, UPDATE 및 기타 기능을 사용합니다. DDL SQL 데이터를 수정하는 명령문입니다.
선언 섹션 여기서 지역 변수를 선언해야 합니다.
실행 섹션 여기에 함수 코드를 추가해야 합니다.

다음은 그 예이다 MariaDB 기능:

DELIMITER //

CREATE FUNCTION sumFunc (x INT )
RETURNS INT DETERMINISTIC

BEGIN

   DECLARE sum INT;
   SET sum = 0;
   label1: WHILE sum <= 3000 DO
   SET sum = sum + x;
   END WHILE label1;
   RETURN sum;
END; //
DELIMITER ;

기능 MariaDB

그런 다음 위의 함수를 다음과 같이 호출할 수 있습니다.

select sumFunc(1000);

이 명령은 다음을 반환합니다.wing:

기능 MariaDB

기능이 끝나면 삭제하는 것이 좋습니다. 이는 follo를 취하는 DROP FUNCTION 문만 호출하면 되므로 쉽습니다.wing 통사론:

DROP FUNCTION function_name;

예를 들어 myFunc라는 함수를 삭제하려면 다음을 실행하면 됩니다.wing 명령:

DROP FUNCTION myFunc;

JOIN

한 번에 둘 이상의 테이블에서 데이터를 검색해야 하는 경우 다음을 사용하세요. MariaDB 조인. 이는 다음을 의미합니다. JOIN 두 개 이상의 테이블에서 작동합니다. 추종자wing 세 가지 유형의 JOINS가 지원됩니다. MariaDB:

  • 내부/단순 조인
  • 왼쪽 외부 조인/왼쪽 조인
  • 오른쪽 외부 조인/오른쪽 조인

하나씩 논의해 보겠습니다.

내부 결합

내부 조인은 조인 조건이 true인 테이블의 모든 행을 반환합니다. 구문은 다음과 같습니다.

SELECT columns  
FROM table-1   
INNER JOIN table-2  
ON table-1.column = table-2.column;  

예 :

우리는 두 개의 테이블, 책, 책을 사용할 것입니다.

책 테이블에는 다음과 같은 내용이 있습니다.wing 데이터 :

내부 결합

가격표에는 다음과 같은 내용이 있습니다.wing 데이터 :

내부 결합

목표는 Book 테이블의 이름 열과 Price 테이블의 가격 열을 단일 테이블로 조인하는 것입니다. 이는 아래에 설명된 것처럼 내부 조인을 사용하여 가능합니다.

SELECT book.name, price.price 
FROM book   
INNER JOIN price 
ON book.id = price.id;   

이 명령은 다음을 반환합니다.wing:

내부 결합

왼쪽 외부 조인

이 조인은 왼쪽 테이블의 모든 행과 다른 테이블의 조인 조건이 true인 행만 반환합니다. 구문은 다음과 같습니다.

SELECT columns  
FROM table-1  
LEFT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

OUTER 키워드는 사각형 안에 배치되었습니다. brackets 선택사항이기 때문입니다.

예 :

SELECT book.name, price.price 
FROM book   
LEFT JOIN price 
ON book.id = price.id;   

이 명령은 다음을 반환합니다.wing:

왼쪽 외부 조인

위 표의 마지막 레코드의 왼쪽에는 일치하는 값이 없습니다. 그래서 NULL로 대체되었습니다.

오른쪽 외부 조인

이 조인은 오른쪽 테이블의 모든 행과 다른 테이블의 조인 조건이 true인 행만 반환합니다. 구문은 다음과 같습니다.

SELECT columns  
FROM table-1  
RIGHT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

OUTER 키워드는 사각형 안에 배치되었습니다. brackets 선택사항이기 때문입니다.

예 :

SELECT book.name, price.price 
FROM book   
RIGHT JOIN price
ON book.id = price.id;   

이 명령은 다음을 반환합니다.wing:

오른쪽 외부 조인

그 이유는 오른쪽 테이블의 모든 행이 다른 테이블의 행과 일치했기 때문입니다. 일부 행이 일치하지 않으면 첫 번째 열에 NULL이 표시됩니다.