본문 바로가기

AI/MySQL

(17)
MySQL 제어 흐름 함수 제어 흐름 함수 IF - 수식이 참 또는 거짓인지 결과에 따라 2중 분기한다. IFNULL - 수식1이 NULL이 아니면 수식1이 반환되고, 수식1이 NULL이면 수식2가 반환된다. NULLIF - 수식1과 수식2가 같으면 NULL을 반환, 다르면 수식1을 반환한다. ★ CASE ~ WHEN ~ELSE ~ END - CASE는 내장 함수는 아니며 연산자로 분류, 다중 분기에 사용된다. SELECT IF (100>200, '참이다', '거짓이다'); SELECT IFNULL(NULL, '널이군요'), IFNULL(100, '널이군요'); SELECT NULLIF(100,100), IFNULL(200,100); SELECT CASE 10 WHEN 1 THEN '일' WHEN 5 THEN '오' WHEN 10..
MySQL 암시적 형 변환 암시적 형 변환 -- MySQL은 다른 언어와는 다르게 함수를 사용하지 않고 자동으로 형변환을 시키는 경우가 있다. -- MySQL의 암시적 형변환 예시 SELECT '100' + '200' ; -- 문자와 문자를 더함 (정수로 변환되서 연산됨) SELECT CONCAT('100', '200'); -- 문자와 문자를 연결 (문자로 처리) SELECT CONCAT(100, '200'); -- 정수와 문자를 연결 (정수가 문자로 변환되서 처리) SELECT 1 > '2mega'; -- 정수인 2로 변환되어서 비교 SELECT 3 > '2MEGA'; -- 정수인 2로 변환되어서 비교 SELECT 0 = 'mega2'; -- 문자는 0으로 변환됨 다른 언어에선 상상도 못할 일이지.
MySQL 데이터 형식 변환 함수 데이터 형식 변환 함수 CAST(), CONVERT() - 형식만 다를 뿐 거의 같은 기능 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' ; -- buytbl에서 평균 구매개수를 구하시오. SELECT AVG(amount) AS '평균 구매 개수' FROM buytbl; -- 형변환 할 때 CAST 나 CONVERT 를 사용할 수 있다. 아래 두개의 구문은 같다. SELECT CAST(AVG(amount) AS SIGNED IN..
MySQL DELETE WHERE 절은 생략이 가능하지만, WHERE 절을 생략하면 테이블 전체의 행이 삭제된다. 테이블을 삭제하는 3가지 명령어 DELETE FROM - 트랜잭션 로그를 남기기 때문에 삭제가 오래걸린다.(DML) DROP - 테이블 자체를 지움 TRUNCATE - 구조만 남기고 지움 (DDL) 테스트 USE sqldb; -- DB를 sqldb 로 변경 -- employees 데이터베이스의 employees 테이블을 bigTbl1,bigTbl2, bigTbl3 순으로 만들었다. CREATE TABLE bigTbl1(SELECT*FROM employees.employees); CREATE TABLE bigTbl2(SELECT*FROM employees.employees); CREATE TABLE bigTbl3(S..
MySQL UPDATE buytbl 데이터 -- UPDATE 는 데이터를 변경할 때 쓴다. UPDATE 테이블명 SET 컬럼 = 변경내용; -- 전체 컬럼 실행 UPDATE 테이블명 SET 컬럼 = 변경내용 WHERE 컬럼 = 변경대상; -- 대상 컬럼의 값을 변경 -- 현재 테이블의 단가를 1.5배 인상하시오 UPDATE buytbl SET price = price * 1.5; -- 운동화를 조깅화로 수정하시오. UPDATE buytbl SET prodName = '조깅화' WHERE prodName = '운동화' ;
MySQL INSERT INSERT -- 테이블에 데이터를 입력할 때 쓴다. INSERT INTO 테이블명(컬럼명) VALUES(값) -- 기본 형태 -- 사용 예시 -- 예시를 위해 아이디와 이름, 나이를 작는 testTbl1이란 테이블을 우선 만든다. -- 입력 예시 INSERT INTO testTbl1 VALUE(1, '홍길동', 25); -- 컬럼명을 생략할 수 있으나 컬럼별 값의 순서가 바뀌면 안된다. INSERT INTO testTbl1(id, userName) VALUE(2, '설현'); -- 컬럼과 값의 순서는 일치해야 한다, NULL 값도 입력가능 INSERT INTO testTbl1(userName, age, id) VALUE ('하니',26,3); -- 풀스택으로 입력할 경우는 컬럼과 값의 순서만 일치하면 ..
MySQL SELECT SELECT FROM -- 테이블에 입력한 데이터 확인 SELECT*FROM 테이블; SELECT*FROM 데이터베이스.테이블; SELECT*FROM titles; SELECT FROM WHERE -- 테이블에서 특정 데이터가 들어가 있는 열을 조회 SELECT*FROM 테이블 WHERE 열 = `데이터`; SELECT*FROM titles WHERE title = '김경호'; -- 1970년 이후에 출생했거나 신장이 182이상인 사람의 아이디와 이름을 조회하시오. SELECT userID, name -- 아이디와 이름을 조회해 FROM usertbl -- usertbl에서 WHERE birthYear >= 1970 -- 태어난 해가 1970년 이상이거나 키가 182 이상 OR heitht >= 182;..
MySQL #계정추가, #권한부여, #권한조회, #DCL 계정추가, 권한부여, 권한조회는 DCL이므로 시스템 계정에서 설정해야 한다. 예제 샘플 계정 /* kakao_bank 데이터베이스에 사용자 계정 추가하기 계정명 : kakao_admin 비밀번호 : kakaoadmin 접속경로 : localhost */ 계정 추가 USE mysql; CREATE USER kakao_admin@localhost IDENTIFIED BY 'kakaoadmin'; 계정 현황 조회 USE mysql; SELECT user, host FROM user; 사용자 권한 부여 USE mysql; GRANT ALL PRIVILEGES ON kakao_bank.* TO kakao_admin@localhost; //여기선 모든 권한을 부여했음 사용자 권한 조회 USE mysql; SHOW ..

반응형