DataBase/MySQL

    Every derived table must have its own alias

    공부하다가 머리 식힐겸 프로그래머스 에서 풀었던 SQL 테스트들을 MySQL로 풀던 도중 재미있던 점을 공유하고자 한다. 바로 서브쿼리를 사용하는데 기존 Oracle로 작성했다가 Every derived table must have its own alias 라는 오류가 나왔다. 서브쿼리에 alias(이름)이 지정되지 않았기 때문. 해결 방법은 간단하다. 💡 서브쿼리에 alias(이름)을 지정해주면 된다. ERROR SELECT COUNT(*) FROM (SELECT DISTINCT NAME FROM ANIMAL_INS WHERE NAME IS NOT NULL); SOLUTION SELECT COUNT(*) FROM (SELECT DISTINCT NAME FROM ANIMAL_INS WHERE NAME I..

    CRUD - (3) Update, Delete, MySQL AutoCommit 해제

    본 포스팅은 MySQL 8.0.23 버전을 사용중이며, 툴은 Toad for MySQL 8.0 사용 중 입니다. CRUD - (3) Update, Delete 이제 CRUD 중 Update와 Delete에 대해 이야기를 해볼것이다. 이전에 포스팅 했던 Create, Read와는 다르게 매우 심플하다. 주의 할 점이 있다면, 조건(WHERE) 을 항상 명시해야 한다는것. 조건을 명시하지않고, update 혹은 delete 를 하게 된다면, 모든 행이 전부 update 혹은 delete가 되므로 주의하자. Update UPDATE 테이블명 SET 변경 할 컬럼1=변경값, 변경 할 컬럼2=변경값, ... WHERE 조건문; Delete DELETE FROM 테이블명 WHERE 조건문; ❗ 이때, 만약 수정 혹..

    MySQL 내장함수 정리

    MySQL 내장함수 정리 1. 숫자 관련 함수 ABS(숫자) - 절대값 출력  CEILING(숫자) - 값보다 큰 정수 중 가장 작은 수  FLOOR(숫자) - 값보다 작은 정수 중 가장 큰 수[실수를 무조건 버 림(음수일 경우는 제외)]  ROUND(숫자,자릿수) - 숫자를 소수점 이하 자릿수에서 반올 림.(자릿수는 양수,0,음수)  TRUNCATE(숫자,자릿수) - 숫자를 소수점 이하 자릿수에서 버림  POW(X,Y) or POWER(X,Y) - X의 Y승  MOD (분자, 분모) - 분자를 분모로 나눈 나머지를 구한다.(연산 자 %와 같다)  GREATEST(숫자1,숫자2,숫자3...) - 주어진 수 중 제일 큰 수 리턴  LEAST(숫자1,숫자2,숫자3...) - 주어진 수 중 제일..

    CRUD - (2) Join, Join 예제

    본 포스팅은 MySQL 8.0.23 버전을 사용중이며, 툴은 Toad for MySQL 8.0 사용 중 입니다. 이전에 관계형데이터에 대해서 포스팅을 할때 이런 말을 적은적이 있었다. ( bbinya.tistory.com/12 ) ✔ 저장은 분산해서. 출력은 합쳐서 ! 데이터 중복을 최소화 하기 위해 테이블을 분리했었는데, 분리한 테이블을 사용자가 한번에 확인하려고 할때, 그때 JOIN을 사용한다. 더보기 기존에 이미 내가 가지고 있는 데이터들은 따로 포스팅을 해놓았으나, 더 많은 문제를 풀고 싶은 분들은 www.mysqltutorial.org/mysql-sample-database.aspx/ 이곳에서 압축파일을 풀고 샘플용을 다운로드 받으면 될것이다. Join - 각각의 테이블에 분리되어 있는 연관성 ..

    Professor, Department, Student 실습용 테이블

    기존 학원에서 Oracle 강의 들었을때 사용했던 실습용 테이블을 MySQL로 바꾼 테이블 입니다. drop table professor; create table professor (profno int(4) primary key, name varchar(10) not null, id varchar(15) not null, position varchar (30) not null, pay int(3) not null, hiredate date not null, bonus int(4) , deptno int(3), email varchar(50), hpage varchar(50)); insert into professor values(1001,'조인형','captain','정교수',550,date_format..

    CRUD - (2) Read, SELECT 실행 순서

    본 포스팅은 MySQL 8.0.23 버전을 사용중이며, 툴은 Toad for MySQL 8.0 사용 중 입니다. CRUD 중 READ 에 대해 이야기를 해보자. Read. 말 그대로 읽는다는 것 이다. 지난 포스팅 부터 말을 시작하자면 데이터베이스를 Create하고 그 데이터베이스에 테이블을 Create 그 후 Data들을 Insert 했다. 내가 넣은 데이터들을 이제는 읽어야 할 차례가 된것이다. 바로 SELECT 구문을 통해 읽어보자. 기존에 썼던 topic 테이블은 데이터양이 적으므로, bbinya.tistory.com/15포스팅으로 올려놓았던 EMP 테이블 또한 같이 이용해보겠다. SELECT 기본 문법 🖋 해당 테이블의 전체 데이터 조회 SELECT * FROM 테이블; * 을 입력하면, 해당 ..

    EMP, DEPT 실습용 테이블

    본 포스팅은 MySQL 8.0.23 버전을 사용중이며, 툴은 Toad for MySQL 8.0 사용 중 입니다. CREATE TABLE dept ( deptno int NOT NULL AUTO_INCREMENT, dname varchar(20) , loc varchar(20) , CONSTRAINT pk_dept PRIMARY KEY ( deptno ) ) engine=InnoDB; CREATE TABLE emp ( empno int NOT NULL AUTO_INCREMENT, ename varchar(20) , job varchar(20), mgr smallint , hiredate date , sal numeric(7,2) , comm numeric(7,2) , deptno int , CONSTRAI..

    CRUD - (1) Create

    본 포스팅은 MySQL 8.0.23 버전을 사용중이며, 툴은 Toad for MySQL 8.0 사용 중 입니다. CRUD ✔ 데이터베이스 의 꽃 CRUD ! Create, Read, Update, Delete 를 간단하게 CRUD 라고 한다. 이 중 가장 핵심인것은 Create, Read 이다. (update나 delete 는 경우에 따라 사용 하지 않아도 된다.) SQL문 은 파고 들어갈수록 점점 더 심오해진다. 간단하게 이것만 알면 되겠지~ 하는데 더 알아야한다...... 스프링 프로젝트 하면서 맨 처음에는 '아 뭐... 자바에서 해결 하자~ ' 했는데, 쿼리문으로 처리하면 정말 너무나도 완전많이 편해진다.... 한번 깨닳은 후 에는 쿼리문으로 쇼부 칠려고 노력했다. (ㅋㅋ) 여튼 잘 다룰 수 있도록..