본문 바로가기
코리아 IT아카데미/grid·flex·mySql·jsp

11일차 | sql

by Sharon kim 2021. 11. 29.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>class_17</title>
    <style>
        * {
            box-sizing: border-box;
        }

        body {
            font-family: Arial;
        }

        .container {
            width: 1200px;
            margin: auto;
            text-align: center;
            display: flex;
            flex-wrap: wrap;
        }

        header {
            background-color: tomato;
            flex: 1;
            padding: 10px;

        }

        section {
            display: flex;
        }

        section article {
            padding: 30px 10px;
        }

        article.main {
            background-color: gray;
            order: 2;
            flex: 4;
        }

        footer {
            background-color: aqua;
            flex: 1;
            padding: 10px;
        }

        article.left {
            background-color: yellow;
            flex: 1;
            order: 1;
        }

        article.right {
            background-color: green;
            flex: 1;
            order: 3;
        }

        @media (max-width:768px) {
            .container {
                width: 100%;
            }

            section {
                flex-direction: column;
            }

            section article {
                padding: 10px;
            }

            article.main {
                order: 1;
            }
        }
    </style>
</head>

<body>
    <div class="container">
        <header>Header</header>
        <section>
            <article class="main">
                <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Libero magni perspiciatis quaerat atque
                    debitis ab cupiditate inventore velit, quibusdam voluptas, provident molestiae, rem laudantium
                    nihil. Voluptatum voluptates quis eligendi dignissimos!</p>
            </article>
            <article class="left">Aside 1</article>
            <article class="right">Aside 2</article>
        </section>
        <footer>Footer</footer>

    </div>
</body>

</html>

가상의 리눅스 서버 만들기(강의자료 참고)

 

VMWARE 오픈 링크

https://drive.google.com/file/d/1cpj_ptSJlmWUBelGUnYnZkSAy1gSVIDp/view?usp=sharing

 

Fedora 링크

https://drive.google.com/file/d/1hm1DDQ9b6EYJ1pki8uITiqZ571TcvPHg/view?usp=sharing

다운로드 후


데이터베이스 계정 관리(강의자료 참고)

팀장, 사장, 직원 권한 주기


shopdb>membertbl>우마우스클릭>send to SQL editor>

Select, Insert, Update, Create, Delete 구문 자동 생성

CREATE DATABASE `shopdb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;





SELECT * FROM membertbl;
use employees;
SELECT*FROM employees;

-- 자동 생성
CREATE TABLE `departments` (
  `dept_no` char(4) NOT NULL,
  `dept_name` varchar(40) NOT NULL,
  PRIMARY KEY (`dept_no`),
  UNIQUE KEY `dept_name` (`dept_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


CREATE TABLE `membertbl` (
  `memberID` char(8) NOT NULL,
  `memberName` char(5) NOT NULL,
  `memberAddress` char(20) NOT NULL,
  PRIMARY KEY (`memberID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- 한글이 안깨짐

CREATE TABLE `membertbl` (
  `memberID` char(8) NOT NULL,
  `memberName` char(5) NOT NULL,
  `memberAddress` char(20) NOT NULL,
  PRIMARY KEY (`memberID`)
);

-- 위와 같음
CREATE TABLE `membertbl` (
  `memberID` char(8) NOT NULL PRIMARY KEY,
  `memberName` char(5) NOT NULL,
  `memberAddress` char(20) NOT NULL,
);

-- 다른 구문도 확인
-- insert구문
INSERT INTO `shopdb`.`membertbl`
(`memberID`,
`memberName`,
`memberAddress`)
VALUES(
'memberzz',
'홍길동',
'부산'
);

-- select구문
SELECT `membertbl`.`memberID`,
    `membertbl`.`memberName`,
    `membertbl`.`memberAddress`
FROM `shopdb`.`membertbl`;

-- update 구문
UPDATE `shopdb`.`membertbl`
SET
`memberID` = 'test1',
`memberName` = '이순신',
`memberAddress` = '서울'
WHERE `memberID` = 'memberzz';

-- delete 구문

DELETE FROM `shopdb`.`membertbl`
WHERE memberID = 'test1';

-- 데이터 베이스에 모든 테이블을 확인하는 쿼리
show tables;

SELECT * FROM employees;

/*
	SELECT 기본구조
    
    SELECT select_expr
    FROM table_name
    WHERE where_condition
    GROUP BY(col_name|exr|position)
    HAVING where_condition
    ORDER BY (col_name | exr | position)
    
    :차례는 변경이 되면 안된다. 필요하다면 생략은 가능하다.
    
    가장 많이 사용하는 기본 구조
    SELECT 열이름
    FROM 테이블 이름
    WHERE 조건

*/

-- USE 데이터베이스이름 : 
-- 다른 데이터 베이스를 선택하고 엉뚱한 테이블을 조회하지 말자!!

-- USE 를 사용하지 않고 조회
SELECT*FROM employees.titles;
USE employees;

SELECT emp_no, title FROM titles;

-- 문제 1 : title 테이블에서 emp_no와 title, from_date 결과 뽑아보기 LIMIT3

SELECT emp_no, title, from_date FROM titles LIMIT3;

DESC titles;

-- varchar 라는 것은  가변 길이의 문자열을 의미한다. 즉 varchar(50)은 50byte까지 넣을 수 있는 가변길이 문자열을 의미한다. 
-- 최대길이 255바이트

-- CHAR
-- 고정길이 문자열
-- 최대길이 255바이트
-- CHAR(10) : 크기보다 작은 문자열 저장시 뒷부분은 공백으로 채워진다. .trim()

-- 실습
SHOW DATABASES; -- 현재 DBMS에 있는 데이터 베이스를 확인
USE employees; -- 데이터 베이스를 선택할 때 쓰는 것
SHOW TABLE STATUS; -- 테이블 목록과 개봘적인 정보를 확인
SHOW TABLES; -- 테이블 이름만 확인

SQL 파일에서 테이블 바로 만들기

-- sqlDB 
DROP DATABASE IF EXISTS sqldb;
CREATE DATABASE sqldb;

USE sqldb;

CREATE TABLE usertbl -- 회원 테이블
(
userID CHAR(8) NOT NULL PRIMARY KEY, -- 사용자 아이디 (PK)
name VARCHAR(10) NOT NULL, -- 이름
birthYear INT NOT NULL, -- 출생연도
addr CHAR(2) NOT NULL, -- 지역(경기, 서울, 2글자만 입력)
mobile1 CHAR(3), -- 국번 (011, 010)
mobile2 CHAR(8), -- 휴대폰의 나머지 번호(하이픈 제외)
height SMALLINT, -- 키 (+-32768)
mDate DATE -- 회원가입일
);

select * from usertbl;
DELETE from usertbl;

INSERT INTO usertbl VALUES('LSG', '이승기', 1987, '서울', '011', '1111111', 182, '2008-8-8');
INSERT INTO usertbl VALUES('KBS', '김범수', 1979, '경남', '011', '2222222', 173, '2012-4-4');

-- 구매 테이블 만들기

CREATE TABLE buytbl -- 회원 구매 테이블
(
num INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- 순번(pk)
userID CHAR(8) NOT NULL, -- 아이디 (PK)
prodName CHAR(8) NOT NULL, -- 물품명
groupName CHAR(4), -- 분류
price INT NOT NULL, -- 단가
amount SMALLINT NOT NULL,
FOREIGN KEY(userID)REFERENCES usertbl(userID)
);

select * FROM buytbl;

INSERT INTO buytbl VALUES(NULL, 'KBS', '운동화', NULL   , 30,   2);

ETC

1. 검색으로 내용 찾기

2. export해서 csv, json파일 만들기

 

  • row 몇 개까지 보이게 할 건지 설정
  • 소문자 대문자 자동 변환 (강의자료 참고)
  • 드래그 ctrl + enter : 한줄 실행 / 드래그 ctrl + shift + enter : 여러줄 실행