1. CAST- 문자열을 숫자형 정수로 변경CAST("20250413") # 20250413 2. 나이계산- 20250413 연도만 비교하기 위해 10000으로 나눠줌FLOOR( (CAST(REPLACE(CURRENT_DATE,'-','') AS UNSIGNED) - CAST(REPLACE(birthdate,'-','') AS UNSIGNED)) / 10000 ) as age 3. 값이 집합에 속하는지 검사할 때: INSELECT * FROM empWHERE deptno IN (10, 20, 30);4. 여러 값 중 하나라도 비교 조건 만족할 때 : ANYSELECT * FROM empWHERE salary 5. 집합 내 모든 값과 비교할 때 : ALLSELECT * FROM empWHERE..
1. 이상현상- 잘못된 데이터베이스 설계로 발생하는 오류- 삽입 이상: 데이터를 삽입할 때 불필요한 내용까지 삽입해야 하는 문제- 갱신 이상: 중복된 데이터 중 일부만 갱신되어 발생하는 문제- 삭제 이상: 어떤 데이터를 삭제할 때 다른 유용한 정보도 함께 삭제되는 문제 2. 함수 종속성- 어떤 속성 x(결정자)의 한 값이 다른 속성 y(종속자)에 속한 하나의 값에만 매핑되는 경우- 예: ID → 이름 1) 완전 함수 종속- 기본키를 구성하는 속성 모두가 결정자 역할을 하는 경우2) 부분 함수 종속: 2차 정규화 원인- 기본키를 구성하는 속성 중 일부가 결정자 역할을 하는 경우- 기본키가 복합키이거나 후보키가 결정자인 경우에 부분 함수 종속이 발생할 수 있다3) 이행 함수 종속: 3차 정규화 원인* 결정자..

1. 테이블 만들때 제약조건 설정하기-- borrow 테이블을 정의하세요.CREATE TABLE borrow( customer_number VARCHAR(10), rental_time DATETIME, rental_status ENUM('대여', '반납') NOT NULL, rental_location VARCHAR(20) NOT NULL, kickboard_id VARCHAR(10), CONSTRAINT borrow_pk PRIMARY KEY(customer_number,rental_time), # 기본키 2개 FOREIGN KEY (customer_number) REFERENCES customer (customer_number), customer테입블의 custo..

1. 리눅스 설치1) 리눅스에 mysql 설치# 패키지 리스트 업데이트sudo apt update# mysql 서버 설치sudo apt install mysql-server# mysql 상태 확인sudo systemctl status mysql# mysql 보안 설정sudo mysql_secure_installation# mysql 접속sudo mysql# root 계정/비밀번호 설정ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';FLUSH PRIVILEGES;# 로그인mysql -u root -p2) 윈도우 vscode에서 ubuntu에 설치된 mysql 접속하기- WSL2는 가상 네트워크로 동작해서, MySQL..
1. 데이터는?- 현실 세계에서 수집된 단순한 사실과 값들을 모아 놓은 것 2. 정보란?- 데이터를 특정 목적에의해 해석하거나 가공한 형태 ※ 데이터를 잘 가공해서 => 정보를 만드는것 3. 데이터베이스란?- 데이터가 모여있는것, 한 조직 안에서 여러 사용자와 응용 프로그램이 공동으로 사용하는 데이터들을 통합하여 저장하고운영하는 데이터 4. 파일처리시스템의 한계- 데이터의 구조가 바뀌면 응용프로그램의 구조도 바뀌어야 하기 때문에 응용 프로그램별로 데이터를 생성할 수 있기 때문에 데이터가 중복될 수 있다- 데이터의 무결성을 지킬 수 없다 5. 데이터베이스의 구성요소- 행(row): 칸(형태), record- 튜플: 항에 값이 있을 때- 열(column): 고유의 성질을 갖고 있는 것- 속성: 데이터의 특성..
장소를 저장할 때, 기존에 저장되어 있는 장소면 장소의 id를 반환하고, 등록된 장소가 아니라면 새로 생성하고 id를 반환하고 싶었다. 하지만 단순히 조회 후 저장을 구현하면, 매번 2번의 쿼리가 발생할 수 있고, 동시성 문제가 발생할 수 있는데, Unique 제약조건과 UPSERT 구문을 사용하면 단일 쿼리를 구성하고 DB 자체의 제약조건을 활용해 데이터의 정합성을 보장할 수 있다. 1. 조회 후 저장 방식SELECT id FROM places WHERE name = ? AND address = ?IF NOT EXISTS -> INSERT INTO places ... 2. Unique 제약조건 + UPSERT 방식- INSERT 시도 후, 중복이면 UPDATE를 실행 : 두 작업이 원자적으로 실행된다...

1. mysql 접속- cmd창 > mysql 접속> 비밀번호 입력* 환경 변수에 path등록> C:\Program Files\MySQL\MySQL Server 8.0\bin을 한 번만 해주면 매번 cmd에서 해당 경로로 이동할 필요 없이 바로 mysql 실행이 가능하다! # 파일 경로로 이동 cd C:\Program Files\MySQL\MySQL Server 8.0\bin # mysql 실행 mysql -u root -p 2. 외부에서 연결할 수 있게 설정- '%'는 모든 사람 접근 가능, 로컬만 하고 싶다면 localhost, 특정 아이피 설정도 가능CREATE USER 'username'@'%' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO..
1. 정규화 : 중복 없애기- 중복 시 생기는 문제: 이상현상- 왜 해야할까? 데이터의 무결성을 지키기 위해 2. DB 설계- 디자인 보고 기능별로 저장해야하는 데이터 파악하기(UI가 나오기 전이라면, 요구사항 정의서를 보고 파악)- 그룹핑해서 분류하기 (상위개념 찾기)[예시] - 아이디, 패스워드, 이름, 이메일 : 사용자- 게시글 제목, 게시글 내용, 게시글 생성 시간 : 게시글- 6가지 규칙에 의해 테이블(엔티티) 분리시키기 [ 규칙1. 한칸에는 한가지 정보만(제1정규형) ]- 여러 정보가 들어갈 경우 데이터를 추출하고 또 가공해야해서 실수를 할 수 있다.※ 한가지 정보: 서비스에서 데이터의 사용 방식에 따라 다르다 (성, 이름이 따로 필요한 경우 따로 저장) [잘못된 예] 이메일 칸에 2가지 정보..
- Total
- Today
- Yesterday
- 갓생
- 아침
- 오블완
- 습관
- IH
- Python
- 다이어트
- 경제
- 스크랩
- 뉴스
- 영어회화
- 기초
- 티스토리챌린지
- 아침운동
- 운동
- llm
- 프로그래머스
- ChatGPT
- 줄넘기
- Ai
- opic
- 루틴
- 빅데이터 분석기사
- SQL
- 오픽
- 미라클모닝
- 실기
- C언어
- 고득점 Kit
- 30분
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |