본문 바로가기

Language

(77)
[MySQL] 테이블 작성, 삭제, 변경 [SYNTAX] 테이블 작성 : CREATE TABLE 테이블명(열 정의 1, 열 정의 2,... ) 테이블 삭제 : DROP TABLE 테이블명 테이블 변경 : ALTER TABLE 테이블명 하부 명령 SELECT, INSERT, DELETE, UPDATE는 SQL 명령 중에서도 DML(데이터 조작하는 명령)로 분류된다. 위에 나열된 테이블 작성, 삭제, 변경하는 SYNTAX들은 DDL(데이터를 정의하는 명령)로 스키마 내의 객체를 관리할 때 사용한다. DDL은 모두 같은 문법을 사용한다. CREATE로 작성, DROP으로 삭제, ALTER로 변경할 수 있다. 테이블 작성 RDBMS에서 데이터베이스 상에 제일 먼저 만드는 객체 중 하나가 바로 테이블이다. 이때 CREATE TABLE 명령을 사용한다. ..
[MySQL] 데이터베이스 객체 데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말이다. 객체지향 프로그래밍의 '객체'와는 다른 데이터베이스 내의 객체라는 의미로 '데이터베이스 객체'라 부른다. 객체는 데이터베이스 내에 실체를 가지는 어떤 것을 말한다. 객체의 종류에 따라 데이터베이스에 저장되는 내용도 달라진다. SELECT나 INSERT 등은 클라이언트에서 객체를 조작하는 SQL 명령으로, 실체가 없기 때문에 객체라 부를 수 없다. 객체는 이름을 가지기 때문에 데이터베이스 내에 객체를 작성할 때에는 이름이 겹치지 않도록 해야 한다. 객체에 이름을 붙일 때 다음과 같은 제약사항이 있다. 기존 이름이나 예약어와 중복하지 않는다 숫자로 시작할 수 없다 언더스코어( _ ) 이외의 기호는 사용할 수 ..
[MySQL] 상관 서브쿼리 EXISTS [SYNTAX] EXISTS (SELECT 명령) EXISTS 술어를 사용하면 서브 쿼리가 반환하는 결괏값이 있는지를 조사할 수 있다. 예를 들어 서브쿼리를 사용해 검색할 때 '데이터가 존재하는지 아닌지' 판별하기 위해 조건 지정이 가능한데, 이 경우 EXISTS 술어를 사용해 조사할 수 있다. 위 두개의 테이블을 활용해서 sample552에 no열과 같은 값의 행이 있다면 '있음'으로, 없다면 '없음'으로 갱신한다. 없음의 경우, 행이 존재하지 않는 상태가 참이 되므로 이때는 NOT EXISTS를 사용한다. NOT을 붙이는 것으로 값을 부정할 수 있다. 상관 서브쿼리 서브 쿼리에는 명령 안에 중첩 구조로 된 SELECT 명령이 존재한다. update sample551 set a = '있음'..
[Java] 상속에서 클래스 생성과 형 변환 하위 클래스가 생성될 때는 상위 클래스의 생성자가 먼저 호출된다. 하위 클래스가 생성되는 과정 상속된 하위 클래스가 생성되는 과정을 다시 살펴보기 위해 Customer와 VIPCustomer 클래스에 생성자 출력문 추가하여 출력 결과를 확인해본다. [실습] 상속에서 클래스 생성 과정 (1) package inheritance; public class Customer { // 멤버 변수 protected int customerID; // 고객 아이디 protected String customerName; // 고객 이름 protected String customerGrade; // 고객 등급 int bonusPoint; // 보너스 포인트 double bonusRatio; // 적립 비율 // 디폴트 생성..
[MySQL] 서브쿼리 서브 쿼리는 SELECT 명령에 의한 데이터 질의로, 상부가 아닌 하부의 부수적인 질의를 의미한다. [SYNTAX] ( SELECT 명령 ) 서브 쿼리는 SQL 명령문 안에 지정하는 하부 SELECT 명령으로 괄호로 묶어 지정한다. 특히 서브 쿼리는 SQL 명령의 WHERE구에서 주로 사용된다. WHERE 구는 SELECT, DELETE, UPDATE 구에서 사용할 수 있는데 이들 중 어떤 명령에서든 서브 쿼리를 사용할 수 있다. DELETE의 WHERE구에서 서브 쿼리 사용하기 서브 쿼리를 사용해서 최솟값을 가지는 행을 삭제할 수 있지만, MySQL에서는 실행할 수 없다. 데이터를 추가하거나 갱신할 경우 동일한 테이블을 서브 쿼리에서 사용할 수 없도록 되어있기 때문이다. 에러를 발생하지 않고 실행하려면..
[Java] 상속이란? 객체 지향 프로그래밍의 중요한 특징 중 하나가 상속(inheritance)이다. B 클래스가 A 클래스를 상속받으면 B 클래스는 A 클래스의 멤버 변수와 메서드를 사용할 수 있다. 객체 지향 프로그램은 유지보수가 편하고 프로그램을 수정하거나 새로운 내용을 추가하는 것이 유연한데, 그 기반이 되는 기술이 바로 상속이다. 자바 문법으로 상속을 구현할 때는 extends 예약어를 사용한다. A가 가지고 있는 속성이나 기능을 추가로 확장하여 B 클래스를 구현한다는 뜻으로 사용하는 것이다. class B extends A { } 상속을 사용하여 고객 관리 프로그램 구현하기 👉[실습] Customer 클래스 구현하기 package inheritance; public class Customer { // 멤버 변수 p..
[MySQL] 그룹화 - GROUP BY [SYNTAX] SELECT * FROM 테이블명 GROUP BY 열 1, 열 2,... GROUP BY로 그룹화를 통해 집계 함수로 넘겨줄 집합을 그룹으로 나눌 수 있고, 집계 함수의 활용 범위를 넓힐 수 있다. GROUP BY구에서는 그룹화할 열을 지정한다. 물론 복수로도 지정이 가능하다. 위의 결과를 보면 DISTINCT를 지정했을 때와 같은 결과가 나온다. GROUP BY구에 열을 지정하여 그룹화하면 지정된 열의 값이 같은 행이 하나의 그룹으로 묶인다. 각 그룹으로 묶인 값들은 서로 동일하다. 즉, 결과적으로는 각각의 그룹 값이 반환되며, DISTINCT와 같이 중복을 제거하는 효과가 있다. GROUP BY 구를 지정하는 경우 집계 함수와 함께 사용하지 않으면 별 의미가 없다. HAVING 구로 ..
[Java] ArrayList 클래스 사용하기 배열을 사용하는 중에는 배열 길이를 변경할 수 없기 때문에 코드를 수정해야 하는데 코드를 수정하는 일은 상당히 번거롭다. 자바는 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 ArrayList를 제공한다. ArrayList 클래스는 객체 배열을 관리할 수 있는 멤버 변수와 메서드를 제공하므로 사용 방법만 알아두면 편리하게 사용할 수 있다. 메서드 설명 boolean add(E e) 요소 하나를 배열에 추가한다. E는 요소의 자료형을 의미한다. int size() 배열에 추가된 요소 전체 개수를 반환한다. E get(int index) index 위치에 있는 요소 값을 반환한다. E remove(int index) 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환한다. bool..