1. DELETE

 

DELETE FROM 테이블 WHERE 조건 ;
 

👩🏻‍💻 레코드를 삭제할 때 사용한다.

👩🏻‍💻 삭제는 항상 레코드 단위로 수행하므로 필드에 대한 지정은 없음.

👩🏻‍💻 삭제 동작은 특정 조건에 맞는 레코드를 찾아 제거하는 경우가 대부분이어서 WHERE 절이 항상 뒤따라 온다.

 

DELETE FROM tCity WHERE name = '부산';
SELECT * FROM tCity;
 

⬇️

 

📌  도시명이 '부산'인 레코드를 삭제

 

 

 

 

2. 삭제 안전 장치

 

👩🏻‍💻  삭제시 문제가 되는 부분은  1) 조건절을 빼거나 2) 잘못된 조건을 사용하는 경우

👩🏻‍💻  조회만 하는 SELECT 명령은 테이블을 변경하지 않아 실수해도 조건을 바꿔 다시 조회하면 됨.

       INSERT 명령은 테이블을 변경하지만 혹시라도 잘못 삽입했으면 다시 지우면 되어서 그다지 위험하지 않음

       하지만 잘못 내린 DELETE 명령은 즉시처리해 버림.

👩🏻‍💻  DELETE문은 특정 레코드를 삭제하기 위해 WHERE 절과 함께 사용하지만 실수로 WHERE 절을 생략해 버리면 모든 데이터가 삭제됨

 

 

📌  만일 월급이 300 초과인 직원을 삭제한다면 다음 절차대로 작업

// 1. DELETE 명령을 내리기 전에 먼저 SELECT로 삭제 대상 레코드를 고름
      SELECT * FROM tStaff WHERE salary > 300;
// 2. 조건을 맞는지 확인 후 제거
      DELETE FROM tStaff WHERE salary > 300;
 

 

 

 

3. TRUNCATE

 

TRUNCATE TABLE 테이블 ;
 

👩🏻‍💻  테이블 초기화 할 때 쓰는 명령어

👩🏻‍💻  DELETE 명령은 수십만건의 레코드를 일일이 지우게 되면 서버에 부하가 생긴다.

       ➡️ 이 경우 TRUNCATE 명령을 사용하는 것이 효율적

       ➡️ 물리적인 기억 장소를 깨끗이 비우고 임시 영역에 로그도 남기지 않아 훨씬 빠르다

 

TRUNCATE TABLE tCity;

 

🔽

 

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]

 

'Database > MySQL' 카테고리의 다른 글

[MySQL] 서브쿼리 (SubQuery)  (1) 2024.02.24
[MySQL] UPDATE 문  (1) 2024.02.24
[MySQL] INSERT 문  (0) 2024.02.23
[MySQL] GROUP BY, HAVING  (0) 2024.02.23
[MySQL] 집계 함수 (aggregate function)  (0) 2024.02.23

 


 

1.  INSERT

👩🏻‍💻 새로운 레코드를 추가하는 명령

👩🏻‍💻 INSERT 문을 스크립트로 작성해 놓으면 많은 데이터를 순차적으로 입력할 수 있어서 편리

 

// 기본 형식 
INSERT INTO 테이블 (필드 목록) VALUES (값 목록)

  📌  명령어가 두 단어로 구성, INSERT는 삽입하라는 명령어이고 INTO는 삽입 대상을 명시하는 전치사

  📌  INTO 다음에 새 레코드를 삽입할 테이블 이름을 적은 후 필드 목록에 삽입할 필드의 이름을 콤마로 구분하여 나열

  📌  VALUES 절의 값 목록에는 필드에 대입할 값을 나열

 

// 서울 레코드를 삽입하는 원론적인 쿼리문 
INSERT INTO tCity (name, area, popu, metro, region) 
   VALUES ('서울', 605, 974 ,'y', '경기');

  👾  필드 목록, 값 목록 모두 5개여서 개수가 맞음

  👾  하지만 필드 목록과 값 목록이 반복되어 명령문이 길고 필드명을 일일이 순서에 맞춰 입력해야 되서 길어짐

          ➡️ 모든 필드를 선언 순서대로 삽입할 때는 필드 목록을 생략 할 수 있다.

          ➡️ 필드 목록이 없는 대신 값 목록이 완전해야 하며 순서도 반드시 지켜야 함

  👾  필드 목록을 밝히면 꼭 선언 순서에 맞추지 않아도 결과값은 순서대로 출력 된다.

 

INSERT INTO tCity VALUES ('서울',605, 974,'y','경기'); 
-- 서울이 이미 있어서 중복 삽입을 할수 없으므로 테이블에 없는 평택을 입력. 
INSERT INTO tCity VALUES ('평택', 453, 51, 'n', '경기');

 

INSERT INTO tCity VALUES ('평택', 51, 453, 'n', '경기'); 
-- area와 popu가 바뀜 
INSERT INTO tCity VALUES ('평택', 453, 'n', 51, '경기'); 
-- popu와 metro 순서가 바뀜 
INSERT INTO tCity VALUES ('평택', 453, 'n', '경기'); 
-- popu 필드값 누락 

-- 필드 목록을 밝히면 꼭 선언 순서에 맞추지 않아도 원하는 순대대로 나열할 수 있음. 
INSERT INTO tCity (area, popu, metro, region, name) 
     VALUES (453, 51, 'n', '경기', '평택');

 

 

 

2.  확장 INSERT문

👩🏻‍💻  각 행마다 개별적으로 INSERT INTO 명령을 일일이 작성하면 쿼리문이 길어 번잡스러움

       ➡️ 대량의 데이터를 삽입할 때는 VALUES 뒤에 차례로 나열하면 편하다.

👩🏻‍💻  백업을 복구하는 경우 속도는 개별보다 느리다.

👩🏻‍💻  표준SQL 문법은 아니고 오라클에서도 지원하지는 않음.

 

INSERT INTO tCity (name, area, popu, metro, region) 
  VALUES ('서울',605,974,'y','경기'), 
         ('부산',765,342,'y','경상'), 
         ('오산',42,21,'n','경기'), 
         ('청주',940,83,'n','충청'), 
         ('전주',205,65,'n','전라'), 
         ('순천',910,27,'n','전라'), 
         ('춘천',1116,27,'n','강원'), 
         ('홍천',1819,7,'n','강원');

 

 

 

3.  INSERT SELECT

// 기본형 
INSERT INTO 대상테이블 (필드목록) SELECT 필드목록 FROM 원본테이블;

👩🏻‍💻 INSERT 명령은 한번에 하나의 레코드만 삽입하지만, 다른 테이블 또는 자기 자신에게 이미 저장되어 있는 대량의 정보를 복사할 때는

조회한 결과셋을 한꺼번에 삽입할 수 있다.

👩🏻‍💻 INSERT INTO와 기본 형식은 비슷하지만 필드의 값을 VALUES 대신 SELECT 명령으로 다른 테이블에서 읽어온다는 점이 다르다.

👩🏻‍💻 다른 테이블이나 같은 테이블의 정보를 재활용하는 경우 많다.

 

INSERT INTO tStaff (name, depart, gender, joindate, grade, salary, score) 
  SELECT name, region, metro, '20210629', '신입', area, popu 
     FROM tCity WHERE region = '경기';

 

📌  tCity 테이블에서 경기도 소속의 도시 정보를 읽어 tStaff 테이블에 신입 직원으로 삽입

 

 

 

4.  CREATE SELECT

CREATE TABLE 대상테이블 AS SELECT 필드목록 FROM 원본테이블

 

👩🏻‍💻 INSERT SELECT 와 유사하되 기존 테이블에 레코드를 삽입하는 것이 아니라 새로 테이블을 만들어 결과셋을 삽입하는 점이 다르다.

👩🏻‍💻 기존 테이블의 일부 필드와 레코드를 가져와 삽입하는 명령이어서 대상 테이블이 존재하면 안된다.

👩🏻‍💻 원본을 손상시키지 않고 특수한 작업을 하기 위해 사본을 만드는 경우 유용

 

CREATE TABLE tSudo AS SELECT name, area, popu FROM tCity 
   WHERE region = '경기'; 
   
SELECT * FROM tSudo;

📌  경기도 지역의 도시만으로 tSudo 테이블을 생성

 

 

📍 tStaff 테이블에 대량의 변경을 가해야 하는데 불안할 경우 다음 명령으로 복사

CREATE TABLE tStaff_backup_240206 AS SELECT * FROM tStaff;

   📌  백업은 여러번 뜰 수 있어서 관행상 날짜를 명시.

   📌  데이터의 백업은 되나 원본 테이블의 키 속성을 가지고 오지 못한다.

[ 내용 참고 : 코딩학원 강의 ]

'Database > MySQL' 카테고리의 다른 글

[MySQL] UPDATE 문  (1) 2024.02.24
[MySQL] DELETE 문  (1) 2024.02.24
[MySQL] GROUP BY, HAVING  (0) 2024.02.23
[MySQL] 집계 함수 (aggregate function)  (0) 2024.02.23
[MySQL] SELECT문 | ORDER BY, DISTINCT, LIMIT, OFFSET FETCH  (0) 2024.02.23


 

1. 집계함수 Aggregate Function

🍋  집계 함수는 복수개의 레코드에 대해 집합적인 계산을 수행하여 합계, 평균, 분산 같은 통계값을 산출.

🍋  테이블에 저장된 정보를 함수로 전달하면 원본 데이터를 변형, 가공하여 돌려준다.

🍋  함수 호출문이 하나의 값이므로 필드 목록이나 조건절등에 값처럼 사용하면 된다.

함수명
설명
COUNT()
행의 개수를 센다
AVG()
평균을 구한다
MIN()
최소값을 구한다
MAX()
최대값을 구한다
STDEV()
표준편차를 구한다
VAR_SAMP()
분산을 구한다

 


 

(1) COUNT() : 행의 개수를 센다

📍 COUNT는 개수를 조사할 필드명을 전달하는데 * 지정하면 필드에 상관없이 조건에 맞는 레코드 개수를 리턴

 

// tStaff 테이블에 저장되어 있는 레코드 개수
  SELECT COUNT(*) FROM tStaff;
// 계산값은 열 이름이 없는데 별명을 부여하면 결과셋에 이름을 표시.
  SELECT COUNT(*) AS "총 직원수" FROM tStaff;

 

 

 

 

📍 WHERE 절을 붙이면 조건에 맞는 레코드의 개수를 구한다.

SELECT COUNT(*) FROM tStaff WHERE salary >= 400; // 월급이 400 이상인 직원의 수
SELECT COUNT(*) FROM tStaff WHERE salary >= 10000; // 월급이 10000 이상인 직원의 수

 

📍 집계는 모든 레코드의 값을 참고하여 하나의 값을 구하는 것이어서 결과셋은 목록이 아닌 딱 하나의 값

       ➡️ 집계하는 말 자체가 다중값으로 부터 단일 값을 산출한다는 의미.

📍 조건에 맞는 레코드가 없어도 결과 값은 역시 하나

 

 

📍 특정 필드의 개수를 구할때는 인수로 필드명을 적는다.

      ➡️ 지정한 필드 값이 존재하는 레코드의 개수를 구함

SELECT COUNT(name) FROM tStaff; 
SELECT COUNT(depart) FROM tStaff;

 

 

 

 

📍 중복 부서를 제외하고 부서의 종류가 몇 개인지 알고 싶으면 필드명 앞에 DISTINCT 키워드를 붙인다.

SELECT COUNT(DISTINCT depart) FROM tStaff;

 

 


 

📍 COUNT 함수는 '필드값이 제대로 들어 있는 레코드의 개수만 구하며' 필드값이 NULL인 레코드는 개수에서 제외.

📍 name이나 depart는 NULL이 없어 전체 직원수와 같지만, score 필드는 NULL 값이 있음.

SELECT COUNT(score) FROM tStaff; 
SELECT COUNT(*) - COUNT(score) FROM tStaff; 
SELECT COUNT(*) FROM tStaff WHERE score IS NULL;

 

 

 

 

(2) SUM(), AVG(), MIN(), MAX()

 

SELECT SUM(popu), AVG(popu) FROM tCity; // 도시 목록에서 인구의 총합과 평균을 구함. 
SELECT MIN(area), MAX(area) FROM tCity; // 모든 도시의 area 필드를 조사하여 가장 작은 값과 가장 큰 값을 찾음.

 

 

 

 

 

📍 WHERE 절을 붙이면 조건을 만족하는 레코드에 대해서만 집계를 함

 

SELECT SUM(score), AVG(score) FROM tStaff WHERE depart = '인사과'; // 인사과의 총 실적 합계과 평균
SELECT MIN(salary), MAX(salary) FROM tStaff WHERE depart = '영업부'; // 영업부에서 가장 낮는 월급과 가장 높은 월급

 

 

 

 

📍 문자열끼리는 더할 수 없어 총합을 계산할 수 없고 평균도 의미가 없다.

📍 but! 문자열이나 날짜끼리는 사전순으로 비교할 수 있고, 날짜에 대해서는 MIN, MAX 함수 사용 가능하다.

📍 집계함수와 일반필드은 같이 사용하면 안된다.

SELECT SUM(name) FROM tStaff; 
SELECT MIN(name) FROM tStaff; 
SELECT MAX(popu), name FROM tCity; (x) 
-> SELECT popu, name FROM tCity ORDER BY popu DESC LIMIT 1;

 

 

 

(3) 집계 함수와 NULL

📍 NULL은 값을 알수 없는 특수한 상태로 모든 집계 함수는 NULL을 무시하고 통계를 계산한다.

📍 단, 예외적으로 레코드 개수를 세는 COUNT(*)는 NULL 도 포함하지만, 인수로 필드를 지정하면 NULL을 세지않는다.

SELECT AVG(salary) FROM tStaff; 
SELECT SUM(salary)/COUNT(*) FROM tStaff; // 평균은 총합을 개수로 나누어서 구함 위의 문장과 동일

 

 

 

 

📍 score의 경우에는 다른 값이 나온다.

      ➡️ AVG 함수는 NULL 값을 제외하고 계산을 하지만, COUNT(*)의 경우 NULL 값도 포함

      ➡️ 시스템 규칙에 따라 NULL이 0을 나타내는 것일 수 있음.

SELECT AVG(score) FROM tStaff; 
SELECT SUM(score)/COUNT(*) FROM tStaff; 
SELECT SUM(score)/COUNT(score) FROM tStaff;

 

 

 

 

📍 COUNT(*)는 없다는 뜻의 0을 리턴, 다른 집계함수는 계산 대상이 없어서 존재하지 않는 0이 아니라 NULL을 반환

SELECT COUNT(*) FROM tStaff WHERE depart = '비서실'; 
SELECT MIN(salary) FROM tStaff WHERE depart = '비서실';

[ 내용 참고 : IT 학원 강의 ]

 

 

 

 

1. ORDER BY

 

🐰 SELECT 명령에 필드 지정이 없을 경우 레코드의 출력 순서는 DBMS의 디폴트 순서를 따름.

🐰 관계형 DB에서 레코드의 물리적 순서는 큰 의미가 없고, 대신 출력할 때 ORDER BY 절로 정렬 순서를 원하는대로 지정.

// 기본형식
ORDER BY 필드 [ASC | DESC]
 

 

🐰 ORDER BY 다음에 정렬 기준 필드를 적고 오름차순일 경우 ASC 키워드를, 내림차순일경우 DESC 키워드를 지정.

🐰 순서를 생략하면 디폴트인 오름차순으로 적용되므로 키워드 ASC는 보통 생략.

SELECT * FROM tCity ORDER BY popu;
SELECT * FROM tCity ORDER BY popu ASC;
 
 
 
 

🔖  인구수를 기준으로 정렬하여 인구가 작은 도시부터 출력.

 

 

 

 

 

 

SELECT * FROM tCity ORDER BY popu DESC;
 
 

 

 

🔖  DESC를 붙이면 내림차순으로 정렬해서 인구가 많은 도시부터 출력.

 

 

 

 

 


 

 

🐰 두 개 이상의 기준 필드를 지정하는 경우  ➡️  첫 번째 기준 필드의 값이 같으면, 두 번째 기준 필드를 비교하여 정렬 순서를 결정.

SELECT region, name, area, popu FROM tCity ORDER BY region, name DESC;
SELECT region, name, area, popu FROM tCity ORDER BY region ASC, name DESC;
 

 

 
 

 

🔖 지역별로 정렬하되 같은 지역에 속한 도시끼리는 이름의 내림 차순으로 정렬.

🔖 ORDER BY 뒤에 기준 필드를 콤마로 구분하여 나열하되 각 기준별로 오름차순과 내림차순을 따로 지정 가능.

🔖 region은 순서를 지정하지 않았으므로 디폴트인 ASC가적용. 1차 정렬 기준인 지역이 같으면 2차 기준인 이름순으로 정렬하되 이때는 DESC 내림차순으로 정렬.

 

 

 

 

 

SELECT region, name, area, popu FROM tCity ORDER BY area ASC, name DESC;
 

 

 

 

 

 

🔖 area가 동일한 값이 없으므로 두 번째 정렬 기준인 name은 효력을 발휘하지 않음.

 

 

 

 

 

 

 

 

 

 

🐰 ORDER BY 기준은 보통 필드명으로 하지만 순서값으로도 지정 가능. 필드 순서 값은 테이블 생성시에 등록한 순서.

🐰 tCity의 경우 name이 1번, area가 2번, popu가 3번

SELECT * FROM tCity ORDER BY area;
SELECT * FROM tCity ORDER BY 2;
 
 
 
 

 

🔖  면적순으로 정렬하려면 area를 기준으로 하는 대신 2번 필드 기준으로 해도 결과는 같음

 

 

 

 

 

 

 

 

 

 

🐰 테이블에 존재하지 않은 계산값도 정렬 기준으로 사용할 수 있음.

SELECT name, popu * 10000 / area  FROM tCity  ORDER BY popu * 10000 / area;
SELECT name, popu * 10000 / area  AS tmp  FROM tCity  ORDER BY tmp;
 

 

 

 

🔖 인구수와 면적으로 계산한 인구밀도의 오름차순으로 도시를 정렬.

🔖 정렬 기준을 꼭 같이 출력할 필요는 없지만 제대로 정렬했는지 확인하기 위해 인구밀도를 같이 출력

 

 

 

 

 

 

 


 

 

🐰  레코드의 조건을 지정하는 WHERE 절과 출력 순서를 지정하는 ORDER BY 절을 동시에 사용 가능.

SELECT * FROM tCity WHERE region = '경기' ORDER BY area;
 

 

 

🔖  경기도에 있는 도시만 골라 면적별로 정렬.

      이때 ORDER BY 절은 WHERE 절보다 뒤쪽에 있어야 함.

 

 

 


 

 

2. DISTINCT

 

🐰 중복된 값을 제거할 때 DISTINCT 키워드를 붙인다.

    ex. 도시 테이블에서 region 필드만 읽어 도시가 속한 지역의 목록을 조사하고 싶은 경우 SELECT region FROM tCity; 로 작성

            ➡️  하지만 이런 경우 같은 도시가 여럿 있는 경우 중복해서 출력

            ➡️  단순히 어떤 지역이 있는지만 조사한다면 굳이 중복된 값을 반복해서 출력할 필요가 없음

            ➡️  DISTINCT 키워드를 사용하여 중복된 값 제거.

SELECT DISTINCT region FROM tCity;
SELECT DISTINCT region FROM tCity ORDER BY region;
 

 

 

 

🔖  DISTINCT 키워드로 중복 제거를 하다 보면 순서가 달라짐.

🔖  만약 중복도 제거하고 정렬도 하고 싶으면 ORDER BY절을 붙임.

 
 
 
 
 
 

 
 

🐰 DISTINCT의 반대 키워드는 ALL 이며 중복 제거 없이 모든 레코드를 출력.

🐰 ALL이 디폴트라서 굳이 지정할 필요는 없음.

SELECT ALL depart FROM tStaff;
 

 

 

 


 

 

3. LIMIT

 

// 기본 형식
SELECT .... LIMIT [건너뛸 개수], 총개수
 

🐰 LIMIT 구문으로 행수를 제한.

🐰 건너뛸 개수를 생략하면 0으로 적용하여 첫 행 부터 출력

 

SELECT * FROM tCity ORDER BY area DESC LIMIT 4;
SELECT * FROM tCity ORDER BY area DESC LIMIT 0, 4;
 

 

 

🔖  면적이 넓은 상위 4개 도시를 구하는 구문.

 

 

 

 

 

SELECT * FROM tCity ORDER BY area DESC LIMIT 2, 3;
SELECT * FROM tCity ORDER BY area DESC LIMIT 3 OFFSET 2;
 

 

 🔖  앞쪽 2개는 건너뛰고 이후 3개의 행을 구함.

 🔖  앞쪽 몇 개를 건너뛴 후 일정 개수 만큼 보여주는 이 구문은 게시물을 페이지 단위로 끊어서 출력할 때 실용적.

 

 

 

 


 

 

4. OFFSET FETCH

 

🐰  테이블의 일부 레코드만 조회하는 작업은 빈도가 높고 실용적이지만 DBMS 별로 사용하는 문법이 다름.

       ➡️ SQL 표준이 새로 OFFSET FETCH 문법을 만듦.

       ➡️ 일부분을 특정하려면 순서를 지정해야 되서 ORDER BY 문이 반드시 있어야 함.

       ➡️ 그래서 OFFSET FETCH 는 별도의 구문이 아니라 ORDER BY의 옵션

// 기본 형식
ORDER BY 기준필드 OFFSET 건너뛸 행 수 ROWS FETCH NEXT 출력할 행 수 ROWS ONLY;
 
SELECT * FROM tCity ORDER BY area DESC OFFSET 0 ROWS FETCH NEXT 4 ROWS ONLY;
SELECT * FROM tCity ORDER BY area DESC LIMIT 0, 4;
 
 

 

🔖  면적 순으로 상위 4개의 도시를 출력. 면적을 내림차순을 정렬 후 4개의 행만 읽음.

       ➡️ OFFSET을 지정하면 앞쪽 일부를 건너뛸 수 있음.

 

 

 

 

 

SELECT * FROM tCity ORDER BY areabDESC OFFSET 2 ROWS FETCH NEXT 3 ROWS ONLY;
SELECT * FROM tCity ORDER BY area DESC LIMIT 2, 3;
 
 
 
 

🔖  상위 2개를 건너 뛰고 다음 순서인 3, 4, 5위 3개의 도시를 조사.

 

 
 
 
 

 

 

🐰 WHERE 구문과 함께 사용하여 필터링을 먼저 하고 그 일부 레코드만 출력할 수 있음.

SELECT * FROM tCity WHERE metro = 'n' ORDER BY area DESC OFFSET 2 ROWS FETCH NEXT 3 ROWS ONLY;
SELECT * FROM tCity WHERE metro = 'n' ORDER BY area DESC LIMIT 2, 3;
 
 
 
 

🔖  광역시는 제외하고 순위를 매겨 3등에서 5등까지 출력.

 

 

 

 

 

 

 

 

[ 내용 출처 : IT 학원 강의 ]

 

 


1. 데이터베이스의 정의와 특징

✔️ 데이터베이스를 ‘데이터의 집합’이라고 정의한다면 DBMS는 이 데이터베이스를 관리·운영하는 역할을 한다.

✔️ 데이터베이스는 여러 명의 사용자나 응용 프로그램을 공유하고 동시에 접근이 가능해야 한다. 그래서 Microsoft의 Excel과 같은 프로그램은 데이터의 집합으로 사용될 수 있기 때문에 DBMS와 비슷하게 보일 수도 있지만, 대용량을 관리하거나 여러 명의 사용자가 공유하는 개념은 아니므로 DBMS라 부르지 않는다.

✔️ 데이터베이스는 ‘데이터의 저장공간’ 자체를 의미하기도 한다. 특히, MySQL에서는 ‘데이터베이스’를 자료가 저장되는 디스크 공간(주로 파일로 구성됨)으로 취급한다.

 


2. DBMS 란?

✔️ 파일시스템의 단점을 보완하고 대량의 데이터를 보다 효율적으로 관리하고 운영하기 위해서 사용되기 시작한 것이 DBMS (DataBase Management System)

✔️ DBMS는 데이터의 집합인 ‘데이터베이스’를 잘 관리하고 운영하기 위한 시스템 또는 소프트웨어를 말한다.

✔️ DBMS에 데이터를 구축하고 관리하고 활용하기 위해서 사용되는 언어가 SQL Structured Query Language 이다.

-> 이 SQL을 사용해서 우리가 DBMS를 통해 중요한 정보들을 입력하고 관리하고 추출할 수 있다.

(1) 관계형 데이터베이스 Relational DBMS: RDBMS

· 시초는 1969년 E.F.Codd라는 학자가 수학 모델에 근거해서 고안하면서 시작되었다.

  RDBMS의 핵심 개념은 “데이터베이스는 테이블 Table 이라 불리는 최소 단위로 구성되어 있다."

· 테이블은 데이터를 효율적으로 저장하기 위한 구조이다. 정보를 저장하기 위해서 하나의 테이블이 아닌 여러 개의 테이블로 나누어서 저장함으로써 불필요한 공간의 낭비를 줄이고 데이터 저장의 효율성을 보장해 줄 수 있다.

 

아이디
이름
주소
abc123
한가인
서울 은평구 00동
def456
김태희
인천 남구 00동
ghi789
송혜교
경기도 부천시 00동

 

[ 4행(로우) 3열(컬럼) 관계형 구조 ]

 


3. SQL 이란?

✔️ 관계형 데이터베이스에서 사용되는 언어

✔️ DBMS 제작회사와 독립적이며 다른 시스템으로 이식성이 좋다. 대화식 언어로 구성되어 있고 분산형 클라이언트/서버 구조.

(1) MySQL

· Oracle 사에서 제작한 DBMS 소프트웨어로 오픈 소스로 제공된다. 오픈소스란 말그대로 소스를 공개한 소프트웨어를 말한다.

· 상용 목적의 Standard/Enterprise/Cluster CGE, 무료 에디션인 Community 를 제공한다.

 

( 내용 출처 : 이것이 MySQL이다. )

+ Recent posts