반응형
반응형
Data Export Version Mismatch 데이터베이스 백업을 위해 Export 하던 중 아래와 같은 안내창이 출력되었다. 무시하고 진행해보았지만 백업이 되지 않는다. 심지어 현재 mysql의 최신버전은 8.0.32이고, 해당 컴퓨터에서는 최신버전이 설치된 상태이다. 근데 서버에서 덤프된 버전은 무려 10.0.27이라는 것이다. Version match 결론만 말하면 비이상적인 수치의 버전이 보인다면 그건 MySQL이 아니라 MaraiDB이다. 둘은 같은 소스 코드 기반으로 만들어져있어 호환성도 나쁘지 않다. 위와 같은 상황이 발생한다면 아래의 링크(MariaDB 릴리즈 노트)에 접속해서 해당 버전을 다운받아 설치한다. 포스팅에서는 10.0.27(MariaDB)버전을 다운 받았다. https:/..
fractions 유리수 산술을 지원하는 모듈 Fraction 인스턴스는 한 쌍의 정수, 다른 유리수 또는 문자열로 생성 numerator : 기약 분수로 나타낼 때 Fraction의 분자 denominator : 기약 분수로 나타낼 때 Fraction의 분모 모듈 호출 import fractions # from fractions import Fraction 구문 분수 표현 Fraction(분자, 분모) 분자 표현 변수.numerator 분모 표현 변수.denominator 사용 예시 # 2분의 1 분수 표현 a = Fraction(1, 2) a >>> Fraction(1, 2) # 0.2의 분수 표현 b = Fraction('0.2') b >>> Fraction(1, 5) # 분수 산술 c = a + ..
// 연산자 정수의 몫을 구하는 연산자 나머지는 버림 % 연산자 나머지를 구하는 연산자 몫은 버림 /연산자 사용 예시 10을 3으로 나누기 # 보통의 나누기 연산 10/3 >>> 3.3333333333 # 몫 구하기 연산 10//3 >>> 3 # 나머지 구하기 연신 10%3 >>> 1 정수의 자릿수 추출 정수의 자리수 추출하기 // 연산자 : 일의 자리부터 차례로 제거 intNum = 1234 # 전체 숫자 구하기 intNum // 1 >>> 1234 # 일의 자리 빼기 intNum // 10 >>> 123 # 십의 자리까지 빼기 intNum // 100 >>> 12 # 백의 자리까지 빼기 intNum // 1000 >>> 1 % 연산자 : 일의 자리부터 차례로 출력 intNum = 1234 # 일의 자..
함수와 프로시저의 차이 함수(Function) 프로시저(Procedure) 데이터베이스에서 비즈니스 로직을 캡슐화하는데 사용 용도(Use) SELECT문, JOIN절 또는 하위 쿼리에서 사용 가능 명시적으로 호출해야만 실행 가능 반환 값(Return Value) 반드시 값 반환해야 함 값을 반환하지 않아도 됨, 대신 SQL문을 통해 여러 결과 집합을 반환하는 데이터를 조작 할 수 있음 정의 (Defined) 주어진 입력을 사용하여 결과를 계산하는 데 사용 특정 작업을 순차적으로 수행하는 데 사용 입력/출력 파라미터 (In/Out Parameter) 입력 매개 변수와 반환 출력 매개 변수 허용 입력 및 출력 매개 변수 허용 호출 (Call) 함수 내에서 프로시저 호출 불가능, 호출될 때마다 컴파일 진행 프..
사용자 정의 함수 (User-defined Function, UDF) 프로그래밍 언어의 함수와 동일 매개 변수를 입력 받아 복잡한 계산과 같은 작업을 수행 해당 작업의 결과를 값으로 반환 반드시 하나의 반환 값이 있어야 함 반환 값은 단일 스칼라 값이나 결과 집합 단일 스칼라 값 : 단일 데이터 값을 의미 결과 집합 : 열 또는 행의 일부 함수 사용의 이점 모듈식 프로그래밍 함수를 한 번 만들어 데이터베이스에 저장한 후에는 프로그램에서 여러 번 호출 할 수 있음 함수는 프로그램 원본 코드에 관계없이 수정 할 수 있음 빠른 실행 저장 프로시저와 마찬가지로 함수는 작업을 캐싱하고 반복 실행을 위해 다시 사용하여 컴파일 비용을 줄임 즉, 사용 시 재분석 및 다시 최적화할 필요가 없음 네트워크 트래픽 감소 필터..
whileMySQL에서 반복문(while)은 프로시저 내에서 사용 가능그렇기 때문에 while을 사용하기 위해서는 프로시저를 정의하여야 함이 포스팅에서는 while문의 사용 방법을 목적으로 작성하였으므로 프로시저 관련 설명은 생략MySQL 프로시저 관련 포스팅 보러가기구문선언WHILE (조건) DO : 조건은 Ture/False의 값이 나오는 조건이여야 함종료END WHILE; : WHILE문의 종료, 반드시 뒤에 세미콜론을 붙여야 함WHILE (조건) DO // codeEND WHILE;사용 예시숫자 1에 +1씩 5번을 반복한 값 출력 (숫자 6 출력)DELIMITER $$CREATE PROCEDURE loopWhile()BEGIN DECLARE i INT DEFAULT 1; WHILE..