SQL 9

데이터베이스 언어 정리 (DDL / DML / DCL) (2) - DML / DCL 편

2. DML (데이터 조작어): 데이터베이스 조작 (삽입, 삭제, 수정, 검색) SQL 명령어 기능 INSERT 삽입 (릴레이션에 데이터 삽입) UPDATE 수정 (릴레이션에 저장된 데이터 수정) DELETE 삭제 (릴레이션에 저장된 데이터 삭제) SELECT 검색 (릴레이션에 저장된 데이터 검색) 3. DCL (데이터 제어어): 데이터베이스 관리 (데이터베이스 보안, 데이터베이스 보호) SQL 명령어 기능 GRANT 권한 설정 REVOKE 권한 해제 show DATABASE; use mysql; SELECT * FROM `user`; % grant select on w3backup.cust to 'user_1'@'%'; Query OK, 0 rows affected (0.00 sec) mysql> gr..

데이터베이스 언어 정리 (DDL / DML / DCL) (1) - DDL 편

DDL (데이터 정의어): 데이터베이스 생성 (스키마 표현) SQL 명령어 기능 CREATE 데이터베이스 구조 생성 (객체 생성) ALTER (ALTER ~ ADD) 데이터베이스 구조 수정 (릴레이션 스키마 수정) ALTER (ALTER ~ DROP) 데이터베이스 구조 수정 (릴레이션 스키마 수정) ALTER (ALTER ~ MODIFY) 데이터베이스 구조 수정 (릴레이션 스키마 수정) DROP 데이터베이스 구조 삭제 (객체 삭제) CREATE TABLE 테이블 이름 (); INT: 숫자 자료형 VARCHAR(숫자): 문자열 자료형 TINYINT: 작은 숫자 자료형 DATE: 날짜 자료형 CREATE TABLE people( person_id INT, person_name VARCHAR(10), age ..

SQL 함수 간단 실습 :: 서브쿼리 (비상관 커리, 상관 커리)

쿼리 안에 쿼리 작성 SELECT *, (SELECT * FROM...) FROM... WHERE ... (SELECT * FROM...) 비상관 서브커리: 연계되지 않고 독립적으로 반환되는 서브쿼리 SELECT categoryid, categoryname, DESCRIPTION, (SELECT productname FROM products WHERE `ProductID` = 1) FROM categories; >>categories의 categoryid, categoryname, DESCRIPTION를 출력하고, products의 ProductID가 1인 경우, productname를 출력해라. SELECT * FROM products WHERE price < (SELECT AVG(`Price`) FR..

SQL 함수 간단 실습 :: JOIN (내부 조인, 외부 조인, 셀프 조인)

JOIN: 여러개의 테이블을 연결해서 정보를 보는 방법 내부조인 (Inner Join): 테이블A와 테이블B 중 Key 값이 같은 정보를 모두 합쳐라 SELECT * FROM categories C JOIN products P ON C.`CategoryID` = P.`CategoryID`; >> categories (C)와 products (P) 중 `CategoryID`가 같은 데이터를 출력 SELECT C.categoryid, C.categoryname, P.productname FROM categories C JOIN products P ON C.`CategoryID` = P.`CategoryID`; P=products C=categories >> categories(C)와 products(P)에서..

SQL 함수 간단 실습 :: 시간/날짜 관련 함수

CURRENT_DATE, CURDATE: 현재 날짜 반환 CURRENT_DATE, CURTIME: 현재 시간 반환 CURRENT_TIMESTAMP, NOW: 현재 시간과 날짜 반환 (1900) SELECT CURDATE(), CURTIME(), NOW(); DATE(): 문자열을 날짜로 생성 TIME(): 문자열을 시간으로 생성 SELECT * FROM orders WHERE orderdate BETWEEN DATE('1997-1-1') AND DATE('1997-1-31'); >> '1997-1-1'을 날짜로 생성한 것과 '1997-1-31'을 날짜로 생성한 기간 사이에 있는 orders 테이블의 모든 항목을 출력하시오. YEAR, MONTHNAME, MONTH, WEEKDAY, DAYNAME 년, 월..

SQL 함수 간단 실습 :: 문자열 관련 함수

UCASE, UPPER: 대문자 LCASE, LOWER: 소문자 SELECT UCASE(customername), LCASE(customername) FROM customers; >> customers에서 customername을 대문자와 소문자로 변형하여 출력하시오. CONCAT(...): 문자열 연결 함수 SELECT CONCAT('Hello', ' ', 'This is ', 2024); CONCAT_WS(S, ...): …을 S로 이어 붙여줌 SELECT CONCAT_WS('-', 2024, 01, 05); >> 2024-1-5 (숫자로 취급하여 0이 사라짐) SELECT CONCAT_WS(' ', firstname, lastname) AS FullName FROM employees; >> empl..

SQL 함수 간단 실습 :: 숫자 관련 함수

ROUND(반올림), CEIL(올림), FLOOR(버림) SELECT ROUND(0.5), CEIL(0.4), FLOOR(0.6); >> 0.5을 반올림하고, 0.4를 올림하고, 0.6을 버림하라. SELECT price, ROUND(price), CEIL(price), FLOOR(price) FROM products; >> products에서 price, 반올림한 price, 올림한 price, 버림한 price을 출력 SELECT ABS(1), ABS(-1), ABS(3 - 10); >> 1의 절댓값, -1의 절댓값 (3 - 10)의 절댓값을 구하시오. 3 - 10 = -7 SELECT * FROM orderdetails WHERE ABS(`Quantity` - 10) > orderdeta..

SQL 함수 간단 실습 :: SELECT문2 (SELECT 사칙연산)

사칙연산: +,-,*,/,%,MOD SELECT 5 - 2.5 AS deffrence; >>> 5 - 2.5를 deffrence으로 가져와라. SELECT 3 * (2+4) / 2, 'Hello'; >> 3 * (2+4) / 2과, 'Hello'를 가져와라. 1. SELECT 'abc' + 3; >> 'abc'는 숫자가 아니기 때문에 3으로 출력 2. SELECT 'abc' * 3; >> 'abc'는 숫자가 아니기 때문에 0으로 출력 1. SELECT orderid, productid, orderid + productid AS '더하기' FROM orderdetails; >> orderdetails에서 productid와 productid, orderid + productid를 더한 데이터를 '더하기'로..

SQL 함수 간단 실습 :: SELECT문

SELECT * FROM 테이블 이름 *: 모든 컬럼 SELECT customername FROM customers; >> 테이블 customers에서 customername를 가져와라 SELECT customername, contactname, country FROM customers; >> customers에서 customername, contactname, country를 가져와라 SELECT `CustomerName`, '님 안녕하세요?' FROM customers; >> customers에서 CustomerName에 해당하는 항목을 가져와라. '님 안녕하세요?'는 존재하지 않는 항목이라도 자동으로 붙여짐. 1. SELECT * FROM employees WHERE `LastName` = 'Lev..