MySQL

    MySQL - 중복제거 distinct, 정렬 order by

    select * from books; 중복을 제거하기 distinct select distinct author_lname from books; 정렬하기 order by -- author_lname 으로 정렬 select * from books order by author_lname; -- full_name 으로 정렬(SQL 동작 방식을 이해) select id, title, concat(author_fname, ' ', author_lname) as full_name, released_year, stock_quantity, pages from books order by full_name; -- full_name 내림차순으로 정렬(desc), 오름차순은 아무것도 쓰지 않거나 asc select id, ti..

    MySQl 문자열 관련 함수(concat, substring, replace, reverse, char_length, upper, lower)

    concat(string1, string2, ... , string_n) 여러 문자열을 합친다. -- author_fname 과 author_lname 컬럼의 값을 합해서 full_name 이라고 보여주고 싶다. select concat(author_fname, ' ', author_lname) as full_name -- as 표시될 컬럼명 from books; concat_ws(seperator, string1, string2, ... string_n) seperator를 구분자로 문자열을 합친다. select concat_ws('-', author_fname, author_lname) as full_name from books; substring(string, start, length) 문자열의 일..

    MySQL - 테이블의 데이터 수정(Update), 삭제(Delete)하기

    데이터 수정(Update) update 테이블명 set 바꿀값 where 조건; -- cats 테이블의 age 컬럼 전체를 2로 바꾸기 update cats set age = 2; -- cats 테이블의 이름이 Jackson인 고양이의 나이를 5로 바꾸기 update cats set age = 5 where name = 'Jackson'; -- breed 가 Tabby인 고양이의 데이터의 -- breed를 Shorthair로, 나이는 10으로 바꾸기 update cats set breed = 'Shorthair', age = 10 where breed = 'Tabby'; 데이터 삭제(Delete) delete from 테이블명 where 조건; -- cats 테이블에 있는 전체 데이터를 삭제하기(위험한 ..

    MySQL - 테이블의 데이터 조회하기 select

    select 컬럼명 from 테이블명 where 조건; -- cats 테이블의 모든 컬럼 가져오기 ( *는 전체를 의미한다.) select * from cats; -- name과 age 컬럼만 가져오기 select name, age from cats; -- 이름이 Jackson인 고양이의 데이터를 가져오기. select * from cats where name = 'Jackson'; -- breed가 Maine Coon이고 나이는 11살 이상인 데이터만 가져오기 select * from cats where breed = 'Maine Coon' and age >= 11; -- breed 가 Maine Coon이거나 Tabby인 데이터만 가져오기 select * from cats where breed = '..

    MySQL Workbench safe mode 해제하기

    MySQL Workbench 에서 테이블을 삭제하려는데 아래와 같은 에러메시지가 떴다. Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. update 또는 delete 할 때 where 절이 없거나 where 절에 key column 외의 비교문일 때, 발생하는 에러인데 쉽게 말하면 safe mode에서는 한번에 하나의 레코드만을 update, delete하도록 설정되어 있는데, 다수의 레코드를..

    MySQL - 제약조건(Constraint), id컬럼 만들기

    제약조건 제약조건이란, SQL 테이블에 문제되는/결함있는 데이터가 입력되지 않도록 컬럼별로 미리 지정해 둔 조건이다. 여기서 제약조건에 해당하는 PK NN UQ B UN ZF AI G Default/Expression은 다음과 같다. PK - Primary key. 중복이나 빈값(NULL)이 들어올 수 없음 NN - Not Null. 빈값 못들어옴 UQ - Unique. 중복 값을 넣을 수 없음 B - Binary. 데이터를 이진 문자열로 저장함(010101 같은) UN - Unsigned. 음수 범위 삭제 ZF - Zero Filled 컬럼 크기보다 작은 값을 넣었을 경우 0으로 채운 뒤 삽입시킴 AI - Auto Increment. 값이 자동으로 1씩 늘어남 INT, DOUBLE 등의 경우 UN을 사..

    MySQL - 테이블에 데이터 추가하기 insert

    insert into 테이블명 (컬럼1, 컬럼2, 컬럼3) values (값1, 값2, 값3); SQL문은 문장을 항상 세미콜론(;) 으로 끝마친다. use YHDB; -- 먼저 테이블이 들어있는 데이터베이스를 지정 --하나의 데이터를 넣는 방법 insert into cats (name, age) values ('Jetson', 7); insert into cats (name, age) values ('Mike', 3); -- 여러 데이터를 넣는 방법 insert into cats (name, age) values ('야옹이', 5), ('냥이', 4), ('Charlie', 10), ('Sandy', 3), ('Bear', 1); -- 특정 컬럼의 값만 데이터를 넣는 방법 insert into cats..

    MySQL 스키마, 테이블 생성

    SQL문이 아닌 MySQL Workbench 툴을 이용한 스키마, 테이블 생성방법에 대해 알아보자. 1. Schema(데이터베이스) 생성 좌측 상단에 있는 원통형 아이콘을 클릭하고 이름을 입력후 apply를 눌러준다. 창이 하나 더 뜨는데 다시 apply를 누른다. 새로운 스키마가 생성된걸 확인할 수 있다. 2. Table 생성 테이블 모양 아이콘 또는 마우스 커서에 있는 Create Table을 눌러 테이블을 만들 수 있다. 테이블명, 컬럼명, 데이터타입 등을 지정해주고 apply를 누른다. varchar(15)는 문자열을 최대 15자 까지 저장할 수 있다. 테이블이 생성된 걸 확인할 수 있다. 수정하고 싶으면 Alter Table을 선택하면 된다.