desc department; // department 테이블의 구조 정보 출력 (describe 명령어)
select * from department; // department 테이블 전체 출력
select deptno, name from department; // deptno, name 컬럼 출력
select deptno 부서번호, name 부서명 from department; // alias를 공백으로 생략 가능
select deptno as 부서번호, name as 부서명 from department; // 위와 동일
select concat(empno, '-', deptno) as '사번-부서번호' from employee; // concat 명령어
select concat(empno, '-', deptno) '사번-부서번호' from employee; // 위와 동일
select deptno from employee; // 중복 값 모두 출력
select distinct deptno from employee; // 중복 값 제거되어 출력
select empno, name from employee order by name; // name 컬럼 기준 정렬(default - ASC)
select empno, name from employee order by name desc; // 내림차순 정렬
select empno, name from employee order by 1; // 1번 컬럼 기준 오름차순 정렬
select empno, name from employee order by 2 desc; // 2번 컬럼 기준 내림차순 정렬
select * from employee where empno = 7934;
select * from employee where job = 'MANAGER';
select * from employee where deptno in (10, 30);
select * from employee where deptno = 10 or deptno = 30; // 위와 동일
select * from employee where deptno = 30 and salary < 1500;
select * from employee where name like 'A%'; // 첫 문자 A
select * from employee where name like '%A'; // 끝 문자 A
select * from employee where name like '%A%'; // A 1개 이상
select * from employee where name like '_A%'; // 2번째 문자 A
select * from employee where name like '__A%'; // 3번째 문자 A
select lower(name) from employee;
select substring('Happy Day', 3, 2); // pp
select LPAD(name, 10, '+') from employee; // 10개 문자, 빈 곳은 왼쪽부터 + 채우기
select RPAD(name, 10, '+') from employee; // 10개 문자, 빈 곳은 오른쪽부터 + 채우기
select LTRIM(' hello '), RTRIM(' hello ');
select TRIM( 'hi '), TRIM(BOTH 'x' FROM 'xxxhixxx');
select abs(-2); // 2
select mod(234, 10), 253 % 7;
select cast(now() as date); // 2021-01-02
select cast(1-0 as unsigned); // 18446744073709551615
// 그룹함수
select count(*) from employee; // row의 숫자 반환
select avg(salary) from employee; // salary의 평균
select count(boss) from employee; // boss 컬럼에서 null 값을 제외하고 count
// deptno 별로 avg, sum을 구하여 나타냄
select deptno, avg(salary), sum(salary) from employee group by deptno;
desc role; // role_id가 pk인 것을 확인
select * from role;
insert into ROLE values(200, 'CEO'); // OK
insert into ROLE(role_id, description) values(300, 'MANAGER'); // OK
insert into ROLE(role_id) values(301); // OK. description에는 NULL 값 들어감
insert into ROLE(description) values('MANAGER'); // ERROR!! pk에는 NULL 불가능
// ※ where절 사용하지 않으면 전체 컬럼이 변경되므로 주의
update role set description = 'CTO' where role_id = 200;
// ※ where절 사용하지 않으면 전체 컬럼이 삭제되므로 주의
delete from role where role_id = 200;
select Orders.OrderID, Customer.CustomerName, Orders.OrderDate
from Orders
inner join customers on Orders.CustomerID=Customers.CustomerID;
reference