Daniel: The Dev Story
Daniel: The Dev Story
    • 홈
  • 분류 전체보기
    • 프로젝트
    • BE
      • --------Java--------
      • Java
      • Basic
      • Spring
      • --------JS--------
      • JavaScript
      • TypeScript
      • NodeJS
      • Express
      • Basics
      • --------Common--------
      • Error
    • FE
      • React
    • DB
      • mySQL
    • Algorithm
      • Concept
      • BackJun
      • Data Structure
      • Sort
    • Git
    • Math
    • Book
    • Private
      • Database
      • Tip
  • 글쓰기
  • 관리자
  • myoskin

      [SQL] Foreign Key(외래키)에 대해 이해하기1

      Foreign key(외래키)란? Foreign key는 한 테이블의 컬럼 중에서 다른 테이블의 행(row)을 고유하게 식별할 수 있는 키를 말한다. Foreign Key를 사용하는 이유는? 데이터의 무결성 보장: 외래 키(Foreign Key)를 사용하면 관계를 맺고 있는 두 테이블에서 데이터의 일관성을 유지할 수 있다. 예를 들어, 주문(order) 테이블과 상품(product) 테이블이 있을 때, 주문 테이블에서는 존재하지 않는 상품을 주문하는 것을 막을 수 있다. 중복 데이터 제거: 동일한 정보를 여러 테이블에 중복해서 저장하는 것을 방지할 수 있다. 이는 저장 공간을 절약하고, 데이터의 변경이 필 요할 때 일관성을 유지하는 데 도움이 된다. Foreign Key 설정하기 테이블 설정에서 하단에 ..

      BE/Basics 2023.05.24 1

      [mySQL] 테이블 이름 변경, 복사, 삭제하기

      테이블 이름 변경하기 테이블 이름 수정, table rename RENAME TABLE 현재_테이블_이름 TO 변경할_테이블_이름 기본구조 RENAME TABLE 현재_테이블_이름 TO 변경할_테이블_이름; 테이블 복사하기 copy table, table copy CREATE TABLE을 활용해 테이블을 복사할 수 있다. CREATE TABLE 테이블_이름 AS SELECT * FROM 복사할_테이블_이름; 위 SQL문은 똑같은 행과 열을 그대로 가져와서 새로 만든다는 뜻이다. 더보기: 테이블 복사의 두 가지 방법, 그 차이점 더보기 다음과 같이 복사를 할 때는 FK의 관계는 복사되지 않지만, CREATE TABLE A SELECT * FROM B; LIKE를 사용하면 FK나 CONSTRAINT 역시 복..

      DB/mySQL 2023.05.22

      [mySQL] CONSTRAINT, 특정 컬럼에 제약사항 걸기

      CONSTRAINT: 제약사항 테이블에 이상한 row가 추가되는 것을 막아준다. 제약사항 추가 ADD CONSTRAINT 제약사항 이름 CHECK 제약내용으로 제약사항을 추가할 수 있다. 기본구조 ALTER TABLE 테이블_이름 ADD CONSTRAINT 제약사항_이름 CHECK (제약내용); (예시 SQL문) users 테이블의 registraion_number 컬럼은 10000000 미만이어야 하고, 이 제약사항의 이름은 st_rule이다. ALTER TABLE users ADD CONSTRAINT st_rule CHECK (registration_number < 10000000); 제약사항 제거 DROP CONSTRAINT 제약사항_이름 으로 제거 가능하다. 기본구조 ALTER TABLE user..

      DB/mySQL 2023.05.22

      [mySQL] 기본값(Default value) 설정하기

      Default Value(기본값)을 설정하는 이유 NOT NULL 설정을 하고, Default Value가 없으면 row를 추가할 때 에러가 발생한다. Default Value가 있으면 에러가 발생하지 않음 기본값(default value) 설정하기 MODIFY는 특정 컬럼의 데이터 타입, 속성, 기본값(디폴트 값) 등을 설정할 수 있다. 기본구조 ALTER TABLE 테이블명 MODIFY 컬럼명 변경할_데이터_타입 NOT NULL DEFAULT 값; 필요한 설정을 작성한 뒤, DEFAULT 101; 이라고 작성하면 101이 이 컬럼의 기본값이 되는거다. 기본값 활용 예시 DEFAULT CURRENT_TIMESTAMP: 이 설정은 해당 필드에 아무런 값이 주어지지 않았을 때 현재시간을 기본 값으로 설정한..

      DB/mySQL 2023.05.21

      [mySQL] 데이터베이스 테이블(Table)에 데이터 추가하기

      새로운 row 추가 INSERT INTO (, ,...,...) VALUES (, ,...,...); INSERT INTO 테이블_이름 (컬럼이름, 컬럼이름, 컬럼이름, 컬럼이름,...) VALUES ('값1', '값2', '값3', '값4'); (예시SQL문) students 테이블에 id, name, grade, email 컬럼에 추가할 값들을 설정했다. INSERT INTO students (id, name, grade, email) VALUES (1, 'John Doe', '3rd', 'johndoe@example.com'); 실행하면 새로운 row가 생성된다. 여러 개의 row 추가 INSERT INTO students (id, name, grade, email) VALUES (2, 'Jane..

      DB/mySQL 2023.05.20

      [mySQL] 서브쿼리 중첩의 문제점과 뷰(view) 이해하기

      서브쿼리 이해하기 뷰(view): 가상테이블, 데이터베이스의 여러 테이블에서 얻은 정보를 하나의 테이블처럼 보여주는 도구이다. 복잡한 쿼리를 뷰로 만들어 놓고 다른 테이블에서 그 뷰를 마치 테이블 처럼 사용할 수 있다. 아래 SQL문은 '고객'과 '주문' 테이블이 있고, 고객별로 총 주문 금액을 알게 해 준다. SELECT customers.id, customers.name, SUM(orders.amount) as total_order_amount FROM customers INNER JOIN orders ON customers.id = orders.customer_id GROUP BY customers.id; 이 쿼리를 customer_orders라는 뷰로 아래와 같이 만들 수 있다. ( // 는 주석..

      DB/mySQL 2023.05.20

      [mySQL] 서브쿼리를 이용한 데이터 분석

      command + f 혹은 Ctrl + f를 활용하여 검색, 또는 블로그 하단 검색 Input 활용해 검색 목차 SELECT 절에서 사용되는 서브쿼리 WHERE 절에서 사용되는 서브쿼리 FROM 절에서 사용되는 서브쿼리 서브쿼리를 나누는 또다른 기준, 상관 서브쿼리와 비상관 서브쿼리 서브쿼리란 무엇인가? (이해하기) SELECT 절에 사용된 서브쿼리(스칼라 서브쿼리) - 서브쿼리가 리턴하는 값이 하나의 column 하나의 row 예를 들어, 우리가 학생들의 시험 점수를 가지고 있고, 각 학생의 점수가 전체 평균 점수와 얼마나 차이가 나는지 알고 싶다면 다음과 같이 작성이 가능하다. SELECT student_name, score, (SELECT AVG(score) FROM scores) - score A..

      DB/mySQL 2023.05.19

      [mySQL] 나를 위한 mySQL Workbench 온라인 사전

      Database 추가하기 query 창: CREATE DATABASE 테이블 생성 1. SQL문으로 생성하기 2. .csv 파일로 추가하기 데이터타입(Datatype) TEXT: 문자(string): 제한 없음 VARCHAR(최대 문자 수): 문자열: 최대 길이 설정 가능 INT: 정수(Number. Integer의 약자) DOUBLE: 실수(Number) DATE: 날짜(date) DATETIME: 날짜와 시간(yyyy-mm-dd hh:mm:ss) Primary Key 설정 (실무에선 '기본키'라고도 함) query 창에 PK 네모박스 체크, NN(Not Null)은 자동으로 체크됨. 더보기: Primary Key의 종류 2가지 더보기 Primary Key(기본키)의 종류 2가지 1. Natural K..

      DB/mySQL 2023.05.17

      [Node] mySQL과 Sequelize를 이용한 데이터베이스 설정

      패키지 설치(mysql2, sequelize, sequelize-cli) 프로젝트의 이상적인 구조를 만들기 위한 디렉토리 및 파일 생성 DB 정보 설정 데이터베이스 생성 테이블, 모델 생성 데이터베이스에 테이블 생성 ⛔️ 이 글 보다는 다음 글을 참고하는 것을 권장합니다. [TypeScript] 타입스크립트로 sequelize를 활용하여 데이터베이스 연결 준비사항: express, @types/express, mysql2, sequelize, sequelize-cli, dotenv 시작하기 sequelize init으로 config, migrations, models, seeders디렉토리를 생성한다. 이 디렉토리들을 src 디렉토리 안에 넣어도 괜찮고, 밖에 developer-holychan.tist..

      BE/NodeJS 2023.05.14

    1
    Daniel: The Dev Story

    찾기

    공지

    최근 글

    인기글

    최근 댓글

    캘린더

      5 / 2025
      일 월 화 수 목 금 토
      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 31

    글 보관함

    태그

      BOJ백준코딩자바AlgorithmjavagitMYSQL타입스크립트알고리즘

    즐겨찾기

    방문자 수

    • Today
    • Yesterday
    • Total
    myoskin

    티스토리툴바