PHP에서 빈 문자열은 NULL 값과 동일하지만 MySQL에서는 대소문자가 다릅니다. 즉, 빈 문자열은 NULL 값과 같지 않습니다. 위의 구문을 이해하기 위해 NOT NULL 제약 조건이 있는 열을 만들고 빈 문자열을 삽입할 수 있습니다. 테이블을 만들어 봅시다. 테이블을 생성하는 쿼리는 다음과 같습니다 - mysql> create table EmptyStringNotNullDemo -> ( -> Id int NOT NULL AUTO_INCREMENT,
아니오, MySQL은 인덱스를 사용할 수 없기 때문에 선행 와일드카드가 있을 때마다 MySQL은 검색 성능을 향상시키지 않습니다. anyLetter%로 변경하면 인덱스를 사용할 수 있습니다. 아래 구문은 후행 와일드카드와 함께 사용하는 것이 좋습니다. 구문은 다음과 같습니다 - SELECT *FROM yourTableName WHERE yoorColumnName LIKE anyLetter%; 테이블을 생성하는 쿼리는 다음과 같습니다 - );쿼리 OK, 영향을 받는 행 0개(0.71초) 이제 insert 명령을 사용하여 테이블
테이블을 생성할 때 데이터베이스를 선택해야 합니다. 지금은 샘플 데이터베이스가 있습니다. 스냅샷은 다음과 같습니다. 이제 테이블 이름과 원하는 열 수를 지정해야 합니다. 그런 다음 Go 버튼을 눌러야 합니다. 이제 다음 섹션이 표시됩니다. DECIMAL에는 두 개의 매개변수, 즉 총 자릿수가 필요하고 두 번째 매개변수는 DigitAfterDecimalPoint입니다. DECIMAL의 구조는 다음과 같습니다. DECIMAL(X,Y) 여기서 X는 TotalNumberOfDigit이고 Y는 DigitAfterDecim
다음은 IF 문으로 MySQL WHILE LOOP를 구현하는 예이다. 저장 프로시저에서 사용 중입니다. 다음은 저장 프로시저를 만드는 쿼리입니다. mysql> DELIMITER // mysql> create procedure sp_getDaysDemo() -> BEGIN -> SELECT MONTH(CURDATE()) INTO @current_month; -> SELECT MONTHNAME(CURDATE()) INTO @current_monthname; -> SELECT DAY
MySQL 테이블에서 모든 대문자 문자열을 찾으려면 BINARY UPPER() 함수를 사용해야 합니다. 구문은 다음과 같습니다. SELECT *FROM yourTableName WHERE yourColumnName=BINARY UPPER(yourColumnName); 위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다. mysql> create table FindUpperCaseDemo -> ( -> Id int, &
오늘 날짜가 두 날짜 열 사이에 있는 MySQL 행을 선택하려면 AND 연산자를 사용해야 합니다. 구문은 다음과 같습니다. SELECT *FROM yourTableName WHERE yourDateColumnName1 =yourDateValue; 위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다. );쿼리 OK, 영향을 받는 행 0개(0.80초) 이제 insert 명령을 사용하여 테이블에 일부 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다. insert into selectD
MySQL에서 두 선택 간의 차이에 대해 하위 쿼리를 사용할 수 있습니다. 구문은 다음과 같습니다. SELECT *FROM yourTableName where yourColumnName NOT IN(SELECT yourColumnName FROM youTableName WHERE yourCondition; 위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다. mysql> create table DifferenceSelectDemo -> ( &nb
MySQL이 timediff 출력을 일, 시, 분, 초 형식으로 변환하는 것을 이해하려면 MySQL의 CONCAT()을 사용해야 합니다. 테이블을 만들어 봅시다. 테이블 생성 쿼리는 다음과 같습니다. );Query OK, 영향을 받는 행 0개(0.68초) 삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 레코드를 삽입하는 쿼리는 다음과 같습니다. convertTimeDifferenceDemo( StartDate,EndDate) values(2017-10-11 11:20:30,2017-12-17 15:21:55);쿼
알다시피 DECIMAL() 메서드는 두 개의 매개변수를 사용합니다. 첫 번째 매개변수는 총 자릿수를 알려주고 두 번째 매개변수는 소수점 이하 자릿수를 알려줍니다. 따라서 DECIMAL(10,10)을 사용하면 10개의 소수 자릿수만 사용할 수 있음을 의미합니다. 예:DECIMAL(20,10)을 사용하여 0.9999999999를 저장합니다. 위에서 논의한 내용을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다. mysql> create table Decimal_Demo -> ( -
이 오류는 허용된 한도보다 높게 데이터를 설정하려고 하면 발생할 수 있습니다. 예를 들어 varchar 또는 string의 크기가 비트 데이터 유형보다 크기 때문에 비트 유형의 열에 문자열을 저장할 수 없습니다. 비트 유형 열에는 다음 구문을 사용해야 합니다. anyBitColumnName=b 1ORanyBitColumnName=b 0 위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다. );쿼리 OK, 영향을 받는 행 0개(0.70초) 삽입 명령을 사용하여 테이블에 일부 레코드를 삽입
열의 n번째로 높은 값을 찾으려면 LIMIT 절과 함께 ORDER BY DESC를 사용해야 합니다. 열의 두 번째로 높은 값을 원하면 아래 구문을 사용하십시오. SELECT *FROM yourTableName ORDER BY DESC yourColumnName LIMIT 1,1; 열의 네 번째로 높은 값을 원하면 아래 구문을 사용하십시오. SELECT *FROM yourTableName ORDER BY DESC yourColumnName LIMIT 3,1; 열의 첫 번째 가장 높은 값을 원하면 아래 구문을 사용하십시오. SELE
REPLACE() 함수를 사용하여 데이터베이스 필드에서 특수 문자를 제거할 수 있습니다. 특수 문자는 큰따옴표( ), 숫자 기호(#), 달러 기호($), 퍼센트(%) 등입니다. 데이터베이스 필드에서 특수 문자를 제거하는 구문은 다음과 같습니다. 업데이트 yourTableNameSET yourColumnName=REPLACE(yourColumnName,yourSpecialCharacters,); 위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다. );쿼리 OK, 영향을 받는 행 0개(0.
문자열을 분할하고 MySQL 프로시저의 모든 값을 반복하려면 REPLACE() 함수를 사용할 필요가 없습니다. 이해하려면 먼저 저장 프로시저를 만든 다음 테이블을 만들고 일부 값을 사용하여 저장 프로시저를 호출합니다. 값이 테이블에 삽입됩니다. 저장 프로시저를 생성하는 쿼리는 다음과 같습니다. mysql> DELIMITER // mysql> CREATE PROCEDURE SP_SplitString(Value longtext) -> BEGIN -> DECLARE f
큰 선택을 청크로 검색하려면 ORDER BY LIMIT를 사용해야 합니다. 구문은 다음과 같습니다. SELECT *FROM yourTableName ORDER BY yourColumnName LIMIT 0,10; 위의 구문에서 테이블에서 10개의 행을 가져옵니다. 위의 구문에서 0은 테이블의 결과 집합에서 첫 번째 행을 나타냅니다. 즉, 인덱스 기반이 0임을 의미합니다. LIMIT의 두 번째 값은 테이블에서 검색할 수 있는 최대 행 수를 나타냅니다. 10에서 30 사이의 다음 행을 원하면 이와 같이 LIMIT에서 사용하십시오.
MySQL에서 삽입 또는 업데이트를 중지하려면 SIGNAL SQL STATE 명령을 사용해야 합니다. 트리거 구문은 다음과 같습니다. DELIMITER //CREATE TRIGGER yourTriggerName FOR INSERT ON yourTableName FOR 각 ROWBEGINyourCondition THENSIGNAL SQLSTATE 45000SET MESSAGE_TEXT =anyMessageToEndUser;END //DELIMITER; 이제 어떤 조건에서 테이블에 레코드를 삽입하는 것을 방지하는 트리거를 만듭니다.
저장 프로시저에서 값을 반환하려면 사용자 정의 세션 특정 변수를 사용해야 합니다. 변수 이름 앞에 @ 기호를 추가합니다. 예를 들어 변수 valido에 @symbol을 사용합니다. 동일한 구문은 다음과 같습니다. SELECT @valido; select 문을 사용할 때마다 @anyVariableName을 사용해야 합니다. 구문은 다음과 같습니다. SELECT @anyVariableName; 다음은 반환 값 저장 프로시저의 데모입니다. 저장 프로시저를 생성하는 쿼리는 다음과 같습니다. mysql> create procedu
GROUP BY 명령을 사용하여 집계 함수 SUM()을 사용하여 다른 열의 모든 고유 값에 대한 합계를 얻을 수 있습니다. 위의 개념을 이해하기 위해 테이블을 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다. mysql> create table SumOfEveryDistinct -> ( -> Id int not null, -> Amount int -> ); Query OK, 0 rows affected (0.59 sec) 삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시
캐리지 리턴을 추가하려면 MySQL의 CONCAT_WS() 함수를 사용해야 합니다. 새 줄을 찾고 있다면 처음에 \n을 추가하십시오. 구문은 다음과 같습니다 - SELECT CONCAT_WS(‘\n’,yourColumnName) as anyVariableName from yourTableName; 위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 - mysql> create table NewLineDemo -> ( -> CountryName var
행을 삽입하고 내용을 얻으려면 저장 프로시저를 사용해야 합니다. 먼저 테이블을 만들어야 합니다. 그런 다음 행을 삽입하고 최종 사용자에게 콘텐츠를 제공하는 저장 프로시저를 만들어야 합니다. 위의 작업을 수행하기 위해 먼저 테이블을 생성하겠습니다. 테이블 생성 쿼리는 다음과 같습니다. );쿼리 OK, 영향을 받는 행 0개(1.45초) 이제 위의 테이블에 레코드를 삽입하는 저장 프로시저를 만들고 저장 프로시저를 호출한 직후 테이블에서 결과를 가져옵니다. 저장 프로시저를 생성하는 쿼리는 다음과 같습니다. DELIMITER; 저장
MySQL 구분 기호는 세미콜론(;)이 있는 파이프 구분 기호(|)를 사용하고 MySQL 버전 8.0.12 미만을 사용할 때 발생합니다. MySQL은 파이프(|)를 하나의 구분 기호로 취급하고 세미콜론(;)은 또 다른 구분 기호로 취급합니다. 따라서 MySQL 구분 기호를 파이프 및 세미콜론과 혼동하지 마십시오. 참고 :여기서는 MySQL 버전 8.0.12를 사용하고 있습니다. 파이프 구분 기호는 세미콜론과 함께 잘 작동합니다. 8.0.12 미만 버전을 사용하는 경우 구분자 오류가 발생합니다. 다음은 MySQL 구분 기호의 작