Study/DB 23

[MySQL] DELETE 데이터 삭제 기본 사용법

DELETE 구문은 테이블에서 특정 row를 삭제할 때 사용됩니다. 기본 구조DELETE 문의 구조는 다음과 같습니다.DELETE FROM [테이블명]WHERE [조건] WHERE 절을 사용하면 조건에 맞는 행만 삭제됩니다.만약 WHERE절을 생략하면 테이블의 모든 데이터가 삭제됩니다. 예제예제에 사용할 테이블과 데이터입니다.create table tb_1 ( id int(11) not null auto_increment primary key comment 'key', name varchar(255) not null comment '이름', address varchar(255) null default '' comment '주소');insert into tb_1 (id, name, address..

[MySQL] UPDATE 데이터 수정 기본 사용법

UPDATE문은 데이터를 수정할 때 사용하는 구문입니다. 기본 구조UPDATE [테이블명]SET [컬럼명] = [수정할 값], [컬럼명] = [수정할 값], ...WHERE [조건] UPDATE 구문에서 WHERE 조건을 사용하면 조건에 맞는 데이터만 수정할 수 있습니다.여러 컬럼을 수정하고자 할 때는 쉼표를 사용해서 여러 컬럼을 연결하면 됩니다. 예제데이터 준비예제에 사용할 테이블과 데이터입니다.# 예제용 테이블 생성create table tb_1 ( id int(11) not null auto_increment primary key comment 'key', name varchar(255) not null comment '이름', address varchar(255) null default '' co..

[MySQL] INSERT INTO SELECT 기본 사용법 및 예제

INSERT INTO SELECT 구문은 SELECT 쿼리의 결과를 가지고 테이블에 데이터를 삽입할 수 있게 해주는 쿼리입니다. 기본 구조 INSERT INTO [테이블명] (컬럼1, 컬럼2, ... ) SELECT 컬럼1, 컬럼2 .. FROM [테이블명] WHERE [조건] INSERT 구문과 SELECT 구문이 합쳐진 형태입니다. 주의할 점은 INSERT 컬럼의 개수와 SELECT 결과 컬럼의 개수와 각 컬럼의 타입이 같아야 합니다. 자세한 내용은 예제를 통해 설명드리겠습니다. 예제 예제에 사용할 테이블을 생성합니다. create table city_population ( id int(11) not null auto_increment primary key comment 'key', country_c..

[MySQL] INSERT INTO 데이터 입력 기본 사용법

INSERT문은 데이터베이스 테이블에 데이터를 등록할 때 사용합니다. 기본 구조기본적인 구조는 다음과 같습니다.INSERT INTO [테이블명] (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...) 데이터를 넣고자 하는 테이블명과 어떤 컬럼에 데이터를 넣을지 컬럼 목록을 입력하고,등록하고자 하는 값을 VALUES 뒤에 입력합니다. 주의할 점은 컬럼 개수와 값의 개수가 맞아야 합니다.그리고 컬럼과 값의 타입이 맞아야 합니다. 컬럼의 순서는 실제 DB 테이블의 컬럼 순서와 달라도 괜찮습니다.예를 들면, id, name, address 순서로 되어있는 테이블에 name, id, address로 컬럼을 입력하고 실행해도 됩니다.컬럼과 데이터만 맞춰주면 됩니다. 예제예제에 사용할 테이블 CREATE ..

[MySQL] CREATE TABLE 테이블 생성하기

MySQL에서 테이블을 생성하는 방법을 예제와 함께 설명드리겠습니다.MySQL Workbench에서 진행하였습니다. 기본 구조CREATE TABLE의 간단한 구조는 다음과 같습니다.CREATE TABLE ( , , ...)CREATE TABLE을 사용하여 테이블을 만들었습니다. 생성한 테이블 상세 정보 확인DESCRIBE describe 명령어를 사용하여 아까 만든 테이블의 정보를 확인하였습니다.CREATE TABLE에서 지정한 컬럼명과 타입이 잘 적용되어 만들어진 것을 확인할 수 있습니다.     컬럼 옵션컬럼에 다양한 옵션들을 사용해서 테이블을 생성할 수 있습니다.많은 옵션을 적용할 수 있지만, 자주 사용되는 옵션 몇개를 소개드리겠습니다.CREATE TABLE ( [NOT NULL | NU..

[MySQL] CREATE DATABASE 데이터베이스 생성하기

MySQL에서 데이터베이스를 생성하는 방법에 대해 설명드리겠습니다. 기본 구조CREATE [DATABASE | SCHEMA] [IF NOT EXISTS] 기본적으로 사용되는 데이터 베이스 생성 명령어의 구조입니다.DATABASE 대신 SCHEMA를 사용해도 되며, IF NOT EXISTS 옵션을 같이 사용하면 데이터베이스 이름과 일치하는 데이터베이스가 없는 경우에만 생성이 됩니다. 추가 옵션데이터베이스 생성 시 사용할 수 있는 옵션은 다음과 같습니다.CREATE DATABASE CHARACTER SET COLLATE ENCRYPTION ['Y' | 'N'] 다음과 같이 사용하면 됩니다.create database charset ;Charater set은 데이터베이스의 문자 집합을 지정하는 옵션이고,C..

[MySQL] SELECT ORDER BY 정렬 사용법 및 예제

ORDER BY 문은 데이터를 정렬할 때 사용합니다.단일 컬럼 혹은 2개 이상의 컬럼이나 함수를 기준으로 데이터를 오름차순, 내림차순으로 정렬이 가능합니다. 기본 정렬기본적으로 많이 사용하는 형태는 다음과 같습니다.SELECT FROM ORDER BY 도시 테이블에서 인구수를 내림차순(인구 많은 순)으로 정렬한 데이터입니다.내림차순으로 조회하는 경우에는 DESC 옵션을 붙여야 하지만, 오름차순은 ASC 옵션을 따로 붙이지 않아도 됩니다. 컬럼을 여러개 사용할 수도 있습니다.# 인구수 오름차순, 국가명 내림차순select *from countryorder by Population, Name desc; 여러개를 사용하면 첫번째 컬럼으로 정렬했을 때 같은 값이 있다면 그 다음 컬럼을 기준으로 정렬합니다.위의..

[MySQL] GROUP BY 그룹 함수 종류 및 사용법

종류자주 사용되는 그룹 함수(집계 함수) 는 다음과 같습니다.함수설명AVG()평균 값을 반환합니다.COUNT()행의 개수를 반환합니다.MAX()최대값을 반환합니다.MIN()최소값을 반환합니다.SUM()합계를 반환합니다.  그 외에도 공식 문서에서 설명하고 있는 많은 그룹 함수들이 있습니다.함수설명BIT_AND()비트 AND 결과를 반환합니다.BIT_OR()비트 OR 결과를 반환합니다.BIT_XOR()비트 XOR 결과를 반환합니다.GROUP_CONCAT()연결된 문자열을 반환합니다.JSON_ARRAYAGG()결과 세트를 단일 JSON 배열로 변환합니다. 5.7.22 버전부터 사용 가능합니다.JSON_OBJECTAGG(key, value)결과 세트를 단일 JSON 객체로 변환합니다. 5.7.22 버전부터 사..

[MySQL] GROUP BY HAVING 사용법 및 예제

HAVING 절은 GROUP BY에 의해 생성된 그룹 데이터를 대상으로 조건을 적용할 수 있습니다. 사용법기본 구조는 다음과 같습니다.SELECT [컬럼명]FROM [테이블명]WHERE [조건]GROUP BY [컬럼명]HAVING [조건] WHERE 절은 테이블 데이터 전체에 조건을 걸고, HAVING 절은 그룹화된 데이터에 조건을 건다는 차이가 있습니다.WHERE과 HAVING 절은 용도가 달라서 필요에 맞게 사용하면 됩니다. HAVING 조건 예제# 인구의 총 합이 100,000,000이 넘는 국가 조회select Code, Name, sum(Population)from countrygroup by Codehaving sum(Population) > 100000000;HAVING 절을 사용해서 그룹화..

[MySQL] GROUP BY 와 ONLY_FULL_GROUP_BY

SELECT 구문에서 GROUP BY 절을 사용할 때 오류가 나는 경우가 있습니다.  전체 오류 메시지는 다음과 같습니다.Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'world.city.ID' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 번역해보면 SELECT 리스트의 표현식이 GROUP BY 절에 없으며, GROUP BY 절의 열에 기능적으로 종속되지 않은 열(world.city.ID)을..

728x90