프로그래밍 언어
-
19일차 - INDEX, IN, EXISTS, VIEW프로그래밍 언어/데이터베이스(SQL, MARIADB) 2024. 2. 19. 11:26
INDEX ■ 인덱스는 책의 색인처럼 데이터베이스에서 검색을 빠르게 해주기 위한 목록이다 ■ PK 나 FK 가 이미 색인되어있는지 걸려있는지 확인하고, 인덱스를 추가하자 ■ 데이터가 많을 경우, JOIN 이 많이 사용되는 경우 □ 데이터가 적을 경우, 삽입, 갱신, 삭제가 빈번하게 일어나는 경우 불필요하다 /* index */ -- 1) 고유 인덱스(UNIQUE INDEX) -- ★ PK 나 UNIQUE KEY 를 걸어주면 자동으로 생성되는 인덱스이다 -- 인덱스 생성시 중복 데이터를 삽입/추가하면 에러를 발생시킨다 -- CREATE UNIQUE INDEX [인덱스의 이름] ON [테이블의 이름](컬럼) create unique index emp_ename_idx on emp(ename); -- SQL ..
-
18일차 - 서브쿼리, 조인, 집합프로그래밍 언어/데이터베이스(SQL, MARIADB) 2024. 2. 16. 13:31
서브쿼리 서브쿼리는 쿼리 안의 쿼리라는 뜻이다 사전에 추출된 내용에서 재 검색하거나, 검색된 내용을 가상의 컬럼을 만들어 추가할 수 있다 서브쿼리를 사용하는 이유 ■ 추출된 결과에서 재 검색할시 유용하다 ■ 검색된 내용을 가상의 컬럼으로 한눈에 알기 쉽게 확인할 수 있다 □ 서브쿼리가 길어지고, 많아질수록 코드가 복잡해져 어떤 결과를 조회하는지 알기 어려워진다 서브쿼리 종류 ■ 단일 행 서브쿼리, 결과는 반드시 한행으로만 조회해야한다 안그러면 오류 발생 ■ 다중 행 서브쿼리, IN, ALL 등 으로 여러 개의 행을 조건절을 사용할 수 있다 서브쿼리 위치 ■ SELECT 문에서 조회되는 컬럼에 위치하면, 새로운 컬럼으로 조회된다 ■ 참조하려는 테이블에 위치하면, 별칭을 붙여주면 테이블처럼 조회되어 조회된다..
-
복습 3일차 - 객체지향과 클래스프로그래밍 언어/자바(JAVA) 2024. 2. 15. 20:24
객체 지향 프로그래밍 vs 절차 지향 프로그래밍 객체 지향의 경우 객체의 설계와 관계를 중시한다. 반면 절차 지향의 경우 데이터와 기능이 분리되어 있고, 프로그램이 어떻게 작동하는지 그 순서에 초점을 맞춘다. 둘의 중요한 차이 절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다. 반면 객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 '객체' 안에 함께 포함되어 있다. 객체란? 세상의 모든 사물을 단순하게 추상화해보면 속성(데이터)과 기능(메소드) 딱 2가지로 설명할 수 있다. 자동차 속성: 차량 색상, 현재 속도 기능: 엑셀, 브레이크, 문 열기, 문 닫기 객체 지향 프로그래밍은 모든 사물을 속성과 기능을 가진 객체로 생각하는 것이다. 객체에는 속성과 기능만 존재한다. ..
-
복습 2일차 - 기본, 참조 자료형프로그래밍 언어/자바(JAVA) 2024. 2. 15. 19:38
대원칙: 자바는 항상 변수의 값을 복사해서 대입한다. 자바의 기초적인 규칙 자바에서 변수에 값을 대입하는 것은 변수에 들어 있는 값을 복사해서 대입하는 것이다. 기본형, 참조형 모두 항상 변수에 있는 값을 복사해서 대입한다. 기본형이면 변수에 들어 있는 실제 사용하는 값을 복사해서 대입하고, 참조형이면 변수에 들어 있는 참조값을 복사해서 대입한다. 기본형 vs 참조형 - 기본 상식 기본형 변수는 값을 직접 저장하지만, 참조형 변수는 참조(주소)를 저장한다. 기본형 vs 참조형 - 대입 기본형과 참조형 모두 대입시 변수 안에 있는 값을 읽고 복사해서 전달한다. ★ 기본형은 사용하는 값을 복사해서 전달하고, 참조형은 참조값을 복사해서 전달한다!!!! 헷갈린다면 이 글을 읽자 : 이것이 중요하다. 실제 인스턴..
-
17일차 - 컬럼의 제약조건프로그래밍 언어/데이터베이스(SQL, MARIADB) 2024. 2. 15. 17:37
제약조건(DDL) ■ 컬럼에 데이터를 넣을 때 특정한 조건을 만족시켜야 넣을 수 있다 1) PRIMARY KEY ■ A) UNIQUE : 컬럼안의 데이터의 중복을 허용하지 않는다 ■ B) NOT NULL : 데이터를 입력하지 않고 비워둘 수 없다 ■ C) 테이블 종속적이다 한 테이블에 하나의 데이터만 존재한다 ★ 예를 들어 이름이 동일한 사람에게 이름을 부르면 둘다 대답할 것이다. 이렇게 되면 두명은 누구를 부른것인지 헷갈린다 두명에게 고유번호를 부여하고 똑같은 번호를 다른 사람에게 주지 않고 변경하지 않는다면, 번호를 부르면 그에 해당하는 사람이 대답을 할 것이다 /* 제약 조건 */ -- 1) PRIMARY KEY (기본키 제약조건) -- a) 새로운 테이블을 생성할때 조건을 추가한다 use mydb..
-
16일차 - 트랜잭션과 관련된 명령문프로그래밍 언어/데이터베이스(SQL, MARIADB) 2024. 2. 15. 16:06
트랜잭션 ■ 트렌젝션은 데이터베이스에서 사용되는 쪼갤 수 없는 업무처리 단위이다 ■ 하나의 작업 내부의 과정이 잘못되면 전부 취소 되어야한다 트랜잭션의 이해 은행의 출금과 송금의 트랜젝션 A 의 계좌의 잔액을 확인한다 잔액에서 백만원을 뺀다 B 의 계좌를 확인한다 -> 오류 발생시 rollback B 의 계좌 잔액을 확인한다 잔액에 백만원을 더한다 트랜잭션과 관련된 명령문 ■ commit 과 rollback 은 데이터(DML)에 한정 된다 ■ DCL, DDL 은 트랜젝션이 해당되지 않고 절대로 되돌릴 수 없다 Rollback ■ 돌돌 말아서 뒤로 간다 ■ 트랜잭션 시작 이전의 상태로 되돌리는 것 Commit ■ 트랜잭션 도중 오류가 발생하지 않았다면 데이터를 데이터베이스에 반영시키는 것 AutoCommi..
-
복습 1일차-(클래스)프로그래밍 언어/자바(JAVA) 2024. 2. 14. 18:21
클래스가 필요한 이유 만약 클래스가 없다면 변수나 배열로 데이터를 저장해야하는데 이는 사람이 유지보수하기에는 정말 힘들다 Case 1. 학생 정보를 변수로 저장한다 학생이 늘어날때마다 변수를 추가로 선언해야하고 출력하는 코드도 반복문으로 작성하기 힘들다 public static void main(String[] args) { String studentName1 = "학생1"; int studentAge1 = 15; int studentGrade1 = 90; String studentName2 = "학생2"; int studentAge2 = 16; int studentGrade2 = 80; System.out.println("이름 : " + studentName1 + " 나이 : " + studentAge..
-
14,15일차 - 데이터베이스 DDL, DCL, DML프로그래밍 언어/데이터베이스(SQL, MARIADB) 2024. 2. 13. 18:31
테이블의 구조 Column : 데이터를 저장하기 위한 필드 또는 속성이라고도 한다 Row : 하나의 테이블에 저장되는 값으로 튜플이라고도 한다 SQL 의 종류 ■ DDL (Data Defineition Language) : CREATE, ALTER, DROP, RENAME - 데이터베이스의 구조를 정의하는 언어이다 ■ DML (Data Manipulation Language) : INSERT, UPDATE, DELETE, SELECT - 테이블에서 데이터를 삽입, 수정, 삭제, 조회한다 ■ DCL (Data Control Language) : GRANT, REVOKE - 데이터베이스에서 사용자에게 권한을 부여하거나 회수한다 ■ TCL (Transaction Control Language) : COMMIT..