ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #MySQL 돌고래 친구의 언어를 배워보자!.!
    MySQL 2023. 11. 15. 23:13

     

    # MySQL이란?

    가장 널리 사용되는 관계형 데이터베이스 관리 시스템(RDBM: Relational DBMS)으로 오픈소스이며, 자료를 관리 및 처리하기 위해 설계된 표준 언어입니다. 

     

    # MySQL 특징

    1. 대소문자 구분을 하지 않습니다. 2. 구문 뒤에 세미콜론(;)을 붙입니다. 3. 주석은 두개의 하이픈(--)과 한 칸의 공백을 사용합니다. 4. 컬럼은 이름, 데이터타입, 제약사항으로 이루어져있습니다.
     

    # 관계형 데이터베이스의 테이블(table)(출처: TCP School)

    테이블(Table): 서로 연관된 레코드의 집합을 의미합니다.  
    레코드(Record): 하나의 단위로 취급되는 자료의 집합, DB에서는 행(Row)에 해당합니다. 
    필드(Field): 가장 작은 단위의 데이터를 의미합니다. DB에서는 열(Column)에 해당합니다. 

     


    # 기초 SQL문 정리

     

    ** 데이터 베이스 보기

    SHOW DATABASES;

     

    ** 데이터 테이블 보기

    SHOW TABLES;

     

    ** 데이터 베이스 생성

    CREATE DATABASE 데이터베이스명;

     

    ** 데이터 테이블 생성

    CREATE TABLE 테이블명 (컬럼명1, 컬럼명2, 컬럼명3, ..., 컬럼명N);

     

    ** 데이터베이스 사용 

    USE 데이터베이스명;

     

    ** 데이터베이스 삭제

    DROP DATABASE 데이터베이스명;

     

    ** 테이블 삭제

    DROP TABLE 테이블명;

     

    ** 테이블에 새로운 칼럼 추가 

    ALTER TABLE 테이블명 ADD 컬럼명 자료형;

     

    ** 테이블에 특정 컬럼을 변경

    ALTER TABLE 테이블명 CHANGE 변경전명 변경후명 자료형;

     

    ** 테이블에 특정 컬럼 삭제 

    ALTER TABLE 테이블명 DROP 컬럼명;

     

    ** 테이블에 데이터 추가하기

    INSERT INTO 테이블명 (컬럼1, 컬럼2, ..., 컬럼N) VALUES (데이터1, 데이터2, ..., 데이터N);

     

    ** 테이블에 구조 살펴보기 

    DESCRIBE 테이블명;

     

    ** 원하는 항목 표시하기 

    SELECT * FROM 테이블이름;
    SELECT 컬럼1, 컬럼2, ...컬럼N FROM 테이블이름;


    ** 조건하에 항목 표시하기 

    SELECT id, name, email FROM memo WHERE sex = 'M' AND math > '70';

     

    ** 순서대로 표시하기 

    // 오름차순
    SELECT name, phone FROM memo ORDER BY 컬럼명 ASC;
    // 내림차순
    SELECT name, phone FROM memo ORDER BY 컬럼명 DESC;

     

    ** 원하는 갯수만큼 가져오기 

    // 위에서 4개만 가져온다.
    SELECT * FROM memo LIMIT 4;
    // 3번부터 4개를 가져온다.
    SELECT * FROM memo LIMIT 2, 4;

     

    ** 데이터 갯수 알아내기 

    SELECT COUNT(*) FROM data;

     

    ** 특정조건에 해당하는 데이터 갯수 구하기

    SELECT COUNT(*) FROM data WHERE sex = 'F';

     

    ** 검색을 통해 데이터 가져오기 

    SELECT * FROM student WHERE name LIKE '인민%';

     

    ** 자료 업데이트 하기

    UPDATE 테이블명 SET 컬럼 = 값, ... WHERE 조건문

     

    ** 자료 삭제하기 

    DELETE FROM 테이블명 WHERE 조건문;

    # 조인(join)

    ** 외쪽 외부 조인(left outer join)

    SELECT * FROM A
    LEFT JOIN B ON A.key = B.key

     

    ** 외쪽 안티 조인(left anti join)

    SELECT * FROM A
    LEFT JOIN B ON A.key = B.key
    WHERE B.key IS NULL

     

    ** 오른쪽 외부 조인(right outer join)

    SELECT * FROM A
    RIGHT JOIN B ON A.key = B.key

     

    ** 오른쪽 안티 조인(right anti join)

    SELECT * FROM A
    RIGHT JOIN B ON A.key = B.key
    WHERE A.key IS NULL

     

    ** 내부 조인(inner join)

    SELECT * FROM A
    INNER JOIN B ON A.key = B.key

     

    ** 전체 조인(full outer join)

    SELECT * FROM A
    FULL OUTER JOIN B ON A.key = B.key

     

    ** 전체 조인 변형(full outer join 변형)

    SELECT * FROM A
    FULL OUTER JOIN B ON A.key = B.key
    WHERE A.key IS NULL OR B.key IS NULL

    # 제약조건(constraint)

    ** NOT NULL - 칼럼이 NULL 값을 가질 수 없도록 보장

    ** UNIQUE - 칼럼의 모든 값이 서로 다른 값을 가지도록 보장

    ** PRIMARY KEY  - NOT NULL과 UNIQUE의 조합, 기본키

    ** FOREIGN KEY - 하나의 테이블과 다른 테이블을 연결, 외래 키 

    ** DEFAULT - 해당 필드의 기본값을 설정

    ** AUTO INCREMENT - 칼럼이 생성될 때 자동생성 


      참고 자료

    https://dev.mysql.com/doc/refman/8.0/en/atomic-ddl.html

    MySQL :: MySQL 8.0 Reference Manual :: 13.1.1 Atomic Data Definition Statement Support

    13.1.1 Atomic Data Definition Statement Support MySQL 8.0 supports atomic Data Definition Language (DDL) statements. This feature is referred to as atomic DDL. An atomic DDL statement combines the data dictionary updates, storage engine operations, and bi

    dev.mysql.com

    http://www.tcpschool.com/mysql/intro

    코딩교육 티씨피스쿨

    4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

    tcpschool.com

    https://tcpschool.com/mysql/mysql_constraint_notNull

    코딩교육 티씨피스쿨

    4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

    tcpschool.com

     

Designed by Tistory.