Server/MariaDB
[MariaDB] CTE
CTE(Common Table Expression)는 select로 가져온 결과를 하나의 테이블로 간주하여 필요한 쿼리를 좀 더 간략화하여 사용할 수 있도록 해줍니다. CTE의 사용형식은 아래와 같습니다. with [CTE이름] (컬럽명1, 컬럼명2....) as ( select 구문... ) 상기 규칙에 따라 CTE를 작성하면 다음과 같은 형식으로 만들어질 수 있습니다. with tmpCTETbl (userAddress, totalAge) as ( select userAddress, SUM(userAge) from tb_user tu group by userAddress ) select userAddress, totalAge from tmpCTETbl; 첫 번째 select문에서는 userAddress..
[MairaDB] delete
테이블의 데이터를 삭제하는 경우 delete 구문을 사용합니다. delete from tb_user where userSeq = 1; where를 생략하면 전체 테이블의 데이터를 삭제하므로 주의해야 합니다. 만약 전체가 아닌 조건에 맞는 상위 몇 건의 데이터만 삭제하고자 한다면 delete에 limit키워드를 사용합니다. delete from tb_user where userName Like '홍%' limit 2; 따라서 위 예제는 조건에 맞는 상위 2건의 데이터만 삭제하게 됩니다. 전체 데이터를 삭제하는 경우 delete대신 truncate table구문을 사용할 수도 있습니다. truncate table tb_user; truncate는 delete와 달리 트랜잭션 로그를 남기지 않습니다. 다른 D..
[MariaDB] update
특정 테이블의 데이터를 변경하기 위해서는 다음과 같이 합니다. update tb_user set userName = '홍길동' where userSeq = 1; where는 생략할 수 있으나 모든 행의 데이터가 변경될 수 있으므로 주의해야 합니다.
[MariaDB] insert
insert는 데이터를 삽입하며 다음과 같이 구현합니다. insert into tb_user (userNumber, userName, userAge, userAddress, userJoinDate, userUse) values ('CCC-000003', '홍길영', '35', '대구 광역시', now(), 1); 만약 여러 건(Row)의 데이터를 삽입하는 경우라면 , (콤마)로 각 행의 데이터를 구분하여 추가할 수 있으며 insert into tb_user (userNumber, userName, userAge, userAddress, userJoinDate, userUse) values ('CCC-000003', '홍길영', '35', '대구 광역시', now(), 1), ('DDD-000004', '..
DML, DDL, DCL
1. DML DML(Data Manipulation Language)는 select, insert, update, delete문과 같이 데이터를 조회, 삽입, 변경, 삭제하는 데 사용되는 SQL 구문을 의미합니다. 또 다르게는 트랜잭션(Transaction)을 발생시키는 SQL 구문을 DML이라고 볼 수 있습니다. 2. DDL DDL(Data Definition Language)는 Database나 그 하위의 Table, View등 특정 개체를 생성하거나 변경, 삭제하는 create, drop, alter 등의 SQL 구문을 의미합니다. 3. DCL DCL(Data Control Language)은 grant, revoke, deny등 권한에 관련된 SQL문에 해당합니다.
[MariaBD] select
테이블의 데이터를 조회합니다. select * from tb_user tu ; userSeq userNumber userName userAge userAddress userJoinDate userUse 1 AAA-000001 홍길동 24 서울시 강남구 2021-04-13 09:49:58 1 2 BBB-000002 홍길순 30 부산 광역시 2021-02-23 15:13:21 1 특정 데이터만 조회하려면 where 절을 사용합니다. select * from tb_user tu where tu.userName = '홍길동'; 검색 대상이 문자열인 경우 like를 사용하면 문자열 내용 자체를 검색할 수 있습니다. select * from tb_user tu where tu.userName like '홍길%'; ..
[MariaDB] 실행 쿼리 모니터링
1. 로그를 활성화 합니다. SET GLOBAL general_log='ON'; SET GLOBAL slow_query_log='ON'; SET GLOBAL log_output='TABLE'; 2. 로그 테이블을 통해 실행한 쿼리를 확인합니다. select * from mysql.general_log gl; 3. 로그를 계속 남기는것은 성능에 좋지 않으므로 필요하지 않으면 로그기능을 비활성화 합니다. SET GLOBAL general_log='OFF'; SET GLOBAL slow_query_log='OFF'; SET GLOBAL log_output='NONE';
[MariaDB] Show
show databaese 데이터 베이스 목록 보기 show tables 테이블 목록 보기 desc [table] 테이블의 컬럼 확인 show table status 테이블 목록 보기 (테이블 상태 포함)