MySQL 26

MySQL 계정 생성 및 권한

MySQL 에서 새 사용자 계정을 생성하고, 해당 사용자에게 데이터베이스 권한을 부여하는 과정은 데이터베이스 보안과 관리의 중요한 부분이다.이러한 과정을 통해 각 사용자가 접근할 수 있는 데이터를 통제하고, 시스템을 보자 안전하게 유지할 수 있다. 계정 생성 및 권한 부여 방법사용자 생성 : 먼저, CREATE USER 명령을 사용하여 사용자를 생성하고 비밀번호를 설정한다.권한 부여 : 사용자 생성 후, GRANT 명령을 사용하여 해당 사용자에게 권한을 부여한다. 권한 부여의 범위 전체 권한 부여 : 사용자에게 모든 데이터베이스의 모든 테이블에 대한 모든 권한을 부여한다. 이는 매우 강력한 권한이며, 주로 데이터베이스 관리자에게 부여된다.특정 데이터베이스에 대한 권한 부여 : 사용자에게 특정 데이터베이스..

MySQL 2024.06.10

SQL 쿼리의 일반적인 처리 순서

1. FROM 절가장 먼저 실행되며, 쿼리에서 참조하는 테이블 또는 뷰를 식별한다. 여러 테이블이 조인되는 경우, 이 절에서 어떻게 테이블들이 결합되는지 정의된다.2. ON 절조인이 수행될 때 사용된다. FROM 절에서 정의된 테이블들이 결합하는 방식을 구체적으로 명시한다. 이 절은 조인 조건을 평가하여 조인할 행을 결정한다.3. JOIN여러 테이블을 조인할 때 사용되며, ON 절 다음에 평가된다. 지정된 조인 조건에 따라 행들이 결합된다.4. WHERE 절FROM 절에서 생성된 결과 테이블에 대해 필터링 조건을 적용한다. 이 조건은 개별 행에 대해 평가되며, 조건을 만족하는 행만이 다음 단계로 전달된다.5. GROUP BY 절조건을 만족하는 행들을 그룹화 한다. 이 절은 특정 열 또는 열의 조합을 기준..

MySQL 2024.06.10

Group By 와 having 절

Group By 절SQL에서 특정 열의 값에 따라 행 집합을 요약된 그룹으로 나누는 데 사용된다.이 절은 주로 집계 함수 ( 예 : SUM, AVG, MAX, MIN, COUNT 등 ) 와 함께 사용되어, 각 그룹에 대한 요약 정보를 제공한다.GROUP BY 절은 데이터들을 원하는 그룹으로 나눌 수 있다.나누고자 하는 그룹의 컬럼명을 SELECT 절과 GROUP BY 절 뒤에 추가하면 된다.집계 함수와 함께 사용되는 GROUP BY 절에 추가하지 않아도 된다. HAVING 절HAVING 절은 GROUP BY 절과 함께 사용되며, 특정 조건을 만족하는 그룹만을 필터링하는 데 사용된다.WHERE 절이 개별 행에 대해 조건을 적용하는 반면, HAVING 절은 그룹화된 결과에 대한 조건을 적용한다.집계 함수의 ..

MySQL 2024.06.10

MySQL Function

ANSI SQL 표준 ANSI (미국국가표준협회, American National Standards Institute) 표준 은 미국에서 광범위한 산업과 기술 분야에 대해 자발적인 표준을 설정하는 기관이다.특히 컴퓨터와 데이터베이스 분야에서 ANSI는 데이터베이스 관리 시스템(DBMS)의 호환성, 일관성, 이식성을 보장하기 위한 표준 SQL(Structured Query Language)을 정의하고 유지 관리한다.ANSI SQL 표준의 주요 목표· 호환성 : 다양한 데이터베이스 시스템 간의 호환성을 보장하여 사용자가 한 시스템에서 다른 시스템으로 쉽게 전환할 수 있도록 한다.· 일관성 : SQL 쿼리 언어의 문법과 기능에 대해 일관된 표준을 제공함으로써, 개발자와 사용자가 다양한 시스템에서 일관된 경험..

MySQL 2024.06.07

테이블 복사 및 데이터 추가

데이터베이스에서 한 테이블의 구조나 데이터를 다른 테이블로 복사하는 작업은 여러 상황에서 유용하게 사용된다. 테이블의 구조만을 복사하거나, 구조와 데이터 모두를 복사할 수 있다. 1. 테이블 구조만 복사하기 테이블의 구조만을 새로운 테이블로 복사하고자 할 때, 데이터는 복사하지 않고 구조만 생성한다. -- 테이블 복사 (구조만 복사)-- CREATE TABLE 새_테이블-- AS SELECT * FROM 기존_테이블 WHERE 1=0;create table dept_emp_copyas select * from dept_empwhere 1 = 0; -- 조건절 때문에 데이터는 복사되지 않음.select * from dept_emp_copy;desc dept_emp_copy; 이 쿼리는 기존 테이블의 모든 ..

MySQL 2024.06.07

MySQL JOIN

조인(Join)데이터베이스에서 조인(Join)은 두 개 이상의 테이블에서 관련된 데이터를 결합해 새로운 결과를 생성할 때 사용하는 중요한 연산 Join이 필요한 이유데이터베이스에서 정보는 중복을 최소화하고 효율적으로 저장하기 위해 여러 테이블에 분산되어 저장.실제로 정보를 사용할 때는 여러 테이블에 흩어져 있는 데이터를 통합해야 할 필요가 발생한다.예를 들면, 어떤 학생이 어떤 수업을 듣고 있는지 알고 싶을 때 '학생' 테이블과 '수업' 테이블을 결합해야만 필요한 정보를 얻을 수 있다.복잡한 질의를 수행하기 위해서는 종종 여러 테이블의 데이터를 결합하고 비교해야 한다.조인을 사용하면 이러한 요구사항을 효과적으로 처리할 수 있다. 조인은 데이터베이스에서 분산된 정보를 효과적으로 통합하여 사용자가 원하는 특..

MySQL 2024.06.07

관계 차수

관계 차수(Relation Degree)는 관계형 데이터베이스에서 사용되는 용어로 테이블 간의 관계를 설명할 때는 '일대일', '일대다', '다대다' 같은 관계를 설명하는 용어이다. 테이블 차수 - 테이블 내의 컬럼 수를 나타냄관계 차수 - 두 테이블 간의 관계의 복잡성 (예: 일대일, 일대다, 다대다)을 나타냄 테이블 간의 관계를 정의하는 네 가지 유형1 : 1 관계 (One-to-One Relationship)ㆍ 두 개의 테이블에서 각 각 하나의 레코드가 서로 직접 매칭되는 관계ㆍ 이 관계는 보통 서로 다른 테이블의 기본키와 외래키를 사용하여 연결한다.ㆍ 예 : 사용자 테이블과 사용자 상세 정보 테이블, 여기서 각 사용자는 상세 정보와 정확히 하나씩 연결된다.ㆍ 예 : 사람과 여권, 사람을 나타내는 ..

MySQL 2024.06.07

인덱스(index)

인덱스(index) 데이터베이스 테이블의 검색 성능을 향상시키기 위해 사용되는 데이터구조이다.인덱스는 특정 열(Column)에 대한 정렬된 데이터의 집합으로, 데이터베이스 엔진이 더 빠르게 데이터를 찾을 수 있도록 도와준다.인덱스는 일종의 색인이며, 테이블의 특정 열에 대한 빠른 검색을 가능하게 한다.인덱스를 사용하면 데이터베이스 엔진은 테이블을 전체적으로 스캔하는 것보다 더 빠르게 특정 조건에 맞는 행을 찾을 수 있다.  인덱스 선언하는 방법-- 테이블 설계 시, 인덱스 제약을 추가하는 방법create table student2( id int primary key, name varchar(50) not null, grade int not null, major varchar(50), ..

MySQL 2024.06.05

UNIQUE 제약

UNIQUE key데이터베이스 테이블의 열(Column)에 적용되는 제약 조건이다.이를 통해 해당 열의 값들이 고유(unique)하다는 것을 보장한다. 즉, 중복된 값이 허용되지 않는다.또한 UNIQUE 제약 조건은 데이터베이스에서 인덱스(index)를 생성할 때도 사용된다.UNIQUE 제약 조건이 설정된 열은 인덱스를 생성할 때 자동으로 인덱스로 지정되어 검색 속도를 높일 수 있다.  UNIQUE Key의 특징고유한 값 보장 : 특정 열에 UNIQRE key가 적용되면 해당 열에 있는 모든 값들이 고유해야 한다. 즉, 중복된 값을 허용하지 않는다.NULL 값 허용 : 기본적으로 UNIQUE key는 NULL 값을 허용한다. 즉, 해당 열에는 NULL값이 최대 하나까지만 허용된다. (MySQL에서는 하나..

MySQL 2024.06.04

DELETE 구문과 조건절

DELETE구문은 특정 테이블에서 특정 조건을 만족하는 행을 삭제하는데 사용된다.DELETE 구문을 사용할 때는 삭제할 행을 신중하게 선택해야 한다.DELETE 구문을 사용하여 데이터를 삭제하면 복구하기 어렵거나 불가능할 수 있다.따라서, DELELTE 구문을 사용하기 전 데이터를 백업하거나, 테스트용 데이터를 사용하거나, WHERE 절을 사용하여 조건을 만족하는 행을 선택하는데 주의해야 한다. -- member 테이블에서 id가 3인 행 삭제DELETE FROM member WHERE id = 3;-- member 테이블에서 gender가 'F'이고 age가 20보다 큰 행 삭제DELETE FROM member WHERE gender = 'F' AND age > 20; CREATE TABLE produ..

MySQL 2024.05.31