data : 정석적인 실제 값
정보 : 데이터를 기반으로 의미를 부여
ex) 에베레스트의 높이 = 8848 → data
에베레스트는 세계에서 가장 높은산 → 정보
database :
논리적으로 연관된 데이터를 모으고 중복되는 데이터를 최소화하여 구조적으로 통합 / 저장 해놓은것
계층형 데이터베이스 :
트리형태의 계층적 구조를 가진 데이터베이스로 최상위계층의 데이터부터 검색
네트워크형 데이터베이스:
하위데이터들끼리의 관계까지 정의 , 설계 및 구현이 복잡하고 어려움
SQL:
Structures Query Language :
구조화된 질의 언어
DDL:
Data Definition Language
데이터 정의 언어
DML:
Data Manipulation Language
데이터 조작 언어
DCL:
Data Control Language
데이터 제어 언어
실습 : 데이터베이스 만들기 , 데이터 삽입 , 추가 , 조회 , 특정조건 조회 , 갯수확인 , 테이블 삭제
mysql -u root -p
1234
create database multi;
show databases;
use multi;
show tables;
-- STUDENTS란 이름의 테이블 생성
CREATE TABLE STUDENTS(
ID INT,
NAME VARCHAR(100),
PHONE CHAR(20),
ADDR VARCHAR(1000)
);
SHOW TABLES;
-- 해당 테이블에 저장된 정보 전체 조회
SELECT * FROM STUDENTS;
-- 데이터 삽입
INSERT INTO STUDENTS
VALUES(1,'GILDONG','010-1111-1234', 'KOREA');
SELECT * FROM STUDENTS;
-- 데이터 추가
INSERT INTO STUDENTS
VALUES(2,'LEE','010-2222-1234','USA');
-- STUDENTS 테이블에서
-- ID, NAME 컬럼만 조회
SELECT ID, NAME FROM STUDENTS;
-- ID값이 2인 데이터만 조회
SELECT * FROM STUDENTS WHERE ID=2;
-- ID가 2인 학생의 ID와 NAME 조회
SELECT ID, NAME FROM STUDENTS WHERE ID=2;
--FUNCTION COUNT()를 이용하여 갯수 확인
SELECT COUNT(*) FROM STUDENTS;
-- 테이블 STUDENTS 삭제
-- DROP TABLE STUDENTS;
SHOW TABLES;
-- 한줄주석
/* 여러줄 주석 */
show TABLES;
SELECT * FROM EMPLOYEE;
-- SELECT : 조회용 sql문장
-- select *(조회용 컬럼) : 조회하려는 내용(컬럼)
-- from : 테이블 명 : 조회하려는 테이블
-- where 조건 : 특정조건
-- order by 컬럼 : 정렬
-- ;
-- 모든 행과 컬럼 출력
select * from EMPLOYEE ;
-- 모든 사원의 id와 사원명 , 연락처 조회
select EMP_ID , EMP_NAME , PHONE from EMPLOYEE ;
-- 실습 1--
-- 모든 사원의 아이디,사원명,이메일,연락처,부서번호(dept_code),직급코드(job_code) 조회
SELECT EMP_ID , EMP_NAME , EMAIL , PHONE , DEPT_CODE , JOB_CODE FROM EMPLOYEE ;
-- WHERE 구문(절)
-- 테이블에서 조건을 만족하는 행을 따로 선택하여 조회 .
-- 여러 개의 조건을 선택하려면
-- and, or 명령어로 조건을 작성
-- 부서코드가 'D6'인 사원 정보를 모두 조회
select * from EMPLOYEE WHERE DEPT_CODE = 'D6';
-- 실습 2 ----
-- 직급이 'j1'인 사원의 사번 , 사원명 , 직급코드 , 부서코드 조회
select EMP_ID , EMP_NAME , JOB_CODE , DEPT_CODE FROM EMPLOYEE WHERE JOB_CODE = 'J1';
-- 실습 3 --
-- 급여 (샐러리) 가 300만원 이상인 사원의 아이디 사원명직급코드 급여를 조회
SELECT EMP_ID , EMP_NAME , JOB_CODE , SALARY FROM EMPLOYEE WHERE SALARY >= 3000000;
-- 조건이 2개 이상일 경우 and , or
-- 부서코드가 d6 이면서 이름이 유재식인 사원의 모든정보 조회
select * from EMPLOYEE WHERE DEPT_CODE = 'D6' and EMP_NAME = '유재식' ;
-- 컬럼명에 별칭 달아 조회
-- 1.AS(alias) 표현
select emp_id as "사원번호" , emp_name as '사원명'
from EMPLOYEE;
-- 2.as 생략
select emp_id "사원번호" , emp_name '사원명'
from EMPLOYEE;
-- 다생략하고 사용 가능 하지만 띄어쓰기 ',' 같은건 사용 불가능 되도록 as만 생략하고쓸것
SELECT emp_id 사원번호 , emp_name 사원명
from EMPLOYEE;
-- 실습 4 --
-- employee 테이블에서 사원번호가 205번인 사원의 사원명 이메일 급여 입사일자를 조회 단 조회하는 컬럼에 별칭 각각부여
SELECT EMP_NAME 사원명 , EMAIL 이메일 , SALARY 급여 , HIRE_DATE 입사일자
from EMPLOYEE
WHERE EMP_ID = '205';
-- 컬럼값을 이용하여 계산식 적용
SELECT EMP_NAME "사원명" , (SALARY*12) "연봉" , BONUS "보너스" ,(SALARY + (SALARY*BONUS))*12 "연봉총합"
from EMPLOYEE ;
-- ifnull() : 만약 조회한 컬럼의 값이 null일경우 별도설정한 값으로 변경
SELECT EMP_NAME "사원명" , (SALARY*12) "연봉" , BONUS "보너스" ,(SALARY + (SALARY*ifnull(BONUS,0)))*12 "연봉총합"
from EMPLOYEE ;
-- 컬럼에 일반값 사용하기
select emp_name , salary*12 , '원' 단위
from EMPLOYEE ;
-- distinct
-- 만약 해당하는 값이 컬럼에 여러개 존재할경우 중복 제거하고 하나만 조회
select dept_code from EMPLOYEE ;
select DISTINCT dept_code from EMPLOYEE ;
-- 실습 5번 --
-- employee 테이블에서 해당 부서(해외영업 2부) 의 사원들 중 급여를 200 만원보다 많이받는 직원의
-- 사번 ,사원명 , 급여를 조회
-- 1) "해외영업 2부' 부서코드 찾기 디파트먼트테이블
SELECT elect * from DEPARTMENT ;
-- 2) 임플로이 테이블에서 문제내용에 맞춰 조회하기
SELECT EMP_ID 사번 , EMP_NAME 사원명 , SALARY 급여
from EMPLOYEE
WHERE SALARY >= 2000000 and DEPT_CODE = 'D6';
'mySQL' 카테고리의 다른 글
[mySQL] FOREIGN KEY /삭제 옵션 / IUD (0) | 2024.04.07 |
---|---|
[mySQL]그룹에 관련된 명령어 (0) | 2024.04.01 |
[mySQL]연산자 , 함수 (0) | 2024.03.29 |