1.용어 정리
- select (프로젝션 도구) - 데이터베이스에서 특정 열이나 행을 선택하는 SQL 명령어.
- from (하드디스크의 테이블을 메모리로 퍼올리는 것) - 데이터를 가져올 테이블을 지정하는 SQL 절.
- where (행 고르기- 하드디스크에서 연산됨) - 조건에 맞는 행을 선택하는 SQL 절.
- projection (특정한 열만 선택하는 것) - 데이터에서 필요한 열만 선택하는 과정.
- table (전체 껍데기) 릴레이션 엔티티 - 데이터베이스에서 데이터를 저장하는 기본 구조.
- column (칼럼 제목) - 테이블에서 특정 속성을 나타내는 세로 방향의 필드.
- row (행) = record (레코드) 튜플 - 테이블에서 하나의 데이터 항목을 나타내는 가로 방향의 데이터 집합.
- cursor (커서) - 데이터베이스에서 특정 행을 가리키는 포인터.
- full scan (전체 스캔) - 테이블의 모든 행을 검사하여 데이터를 찾는 방법.
- constraint (칼럼 - 제약) - 데이터의 무결성을 유지하기 위한 조건이나 규칙.
- unique (유일하다) - 특정 칼럼의 값이 중복되지 않도록 하는 제약 조건.
- index (인덱스) → random access (무작위 접근) - 데이터를 빠르게 조회하기 위한 구조로, 특정 칼럼에 대한 빠른 검색을 가능하게 함.
- schema (테이블 구조) - desc 데이터베이스의 구조와 구성 요소를 정의하는 청사진.

2. select 문법 기본
- 기본 select

2 . 상세 보기

3 . 별칭주기

4 . 중복제거

5 .연결연산자

6. 연산자
-- 6. 연산자
select ename, sal*12
from emp;
select ename, concat(sal*12 + ifnull(comm,0), "$") "연봉"
from emp;

7.원하는 행찾기
-- 7.원하는 행찾기
select *
from emp
where ename ='SMITH';
select *
from emp
where hiredate = "1980-12-17";
select *
from emp
where hiredate = "1980/12/17";
select *
from emp
where sal > 2000;
select *
from emp
where comm is not null;
8. 복잡한 where
-- 8. 복잡한 where
select *
from emp
where sal = 800 and deptno = 20;
select *
from emp
where sal = 800 or sal = 1600;
select *
from emp
where sal in (800, 1600);
select *
from emp
where sal between 800 and 3000;

9.LIKE 연산자
-- 9. LIKE 연산자
select ename
from emp
where ename like 'S%';
select ename
from emp
where ename like '%M%';
select ename
from emp
where ename like '_M%';
select ename
from emp
where ename like '___T%';


10.정규 표현식 - 어떤 문자열에서 특수한 규칙을 찾아야할때
-- 1 기본 select
select *
from emp;
-- 2. 상세보기
desc emp;
-- 3. 별칭주기
select empno as '사원번호'
from emp;
select ename as "이름"
from emp;
-- 4. 중복제거 {1,2,3,4} -> 서로다른
select distinct job
from emp;
-- 5. 연결연산자
select concat(ename, '의 직업은', job) "직원소개"
from emp;
-- 6. 연산자
select ename, sal*12
from emp;
select ename, concat(sal*12 + ifnull(comm,0), "$") "연봉"
from emp;
-- 7.원하는 행찾기
select *
from emp
where ename ='SMITH';
select *
from emp
where hiredate = "1980-12-17";
select *
from emp
where hiredate = "1980/12/17";
select *
from emp
where sal > 2000;
select *
from emp
where comm is not null;
-- 8. 복잡한 where
select *
from emp
where sal = 800 and deptno = 20;
select *
from emp
where sal = 800 or sal = 1600;
select *
from emp
where sal in (800, 1600);
select *
from emp
where sal between 800 and 3000;
-- 9. LIKE 연산자 %, _
select ename
from emp
where ename like 'S%';
select ename
from emp
where ename like '%M%';
select ename
from emp
where ename like '_M%';
select ename
from emp
where ename like '___T%';
-- 10.정규 표현식 - 어떤 문자열에서 특수한 규칙을 찾아야할때
select *
from professor
where name regexp '조|형';
select *
from professor
WHERE email REGEXP '^[^@]+@[^@]+\.net$';
SELECT 'Password1!' REGEXP '^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,}$' AS is_valid
from dual;
Share article