반응형

[MariaDB] 마리아DB SQL 쿼리 고급 - LONGTEXT (MySQL)

 

선행작업

올릴 데이터파일이 용량이 높다면 O/S별 아래 위치에서 config파일을 찾아 내용에 "max_allowed_packet = 1000M"를 추가 또는 수정해줘야 합니다. (권한있는 계정 or root로 수정)

Windows10: c:\Program Files\MariaDB(ver)\data\my.ini

CentOS 8: /etc/my.cnf.d/mariadb-server.cnf

라즈베리파이4: /etc/mysql/maariadb.conf.d/50-server.cnf

변경전 주석(16M)
변경후 1000M

 

이후 MariaDB를 재시작 해줍니다.

($ sudo systemctl restart mariadb.service)

마리아DB 재시작

 

대용량 텍스트(LONGTEXT) 생성하기

먼저 대용량 데이터를 입력하기 위한 테이블을 만들어 줍니다.

USE DB명;
CREATE TABLE 대용량테이블명 ( 열이름1 LONGTEXT,  열이름2 LONGTEXT);	-- 테이블생성

 

다음은 용량이 큰 텍스트파일과, 데이터 파일을 인서트 해줍니다.

INSERT INTO 대용량테이블명 VALUES(
	REPEAT('A', 1000000),	-- 영문 'A' 문자를 1000000 반복입력
	REPEAT('가', 1000000));	-- 한글 '가' 문자를 1000000 반복입력

 

입력된 값의 크기를 확인해 봅니다.

SELECT LENGTH(열이름1), LENGTH(열이름2) FROM 테이블명;	-- 영문은 1바이트, 한글은 3바이트 확인

 

 

[MariaDB] 전체보기

 

 

'MariaDB' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

[MariaDB] 마리아DB SQL 쿼리 고급 - 내장 함수 (MySQL)

 

제어 흐름 함수

IF(수식, 참, 거짓)

/* 수식이 참이면 2번째 값 출력, 수식이 거짓이면 3번째 값 출력 */
SELECT IF (100>200, '참이다', '거짓이다'); -- 거짓이 출력

IFNULL(수식1, 수식2)

/* 수식1값이 NULL이면 수식2가 반환, NULL이 아니면 수식1이 반환 */
SELECT IFNULL(NULL, '널이군요'), IFNULL(100, '널이군요'); -- 앞은 NULL이라 '널이군요'반환, 뒤는 NULL이 아니라 100이 반환

NULLIF(수식1, 수식2)

/* 수식1과 수식2가 같으면 NULL을 반환, 다르면 수식1을 반환 */
SELECT NULLIF(100,100), NULLIF(200,100);	-- 앞은 같으니 NULL반환, 뒤는 다르니 200 반환

CASE~WHEN~ELSE~END

SELECT 	CASE 10 -- CASE값이 10일때
		WHEN 1  THEN  '일'
		WHEN 5  THEN  '오'
		WHEN 10 THEN  '십'	-- WHEN 값이 10인것을 찾아 THEN 뒤에 값을 반환
		ELSE '모름' -- WHEN 값에 존재하지 않으면 ELSE 뒤에 값을 반환
	END;

 

문자열 함수

ASCII(아스키코드), CHAR(숫자)

SELECT ASCII('A'), CHAR(65);	-- 앞은 65 출력, 뒤는 'A' 출력

BIT_LENGTH(문자열), CHAR_LENGTH(문자열), LENGTH(문자열)

/*	BIT_ 할당된 Bit 크기, 또는 문자 크기를 반환
	CHAR_ 문자의 개수를 반환
    LENGTH 할당된 바이트 수를 반환 */
    
SELECT BIT_LENGTH('abc'),  CHAR_LENGTH('abc'), LENGTH('abc');	-- 24, 3, 3 (영문은 3바이트)
SELECT BIT_LENGTH('가나다'),  CHAR_LENGTH('가나다'), LENGTH('가나다');	-- 72, 3, 9  (한글은 9바이트)

CONCAT(문자열1, 문자열2,...), CONCAT_WS(문자열1, 문자열2,...)

/* 문자열들을 이어준다. CONCAT_WS는 구분자와 함께 문자열을 이어준다 */
SELECT CONCAT_WS('/', '2022', '01', '01');	-- 2020/01/01 출력

ELT(위치, 문자열1, 문자열2,...), FIELD(찾을문자열, 문자열1, 문자열2,...), FIND_IN_SET(찾을문자열, 문자열리스트), INSTR(기준문자열, 부분문자열), LOCATE(부분문자열, 기준문자열)

SELECT ELT(2, '하나', '둘', '셋');	-- '둘' 출력
SELECT FIELD('둘', '하나', '둘', '셋');	-- 2 출력
SELECT FIND_IN_SET('둘', '하나,둘,셋');	-- 2 출력
SELECT INSTR('하나둘셋', '둘');	-- 3출력
SELECT LOCATE('둘', '하나둘셋');	-- 3출력 (LOCATE와 POSITION은 동일한 함수임)

FORMAT(숫자, 소수점자리수)

SELECT FORMAT(123456.123456, 4);	-- 123,456.1235 출력

BIN(숫자), HEX(숫자), OCT(숫자)

SELECT BIN(31), HEX(31), OCT(31);	-- 2진수 11111, 16진수 1F, 8진수 37 출력

INSERT(기준문자열, 위치, 길이, 삽입할문자열)

/* 기준 문자열의 위치부터 길이만큼을 지우고, 삽입할 문자열을 끼워 넣음 */
SELECT INSERT('abcdefghi', 3, 4, '@@@@'), INSERT('abcdefghi', 3, 2, '@@@@');	-- ab@@@@ghi, ab@@@@efghi 출력

LEFT(문자열, 길이), RIGHT(문자열, 길이)

SELECT LEFT('abcdefghi', 3), RIGHT('abcdefghi', 3);	-- abc, ghi를 출력

UPPER(문자열), LOWER(문자열)

SELECT LOWER('abcdEFGH'), UPPER('abcdEFGH');	-- abcdefgh, ABCDEFGH를 출력
/* LOWER()와 LCASE()는 동일함수. UPPER()와 UCASE()는 동일함수 */

LPAD(문자열, 길이, 채울문자열), RPAD(문자열, 길이, 채울문자열)

/* 문자열을 길이만큼 늘린 후에 빈곳을 채울 문자열로 채움 */
SELECT LPAD('김이박', 5, '##'), RPAD('김이박', 5, '##');	-- '##김이박', '김이박##' 출력

LTRIM(문자열), RTRIM(문자열)

/* 문자열의 왼쪽, 오른쪽 공백을 제거. 가운데 공백은 제거하지 않음. */
SELECT LTRIM('   김이박'), RTRIM('김이박   ');	-- '김이박', '김이박' 출력

TRIM(문자열), TRIM(방향 자를문자열 FROM 문자열)

/*	TRIM() 앞뒤 공백을 모두 제거함
	방향: LEADING 앞쪽, BOTH 양쪽, TRAILING 뒤쪽 */
SELECT TRIM('   김이박   ');	-- '김이박' 출력
SELECT TRIM(BOTH 'ㅎ' FROM 'ㅎㅎㅎ힘들다.ㅎㅎㅎ');	-- '힘들다.' 출력

REPEAT(문자열, 횟수)

SELECT REPEAT('김이박', 3);	-- '김이박김이박김이박' 출력

REPLACE(문자열, 원래문자열, 바꿀문자열)

SELECT REPLACE ('이제는 잘 수 있겠다.', '있겠다' , '없겠다');	-- '이제는 잘 수 없겠다'로 변경 출력

REVERSE(문자열)

SELECT REVERSE ('김이박');	-- '박이김' 출력

SPACE(길이)

SELECT CONCAT('이제는', SPACE(10), '졸립다');	-- '이제는          졸립다' 출력

SUBSTRING(문자열, 시작위치, 길이) or (문자열 FROM 시작위치 FOR 길이)

/* 시작위치부터 길이만큼 문자를 반환. 길이가 생략되면 준마열 끝까지 반환 */
SELECT SUBSTRING('이제그만자자', 3, 2);	-- '그만' 출력
/* SUBSTRING(), SUBSTR(), MID()는 모두 같은 함수 */

SUBSTRING_INDEX(문자열, 구분자, 횟수)

/* 문자열에서 구분자의 횟수번째 나오는 부분 뒤를 버림. 횟수가 음수면 우측부터 횟수번째 나오는 앞을 버림. */
SELECT SUBSTRING_INDEX('cafe.daum.net', '.', 2);	-- cafe.daum 출력
SELECT SUBSTRING_INDEX('cafe.daum.net', '.', -2);	-- daum.net 출력

 

수학 함수

ABS(숫자)

SELECT ABS(-100);	-- 절대값 100이 출력됨

CEILING(숫자), FLOOR(숫자), ROUND(숫자)

SELECT CEILING(4.7), FLOOR(4.7), ROUND(4.7);	-- 올림 5, 내림 4, 반올림 5 출력

CONV(숫자, 원래진수, 변환할진수)

SELECT CONV('AA', 16, 2);	-- 16진수 AA를 2진수로 변환하여 10101010 출력
SELECT CONV(100, 10, 8);	-- 10진수 100을 8진수로 변환하여 144 출력

DEGREES(숫자), RADIANS(숫자), PI()

/* 라디안 값을 각도값으로 변환, 각도값을 라디안 값으로 변환, PI값인 3.141592를 반환 */
SELECT DEGREES(PI()), RADIANS(180);	 -- 180, 3.141592 출력

MOD(숫자1, 숫자2) or 숫자1 % 숫자2 or 숫자1 MOD 숫자2

/* 숫자1을 숫자2로 나눈 나머지 값을 반환 */
SELECT MOD(157, 10), 157 % 10, 157 MOD 10;	-- 모두 157을 10으로 나눈 나머지값인 7을 반환

POW(숫자1, 숫자2), SQRT(숫자)

/* 숫자1의 숫자2 만큼 제곱값 반환, 숫자의 제곱근을 반환 */
SELECT POW(2,3), SQRT(9);	-- 8, 3 출력

RAND()

/* 0이상 1미만의 실수를 반환. 실행할때마다 값이 변경 됨*/
SELECT RAND(), FLOOR(1 + (RAND() * (7-1)) );	-- 0~1 실수 반환. 1~6 정수 반환

SIGN(숫자)

/* 숫자가 양수, 0, 음수 인지를 구함. 각 1, 0, -1 을 반환. */
SELECT SIGN(100), SIGN(0), SIGN(-100.123);	-- 1, 0, -1 출력

TRUNCATE(숫자, 정수)

/* 숫자를 소수점을 기준으로 정수 위치(양수는 우측, 음수는 좌측)까지 구하고 나머지는 버린다. */
SELECT TRUNCATE(12345.12345, 2), TRUNCATE(12345.12345, -2);	-- 12345.123, 12300 반환

 

날짜 및 시간 함수

ADDDATE(날짜, 차이), SUBDATE(날짜, 차이)

/* 날짜를 기준으로 차이를 더한 날짜, 뺀 날짜를 구한다. */
SELECT ADDDATE('2022-01-01', INTERVAL 31 DAY), ADDDATE('2022-01-01', INTERVAL 1 MONTH);	-- 2022-02-01 출력
SELECT SUBDATE('2022-01-01', INTERVAL 31 DAY), SUBDATE('2022-01-01', INTERVAL 1 MONTH);	-- 2021-12-01 출력

ADDTIME(날짜/시간, 시간), SUBTIME(날짜/시간, 시간)

/* 날짜/시간을 기준으로 시간을 더한결과, 뺀결과를 반환 */
SELECT ADDTIME('2022-01-01 23:59:59', '1:1:1'), ADDTIME('15:00:00', '2:10:10');	-- 2020-01-02 01:01:00, 17:10:10 출력
SELECT SUBTIME('2022-01-01 23:59:59', '1:1:1'), SUBTIME('15:00:00', '2:10:10');	-- 2022-01-01 22:58-58, 12:49:50 출력

CURDATE() 현재 연-월-일, CURTIME() 현재 시:분:초, NOW()와 SYSDATE() 현재 연-월-일 시:분:초 출력

 

YEAR(날짜), MONTH(날짜), DAY(날짜), HOUR(시간), MINUTE(시간), SECOND(시간), MICROSECOND(시간)

(현재 날짜 또는 시간에서 연, 월, 일, 시, 분, 초 , 밀리초를 출력)

 

DATE(), TIME()

SELECT DATE(NOW()), TIME(NOW());	-- 2020-08-29, 05:33:00 현재 날짜, 시간 출력

DATEDIFF(날짜, 날짜2), TIMEDIFF(날짜1or시간1, 날짜2or시간2)

/* 날짜1 - 날짜2 일수 결과 반환, 시간1-시간2 시간 결과 반환. */
SELECT DATEDIFF('2022-01-01', NOW()), TIMEDIFF('23:23:59', '12:11:10');	-- 490, 11:12:49 출력

DAYOFWEEK(날짜), MONTHNAME(), DAYOFYEAR(날짜)

/* 현재요일(순서), 월이름, 일년 중 몇일이 지났는지를 반환 */
SELECT DAYOFWEEK(CURDATE()), MONTHNAME(CURDATE()), DAYOFYEAR(CURDATE());	-- 7, August, 242 출력

LAST_DAY(날짜)

/* 날짜 달의 마지막 날짜를 반환. 보통 날짜 달의 마지막 날짜를 확인할 때 사용. */
SELECT LAST_DAY('2022-02-01');	-- 2022-02-28 출력

MAKEDATA(연도, 정수)

/* 연도에서 정수만큼 지난 날짜를 구한다 */
SELECT MAKEDATE(2022, 32);	-- 2022-02-01 출력

MAKETIME(시, 분, 초)

/* 시:분:초 형식으로 만든다 */
SELECT MAKETIME(12, 11, 10);	-- 12:11:10 출력

PERIOD_ADD(연월, 개월수), PERIOD_DIFF(연월1, 연월2)

/* 연월(YYYYMM)에서 개월수만큼 지난 연월을 구한다. 연월1 - 연월2의 개월수를 구한다. */
SELECT PERIOD_ADD(202201, 11), PERIOD_DIFF(202201, 201812);	-- 202212, 37 출력

QUARTER(날짜)

/* 날짜가 몇분기인지 출력 */
SELECT QUARTER('2022-07-07');	-- 3 출력

TIME_TO_SEC(시간)

/* 시간을 초단위로 구한다 */
SELECT TIME_TO_SEC('12:11:10');	-- 43870 출력

 

시스템 정보 함수

USER(), DATABASE()

SELECT CURRENT_USER(), DATABASE();	-- 현재 사용자, 현재 선택된 DATABASE 출력

FOUND_ROWS()

USE DB명;	-- DB선택
SELECT * FROM 테이블명;	-- 테이블에서 *(모든) 열 조회
SELECT FOUND_ROWS();	-- 바로 앞의 SELECT에서 조회된 행의 개수를 구함

ROW_COUNT()

USE DB명;	-- DB선택
UPDATE 테이블명 SET 값이숫자인열이름=값이숫자인열이름*2;	-- 테이블명의 값이숫자인열이름 행들을 *2 하여 업데이트
SELECT ROW_COUNT();	-- 바로 앞의 INSERT, UPDATE, DELETE문에서 변경된 행들의 개수를 반환. CREATE, DROP문은 0을 반환. SELECT는 -1을 반환

VERSION() - 현재 DBMS의 버전을 확인

 

SLEEP(초)

/* 쿼리의 실행을 초만큼 멈춤 */
SELECT SLEEP(5);	-- 5초간 멈춤
SELECT '5초후에 보여요';	-- 5초후 '5초후에 보여요' 출력

 

 

[MariaDB] 전체보기

 

'MariaDB' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

[MariaDB] 마리아DB SQL 쿼리 고급 - 변수 사용 및 데이터 형 변환 (MySQL)

 

변수의 사용

SET @변수이름 = 변수의값 ;	-- 변수의 선언 및 값 대입
SELECT @변수이름 ;	-- 변수의 값 출력

/* 사용 예제 */
USE DB명;

SET @변수명1 = 4 ;		-- 변서 선언 및 값 대입
SET @변수명2 = 2 ;
SET @변수명3 = 3.25 ;	-- 실수 대입
SET @변수명4 = '지역명--> ' ;	-- 문자 대입

SELECT @변수명1 ;	-- 정수 출력
SELECT @변수명2 + @변수명3 ;	-- 정수+실수는 실수 출력
SELECT @변수명4 , 지역명열이름 FROM 테이블명 ;	-- 1열은 '지역명-->' 출력, 2열은 테이블의 지역명열 내용 출력

LIMIT에 변수 사용방법(기본적으로 변수 사용 불가능하나 PREPARE와 EXECUTE문을 활용해서 사용 가능)

SET @변수1 = 5 ;
PREPARE 쿼리이름 
    FROM 'SELECT 열이름1, 열이름2 FROM 테이블명 ORDER BY 열이름1 LIMIT ?';	-- ?에 값이 입력될 준비
EXECUTE 쿼리이름 USING @변수1 ;	-- 여기서 ?에 @변수1 값을 대입하게 됨

 

데이터 형 변환

// 데이터 형 변환 방식1 CAST
CAST (expression AS 데이터형식 [(길이)])

// 데이터 형 변환 방식2 CONVERT
CAST (expression , 데이터형식 [(길이)])


// 형 변환 예시: 평균(AVG)가 소숫점으로 나오지 않도록 SIGNED INT로 형변환 출력
SELECT CAST(AVG(amount) AS SIGNED INTEGER) AS '평균 구매 개수'  FROM 테이블명 ;
SELECT CONVERT(AVG(amount) , SIGNED INTEGER) AS '평균 구매 개수'  FROM 테이블명 ;

// 형 변환 예시: 날짜 데이터 형식으로 변환하기
SELECT CAST('2022$12$12' AS DATE);	-- 결과값: 2020-12-12
SELECT CAST('2022/12/12' AS DATE);	-- 결과값: 2020-12-12
SELECT CAST('2022%12%12' AS DATE);	-- 결과값: 2020-12-12
SELECT CAST('2022@12@12' AS DATE);	-- 결과값: 2020-12-12 (모두 같은 결과)

// 암시적인 형 변환
SELECT '100' + '200' ;	-- 문자와 문자를 더함 (정수로 변환되서 연산됨)
SELECT CONCAT('100', '200');	-- 문자와 문자를 연결 (문자로 처리)
SELECT CONCAT(100, '200');	-- 정수와 문자를 연결 (정수가 문자로 변환되서 처리)
SELECT 1 > '2mega';	-- 정수 2로 변환되어서 비교
SELECT 3 > '2MEGA';	-- 정수 2로 변환되어서 비교
SELECT 0 = 'mega2';	-- 문자는 0으로 변환됨

 

 

[MariaDB] 전체보기

 

 

'MariaDB' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

[MariaDB] 마리아DB SQL 쿼리 고급 - 데이터 형식 (MySQL)

 

숫자 데이터 형식

데이터 형식 바이트 수 숫자 범위 설명
BIT(N) N/8   1~64bit 표현. b'0000' 형식으로 표현
TINYINT 1 -128~127 정수
SMALLINT 2 -32,768~32,767 정수
MEDIUMINT 3 -8,388,608~8,388,607 정수
INT
INTEGER
4 약 -21억~+21억 정수
BIGINT 8 약 -900경~+900경 정수
FLOAT 4 -3.40E+38~-1.17E-38 소수점 아래 7자리까지 표현
DOUBLE
REAL
8 -1.22E-308~1.79E-308 소수점 아래 15자리까지 표현
DECIMAL(m,[d])
NUMERIC(m,[d])
5~17 -10의38승+1~10의38승-1 전체 자릿수(m)와 소수점 이하 자릿수(d)를 가진 숫자형
예) DECIMAL(5, 2)는 전체자릿수 5, 그 중 소수점 이하는 2자리

 

문자 데이터 형식

데이터 형식 바이트 수 설명
CHAR(n) 1~255 고정길이 문자형. n을 1부터 255까지 지정.
그냥 CHAR만 쓰면 CHAR(1)과 동일한 의미.
VARCHAR(n) 1~65535 가변길이 문자형. n을 사용하면 1부터 65535까지 지정.
BINARY(n) 1~255 고정길이의 이진 데이터 값
VARBINARY(n) 1~255 가변길이의 이진 데이터 값
TEXT 형식 TINYTEXT 1~255 255 크기의 TEXT 데이터 값
TEXT 1~65535 N 크기의 TEXT 데이터 값
MEDIUMTEXT 1~16777215 16777215 크기의 TEXT 데이터 값
LONGTEXT 1~4294967295 최대 4GB 크기의 TEXT 데이터 값 (소설 데이터 등을 저장)
BLOB 형식 TINYBLOB 1~255 255 크기의 BLOB 데이터 값
BLOB 1~65535 N 크기의 BLOB 데이터 값
MEDIUMBLOB 1~16777215 16777215 크기의 BLOB 데이터 값
LONGBLOB 1~4294967295 최대 4GB 크기의 BLOB 데이터 값 (동영상 데이터 등을 저장)
ENUM(값들...) 1 또는 2 최대 655535개의 열거형 데이터 값
SET(값들...) 1, 2, 3, 4, 8 최대 64개의 서로 다른 데이터 값

 

날짜와 시간 데이터 형식

데이터 형식 바이트 수 설명
DATE 3 날짜는 1001-01-01~9999-12-31까지 저장되며 날짜 형식만 사용
'YYYY-MM-DD' 형식으로 사용됨
TIME 3 -838:59:59.000000~838:59:59.000000까지 저장되며 
'HH:MM:SS' 형식으로 사용됨
DATETIME 8 날짜는 1001-01-01 00:00:00~9999-12-31 23:59:59까지 저장되며 날짜 형식만 사용
'YYYY-MM-DD HH:MM:SS' 형식으로 사용됨
TIMESTAMP 4 날짜는 1001-01-01 00:00:00~9999-12-31 23:59:59까지 저장되며 날짜 형식만 사용
'YYYY-MM-DD HH:MM:SS' 형식으로 사용됨
time_zone 시스템 변수와 관련이 있으며 UTC 시간대로 변환하여 저장
YEAR 1 1901~2155까지 저장. 'YYYY' 형식으로 사용

예시)

SELECT CAST('2020-10-19 12:35:29.123' AS DATE) AS 'DATE' ;
SELECT CAST('2020-10-19 12:35:29.123' AS TIME) AS 'TIME' ;
SELECT CAST('2020-10-19 12:35:29.123' AS DATETIME) AS 'DATETIME' ; 

/* 결과값 */
DATE		TIME		DATETIME
2022-10-19	12:3529		2022-10-19 12:35:29

 

기타 데이터 형식

데이터 형식 바이트 수 설명
GEOMETRY N/A 공간 데이터 형식으로 선, 점, 및 다각형 같은 공간 데이터 개체를 저장하고 조작
JSON 8 JSON (JavaScript Object Notation) 문서를 저장
(JSON 데이터 형식은 최신버전(MariaDB 10.2.7) 부터 지원)

 

 

[MariaDB] 전체보기

 

 

'MariaDB' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

[MariaDB] 마리아DB SQL 쿼리 기본 - INSERT, UPDATE, DELETE (MySQL)

 

INSERT 기본형식

USE DB명;
CREATE TABLE 테이블명 (열이름1 INT, 열이름2 CHAR(3), 열이름3 INT);
INSERT INTO 테이블명 VALUES (1,'김이박', 30); -- 위 테이블에 생성된 열이름 순서에 맞게 INSERT 됨

INSERT INTO 테이블명(열이름1, 열이름2) VALUES (2, '박서왕'); -- 열이름3에는 NULL값이 입력됨

INSERT INTO 테이블명(열이름3, 열이름1, 열이름2) VALUES (40, 3, '이전심'); -- 열이름 3,1,2 순서로 입력됨

 

AUTO_INCREMENT(순서열 같은 경우 자동으로 1부터 증가된 값을 입력해주는 기능)

USE DB명;
CREATE TABLE 테이블명
  (순서열이름  int AUTO_INCREMENT PRIMARY KEY,  -- 순서열이름 열은 자동증가, 기본키
   열이름2 char(3), 
   열이름3 int );
INSERT INTO 테이블명 VALUES (NULL, '곽민아', 35); -- NULL 값이 아닌 1이 입력됨
INSERT INTO 테이블명 VALUES (NULL, '서나리', 32); -- 2가 입력됨
INSERT INTO 테이블명 VALUES (NULL, '유은성', 31); -- 3이 입력됨

 

다른 테이블의 조회값을 INSERT 하기

USE DB명;
CREATE TABLE 테이블명 (열이름1 int, 열이름2 varchar(50), 열이름3 varchar(50));
INSERT INTO 테이블명
  SELECT 조회열1, 조회열2, 조회열3  -- 인서트할 테이블의 열과 같은 수, 같은 데이터형식을 SELECT 해야함
    FROM 조회DB.조회테이블 ;

 

 

UPDATE (데이터 수정)

USE DB명;
UPDATE 테이블명 SET 열이름 = 바꿀값 WHERE 조건문;

// 예시
UPDATE 테이블명 SET 가격열 = 가격열 * 10; -- 가격열의 값을 모두 10을 곱하여 변경

 

조건부 데이터 입력(INSERT), 변경(UPDATE)

INSERT INTO 테이블명 VALUES('값1' , '값2', '값3')  -- 값1,2,3을 테이블에 입력합니다.
	ON DUPLICATE KEY UPDATE 열이름2='값2', 열이름3='값3';  -- 만약 기본키가 중복되면 열이름2를 값2로, 열이름3을 값3로 업데이트합니다.

 

 

DELETE FROM (행단위 삭제)

USE DB명;
DELETE FROM 테이블명 WHERE 조건문;

//예시
DELETE FROM 테이블명 WHERE 이름열 = '김이박'; -- 이름열 값이 김이박인 행들을 모두 지움

 

DELETE, DROP, TRUNCATE 차이

DELETE FROM 테이블명;	-- DML문. 트랜젝션 로그를 기록하여 느림. 테이블 모든 행 삭제.
DROP TABLE 테이블명;	-- DDL문. 트랜젝션 발생하지 않아 빠름. 테이블 자체를 삭제.
TRUNCATE TABLE 테이블명;	-- DDL문. 트렌젝션을 발생하지 않아 빠름. 테이블의 모든 행 삭제

 

 

[MariaDB] 전체보기

 

'MariaDB' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형