본문 바로가기
728x90
반응형

mysql8

[MYSQL / Database] Join 조인 연산 조인 join A = {1,2,3,4} B = {3,4,5,6,7} => 결과 = { ? } - JOIN은 데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현해 것. - 가장 많이 사용하는 조인은 inner join(☆) > outer join(☆) > self join > cross join > natural join 이다. [ JOIN 예제 테이블] INNER JOIN : A 와 B의 교집합 - 조인하는 테이블의 ON 절의 조건이 일치하는 결과만 출력 - inner join은 EQUI join 이라고도 하고, 그냥 join 이라고도 하며, 등가 조인 이라고도 표현할 수 있습니다. -JOIN 만 적었을 경우 기본값으로 INNER JOIN 이 됩니다. A = .. 2023. 4. 18.
[MYSQL /Database] Mysql 잠금(lock)- Read lock, Write lock,dead lock Mysql 잠금 - SHARED LOCK(S) = READ . TRANSACTION 1에서(S)LOCK을 얻은 상태에서 TRANSACTION 2에서(S)LOCK을 요청하는 경우 [허용] 된다. . TRANSACTION 1에서(S)LOCK을 얻은 상태에서 TRANSACTION 2에서(X)LOCK을 요청하는 경우 [거부] 된다. - EXCLUSIVE LOCK(X) = WRITE . TRANSACTION 1에서(X)LOCK을 얻은 상태에서 TRANSACTION 2에서(S)LOCK을 요청하는 경우 [거부] 된다. . TRANSACTION 1에서(X)LOCK을 얻은 상태에서 TRANSACTION 2에서(X)LOCK을 요청하는 경우 [거부] 된다. /연습용 데이터베이스 생성/ create database db02;.. 2023. 4. 17.
[ MYSQL / Database] READ UNCOMMITTED, COMMITTED, REPEATABLE READ READ UNCOMMITTED - READ UNCOMMITTED 수준에서는 트랜잭션에서의 변경내용이 COMMIT이나 ROLLBACK 여부에 상관없이 다른 트랜잭션에서 보여진다. 그리고 이러한 현상때문에 DIRTY READ가 발생한다. - 더티 리드 현상은 데이터가 나타났다가 사라졌다가 하는 현상을 초래하므로 애플리케이션 개발자와 사용자를 상당히 혼랍스럽게 만든다. /실습용 데이터 베이스 생성/ drop database db01; create database db01; use db01; create table t1(id int); create table t2(id int); create user user1@'%' identified by '1234'; grant all privileges on DB01.*.. 2023. 4. 17.
[MYSQL / Database] 프로시저 (Procedure) 프로시저(PROCEDURE) - 쿼리문의 집합 - 프로그래밍 할 때 우리가 만드는 함수와 거의 비슷하다. - 반환값이 없는 함수 변수 사용 - 무조건 변수명 앞에 @를 붙여줘야 함 set @my = 1; 또는 set @my := 1 - 프로시저, 사용자 정의 함수 만들때 변수 선언 많이 사용함 프로시저 특징 - 보안을 강화할 수 있다.(뷰와 같음) - 유지보수가 편하다. - 프로시저 호출시 처음 1회 컴파일 이후 메모리에 로딩되어서 성능 향상이 있다. - 긴 수십줄의 쿼리 문자열을 생성할 필요없이 프로시저 이름만 호출 프로시저 생성 /제거 더보기 DROP DATABASE IF EXISTS sqldb; -- 만약 sqldb가 존재하면 우선 삭제한다. CREATE DATABASE sqldb; USE sqld.. 2023. 4. 13.
[MYSQL / Database ] 사용자 권한 실습해보기 - REVOKE MySQL서버:192.168.1.X, Host'PC:클라이언트:192.168.1.1 - MySQL서버 SQL> create database db01; SQL> use db01; SQL> create table t1(id int); SQL> insert into t1 values(1); SQL> insert into t1 values(2); SQL> create database db02; SQL> use db02; SQL> create table t2(id int); SQL> insert into t2 values(3); SQL> insert into t2 values(4); SQL> select * from t2; SQL> create user user1@'%' identified by '1'; SQL>.. 2023. 4. 12.
[MYSQL / Database ] 사용자 조회, 생성, 제거 ,권한 부여 MySQL 사용자 조회 use mysql; -- mysql 스키마 선택 select user,host from user ; -- 사용자 목록 조회 사용자 생성 CREATE USER '사용자ID'@'HOST' IDENTIFIED BY '비밀번호'; flush privieleges; => 적용시켜줌 #내부 접근 허용하는 사용자 추가 CREATE USER '사용자ID'@'LOCALHOST' IDENTIFIED BY '비밀번호'; #외부접근 허용하는 사용자 추가 CREATE USER '사용자ID'@'%' IDENTIFIED BY '비밀번호'; #특정 IP만 접근을 허용하는 사용자 추가 CREATE USER '사용자ID'@'특정 IP주소' IDENTIFIED BY '비밀번호'; #특정 IP대역을 허용하는 사용자 .. 2023. 4. 11.
[MYSQL / Database] DML 명령어(INSERT,UPDATE,DELETE,SELECT) DML (Data Manipulation Language) 데이터베이스에 있는 데이터를 조회하거나 검색하기 위한 명령어 INSERT : 특정 테이블에 데이터를 신규로 삽입할때 UPDATE : 특정 테이블에 데이터의 전체, 또는 일부를 갱신할때 DELETE : 특정 테이블에 데이터의 전체, 또는 일부를 삭제할때 SELECT : 특정 테이블에 데이터의 전체, 또는 일부를 획득할때 INSERT INSERT INTO 테이블명 ( 컬럼1, 컬럼2, 컬럼3 ....) VALUES ( 값1, 값2, 값3....)' INSERT INTO 테이블명 VALUES( 값1, 값2, 값3,,,) 다수 추가 INSERT INTO [TABLE NAME] VALUES (값1-1, 값1-2, 값 1-3,,,) (값2-1, 값2-2, .. 2023. 4. 10.
[Window Database] Database 란? Database SQL이란 데이터베이스의 언어입니다. 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 언어 입니다. 조금 더 쉽게 이야기한다면 사용자가 필요하고 원하는 것을 RDBMS에게 요청(쿼리)을 하는 걸 이야기합니다. RDBMS에는 여러 가지 종류가 있습니다. SQL은 몇 가지 개념만 완벽하게 이해하신다면 오라클은 물론이고, 그 어떤 RDBMS에서도 능숙하게 사용할 수 있습니다. 각각의 RDBMS (oracle, mysql, mariadb, ms-sql, postgresql, greenplum 등등)가 있지만 그중에 하나의 데이터베이스를 골라 SQL을 공부하시면 됩니다. 그렇게 하나만 제대로 배워두시면 나머지는 약간씩 다른 문법이나 사용법을 숙지하시면 큰 틀 안에서 SQL을 활용하는 데는 .. 2023. 4. 10.
728x90
반응형