수업/수업정리

2024-03-06-오후:DDL실습2_SELECT/FROM/WHERE

Dev.chandel 2024. 3. 6. 14:00
-- 컬럼 순서 변경
ALTER TABLE tb_user MODIFY u_mobile1 VARCHAR(100) AFTER u_mobile2;

-- 컽텀 데이터 타입 변경
ALTER TABLE tb_user MODIFY u_name CHAR(50);

-- 새로운 컬럼 추가
ALTER TABLE tb_user ADD COLUMN u_gen CHAR(10) AFTER u_birth;

-- 칼럼 삭제하기
ALTER TABLE tb_user DROP COLUMN u_gen;

-- 테이블 이름 변경
ALTER TABLE tb_user RENAME TO tb_member;

-- 데이터베이스 지우기
DROP DATABASE 데이터베이스_이름;
-- 테이블 자체가 삭제
DROP TABLE 테이블_이름;
-- 테이블은 남아있는데 데이터만 삭제된 형태
TRUNCATE TABLE 테이블_이름;
-- 만약 존재한다면, 삭제하기
DROP TABLE IF EXISTS 테이블_이름;

/*
INSERT_INTO 테이블_이름(속성_리스트) VALUES(값_리스트);
속성=이름=칼럼
번호, 이름, 나이
INSERT_INTO a테이블(번호,이름,나이) VALUES(1,'홍길동',25);
*/
INSERT INTO tb_member (u_id, u_pw, u_name, u_birth, u_addr, u_mobile2, u_mobile1, u_reg) VALUES ('id001', 'pw001', '홍길동', NOW(), '덕진동', '0101234', '0105678', NOW());

선택영역 우클->INSERT생성

INSERT INTO tb_member (u_id, u_pw, u_name, u_birth, u_addr, u_mobile2, u_mobile1, u_reg)
VALUES
('id002', 'pw002', '홍길동', NOW(), '덕진동', '0101234', '0105678', NOW()),
('id003', 'pw003', '홍길동', NOW(), '덕진동', '0101234', '0105678', NOW()),
('id004', 'pw004', '홍길동', NOW(), '덕진동', '0101234', '0105678', NOW()),
('id005', 'pw005', '홍길동', NOW(), '덕진동', '0101234', '0105678', NOW());

/* 오류 무시하고 다음 구문으로 이동 INSERT IGNORE INTO */
INSERT IGNORE INTO tb_member (u_id, u_pw, u_name, u_birth, u_addr, u_mobile2, u_mobile1, u_reg) VALUES
('id005', 'pw005', '홍길동', NOW(), '덕진동', '0101234', '0105678', NOW()),
('id006', 'pw006', '홍길동', NOW(), '덕진동', '0101234', '0105678', NOW()),
('id007', 'pw007', '홍길동', NOW(), '덕진동', '0101234', '0105678', NOW()),
('id008', 'pw008', '홍길동', NOW(), '덕진동', '0101234', '0105678', NOW());

 

 

/*
튜플:헹(=조건)
로우:열(=컬럼=속성=이름)
INSERT:기존에 없던 데이터를 삽입
UPDATE:조건에 맞는 기존에 있는 데이터를 수정

UPDATE 테이블_이름
SET
수정할_컬럼_이름=수정할_값;
*/

UPDATE tb_member
SET
u_name='한송이';

UPDATE tb_member
SET
 u_name='홍길동'
-- 조건을 작성하는 칼럼_이름은 유일한 값을 사용
WHERE
 u_id='id003';

/*
튜플:헹(=조건=로우)
:열(=컬럼=속성=이름)
DELETE:조건에 맞는 기존에 있는 데이터를 삭제

*/

DELETE
FROM
tb_member
WHERE
u_id='id004';

-- 부분 테이블 복제
CREATE TABLE tb_member_backup(
SELECT
u_id,
u_name,
u_addr
From
tb_member
);

-- 전체 테이블 복제
CREATE TABLE tb_member_backup2(
SELECT
*
From
tb_member
);

 

데이터 모델=데이터 저장 기법
관계형모델(테이블형태저장)
1) 테이블 내부에서 생성되는 관계
서로 관련있는 데이터들의 집합으로만 구성
2) 서로 관련있는 테이블 사이 생성되는 관계
식별 가능한 값을 이용해서 연결

 

릴레이션

릴레이션은 스키마와 인스턴스로 구성

스키마(Schema)

  • 관계형 데이터베이스의 릴레이션의 구성과 정보
  • 기본적인 구조 정의
  • 테이블의 첫 행(Header)에 표시

 

인스턴스

  • 정의된 스키마에 따라 릴레이션에 실제 저장되어 있는 값

  • 속성=컬럼=애트리뷰트:상품번호, 상품명...
  • 차수(Degree) : 몇 개의 속성을 가지는지 나타내는 용어
  • 도메인 : 각 속성들이 가질 수 있는 값들의 집합
  • 튜플: 행=로우=조건
  • 카디널리티(Cardinality) : 릴레이션에 저장된 튜플/행의 수
/*
SELECT문에서 중요한 점: 순서대로 작성하고 순서대로 읽는다.

SELECT
조회하려는_열(속성)_이름1,
조회하려는_열(속성)_이름2
FROM
조회하려는 데이터가 있는 테이블_이름;
*/

-- 회원테이블에서 회원 아이디, 이름, 주소 조회
SELECT 
u_id,
u_name,
u_addr
FROM
tb_member;

 

-- 회원테이블에서 회원의 아이디, 이름, 연락처1을 조회

SELECT
u_id,
u_name,
u_mobile1
FROM
tb_member;

/*
조건을 걸어 조건에 맞는 데이터만 조회

SELECT
조회하려는_열(속성)_이름1,
조회하려는_열(속성)_이름2
FROM
조회하려는 데이터가 있는 테이블_이름
Where
조건;

실행순서 : FROM절->WHERE절->SLECT절
WHERE절을 사용해서 조건에 맞는 데이터를 가져올 수 있다. 조건에 맞는(=참=True) Row(=행)만 선택해서 조회한다.

*/

-- 회원테이블에서 id003인 회원의 아이디, 이름, 주소를 조회

SELECT
u_id,
u_name,
u_addr
FROM
tb_member
WHERE
u_id='id003';


 

참고링크:

https://codingapple.com/unit/sql-where-and-or-in/