반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Tags
more
Archives
Today
Total
관리 메뉴

비전공개미 개발노트

MySQL 1일차 - DDL(CREATE, DROP, ALTER) / DML(SELECT, INSERT, UPDATE, DELETE) 본문

데이터베이스/MySQL

MySQL 1일차 - DDL(CREATE, DROP, ALTER) / DML(SELECT, INSERT, UPDATE, DELETE)

비전공개미 2022. 9. 5. 17:44
반응형
SMALL

DBMS = 비트전체
클라우드 기반 빅데이터 서비스 개발자과정 = 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
);



강사님 깃허브
https://github.com/posasi2000/database

반응형
LIST
Comments