비전공개미 개발노트
MySQL 1일차 - DDL(CREATE, DROP, ALTER) / DML(SELECT, INSERT, UPDATE, DELETE) 본문
MySQL 1일차 - DDL(CREATE, DROP, ALTER) / DML(SELECT, INSERT, UPDATE, DELETE)
비전공개미 2022. 9. 5. 17:44DBMS = 비트전체
클라우드 기반 빅데이터 서비스 개발자과정 = database = employees
ㄴ 회원table(부서+직급+급여+출입게이트), 제품table, 주문정보, = 테이블 = table
회원정보table( 5열필드 * 2행레코드
주번 jumin number(13)숫자 primary key(pk유일한키),
이름name varchar(20)문자,
입사년도hiredate date날짜,
성별gender bool불,
전화번호phone varchar(20)문자,
급여pay number(7, 2)
);
열 = 컬럼 = 필드 이름열 입사연월 성별열 핸드폰열컬럼 급여컬럼
901225-1234567 김패스 2020/01/03 True남 010-9000-9999 79
860915-2456789 이합격 2019/05/30 False여 010-7000-7777 81
웹서비스 기반 자바프레임워크 서비스 개발자과정 = database = kakao
219페이지
SQL언어구분
ㄴDDL, DML, DCL
DDL : Data Define Language(create, alter, drop)
DML : Data Manipulation Language(insert, select, delete, update)
DCL : Data Controll Language(grant, revoke)
CREATE DATABASES naver;
SHOW DATABASES;
USE naver;
SELECT DATABASE();
SHOW TABLES;
# 주석테이블 생성
DROP TABLE guest;
CREATE TABLE guest (
sabun INT PRIMARY KEY,
name VARCHAR(10) NOT NULL,
title VARCHAR(20) NOT NULL,
wdate DATE NOT NULL,
pay INT NOT NULL
);
COMMIT;
SHOW TABLES;
DESC guest;
#DML언어 - 신규등록 INSERT
#INSERT INTO 테이블(필드명) VALUES (필드값);
INSERT INTO guest(sabun, name, title, wdate, pay) VALUES (7700, 'kim', 'monday', now(), 45);
INSERT INTO guest VALUES (9900, 'gugu', 'book', now(), 21);
INSERT INTO guest VALUES (1100, 'one', 'note', now(), 51);
INSERT INTO guest VALUES (2200, 'two', 'rain', now(), 91);
INSERT INTO guest VALUES (3300, 'park', 'book', now(), 31);
INSERT INTO guest VALUES (4400, 'lee', 'coffee', now(), 81);
COMMIT;
SELECT * FROM guest ORDER BY sabun;
UPDATE guest SET title='summer' WHERE sabun=3300;
SELECT * FROM guest ORDER BY sabun;
#에러발생 227페이지참고 문자데이터는 따옴표로 values()로 입력하기!!
INSERT INTO guest VALUES(2200, 'bit', 'snow', now(), 91);
INSERT INTO guest VALUE(3355, 'bit', 'snow', now(), 91);
INSERT INTO guest VALUES(3377, "hong", "dong", now(), 91);
INSERT INTO guest VALUES(3399, 'bit', 'snow', now, 91);
#DML언어 - 데이터추출 SELECT
SELECT 필드명~~~ FROM 테이블명 ORDER BY 필드명;
SELECT sabun, name, title, wdate, pay FROM guest;
system cls;
SELECT * FROM guest;
SELECT * FROM guest ORDER BY sabun ASC; -- asc생략해도 기본값 asc
SELECT * FROM guest ORDER BY name ASC;
SELECT * FROM guest ORDER BY sabun DESC;
SELECT * FROM guest ORDER BY pay DESC;
system cls;
SELECT sabun, name, wdate FROM guest;
SELECT * FROM guest;
#DML언어 - 데이터수정 UPDATE 페이지 224 참고
<주의>
UPDATE 테이블명 SET 필드명1=변경값, ~~; #모든데이터에 적용
rollback;
<확인>
조건절 WHERE 적용
UPDATE 테이블명 SET 필드명1=변경값, ~~ WHERE 필드명=필드값;
SELECT * FROM guest;
UPDATE guest SET pay = pay*1.2 ; -- 전체적용
SELECT * FROM guest;
UPDATE guest SET pay = pay-100, name='aws' WHERE sabun=2200;
SELECT * FROM guest;
#guest테이블구조 + 데이터 복사본 만들기
CREATE table guestCOPY as SELECT * FROM guest;
SELECT * FROM guestCOPY;
#DML언어 - 데이터삭제 DELETE
DELETE FROM 테이블명 WHERE 필드명=필드값 ;
DELETE FROM guest WHERE pay < 40;
select * FROM guest;
DELETE * from guest; --- 문법에러
DELETE from guest; --- 모든데이터삭제 주의
#테이블구조 변경 DDL언어 - DROP, CREATE, ALTER 구조 및 타입변경
mysql> DESC guest;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sabun | int | NO | PRI | NULL | |
| name | varchar(10) | NO | | NULL | |
| title | varchar(20) | NO | | NULL | |
| wdate | date | YES | | NULL | |
| pay | int | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
ALTER TABLE 테이블명 DROP 필드;
ALTER TABLE guest DROP title; -- title필드를 삭제한다
DESC guest;
ALTER TABLE 테이블명 change 필드 변경할필드;
ALTER TABLE guest CHANGE pay hit INT(3); -- pay필드명을 hit으로 바꾸고 INT(3)으로 CHANGE한다
SELECT * FROM guest;
ALTER TABLE 테이블명 ADD 필드 타입;
ALTER TABLE guest ADD gender bool DEFAULT true; -- gender필드명을 추가한다
SELECT * FROM guest;
DESC guest;
ALTER TABLE 테이블명 MODIFY 필드 변경할필드;
ALTER TABLE guest MODIFY name VARCHAR(16); -- name필드의 타입을 VARCHAR(16)으로 변경한다
DESC guest;
ALTER TABLE 테이블명 RENAME 변경테이블명;
ALTER TABLE guest RENAME board; -- guest라는 테이블명을 board로 이름을 변경한다
SHOW TABLES;
DESC board;
SELECT * FROM board;
# 문제1] board테이블에 데이터 2건 입력
INSERT INTO board VALUES (5567, 'aaa', now(), 7, false);
INSERT INTO board VALUES (5569, 'bbb', now(), 5, 0); -- false = 0 / true = 1
# 문제2] board테이블에 sabun필드 정순으로 sort
SELECT * FROM board ORDER BY sabun ASC; -- asc생략가능
# 문제3] board테이블에 sabun필드의 3300 조회
SELECT * FROM board WHERE sabun=3300;
# 문제4] board테이블에 gender필드 삭제
board(sabun, name, wdate, hit) 존재
ALTER TABLE board DROP gender;
# 문제5] 아래데이터 추가
INSERT INTO board VALUES (3321, 'kb', now(), 12);
INSERT INTO board VALUES (2234, 'bc', now(), 95);
INSERT INTO board VALUES (7711, 'ck', now(), 30);
INSERT INTO board VALUES (7722, 'cs', now(), 41);
# 문제6] board테이블에 name필드에서 ck데이터 조회
SELECT * FROM board WHERE name='ck';
# 문제7] board테이블에 name필드에서 b글자가 하나라도 포함된 데이터 조회
SELECT * FROM board WHERE name LIKE '%b%';
# 문제8] 테이블을 생성해보자
# create table student(필드구성 3개이상);
CREATE TABLE student (
num INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
phone VARCHAR(13) NOT NULL,
age INT NOT NULL,
height INT NOT NULL
);
# create table person(필드구성 3개이상);
CREATE TABLE person (
no INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
weight INT NOT NULL,
height INT NOT NULL,
age INT NOT NULL
);
'데이터베이스 > MySQL' 카테고리의 다른 글
| MySQL 4일차 - 조인(JOIN), 서브쿼리, 프로시저(Stored Procedure) (2) | 2022.09.13 |
|---|---|
| MySQL 3일차 - 문제풀이 (0) | 2022.09.07 |
| MySQL 3일차 - 내장함수, 내부조인, 외부조인, 셀프조인, cross조인, natural조인 (0) | 2022.09.07 |
| MySQL 2일차 - 문제풀이 (0) | 2022.09.06 |
| MySQL 2일차 - 테이블생성, 내부함수, WHERE / GROUP BY / HAVING / ORDER BY / LIMIT, View테이블, JOIN(조인) (0) | 2022.09.06 |