본문 바로가기
Back-End/MySQL

MySQL - DML

by 코젼 2022. 7. 14.
728x90
반응형

2022-07-14(19일차)

💡 다양한 조건 - where like

like는 특정 문자가 포함된 문자열을 찾고 싶을 때 사용하는 명령어이다.
--> 정수형을 찾으려고 하면 안된다.

%문자열 : 문자열로 끝나는 값 조회
문자열% : 문자열로 시작하는 값 조회
%문자열% : 문자열이 포함된 값 조회

📃 like 

select *
	from book
	where title like '%왕자';

select *
	from book
	where title like '어린%';

select *
	from book
	where title like '%린왕%';


💡 order by

select *
	from score
	order by math desc;

select *
	from score
	order by math asc;


💡 insert문

◾ 데이터 삽입
◾ insert into 테이블(컬럼) values(데이터) --> 컬럼 생략 가능
insert into book values(3, '햄릿', '윌리엄 셰익스피어', '엘리스 출판');
select * from book;

insert 를 동일한 데이터로 한 번 더 하더라도 삽입이 된다.


💡 update

◾ 데이터 수정
◾ update 테이블 set 변경할 값 where 조건 --> 조건 필수!! 조건을 적지 않으면 모든 데이터가 다 바뀐다.
update book
	set title = '돈키호테 1' -- 변경할 값 --
    where title = '돈키호테';
select * from book;


💡 delete

◾ 데이터 삭제
◾ drop은 database, table, index...(데이터베이스의 구조)만 삭제할 수 있다.
◾ delete는 내용만 삭제할 수 있다.

◾ delete from 테이블 where 조건
delete
	from book
    	where title = '돈키호테 1';

select * from book;


💡 count 명령어

◾ 검색한 결과의 데이터의 개수를 가져오는 명령어
⭐ 만약 null이 있다면 null은 개수에 포함되지 않는다.

◾ select count(컬럼) from 테이블;
select count(id) from book; -- id 컬럼의 개수 검색 --

 

select count(*) from book; -- 전체의 row수가 출력된다. --


💡 limit 명령어

◾ 출력하고자 하는 데이터의 개수를 제한하는 명령어이다.
◾ 데이터의 수가 많으면 불러오는데 너무 많은 시간이 걸리므로 데이터를 빠르게 가져올 때 사용한다.
⭐ limit 1, 5라면, 1은 포함되지 않는다.

◾ select * from limit 제한할 숫자
select * from book limit 2; -- book 테이블에서 데이터를 2개만 가져오기 --

select * from book limit 1, 5; -- 2번째 데이터부터 5개를 가져오기 --
-- 1번째는 포함되지 않는다. --

💡 sum, avg

◾ sum은 컬럼의 값을 더하는 함수
◾ avg는 컬럼의 평균을 더하는 함수, 소수점 이하도 출력된다.

◾ select sum(컬럼) from 테이블
◾ select avg(korean, avg(english), avg(math) from 테이블
select sum(math) from score;

select avg(korea), avg(english), avg(math) from score;


💡 max, min 함수

◾ select max(컬럼) from 테이블
◾ select min(컬럼) from 테이블
select max(korea) from score;

select min(korea) from score;


💡 MySQL 에서 사용자 계정과 그에 대한 권한들을 관리하는 방법

현재 사용하고 있는 root 계정은 관리자 계정으로 이 계정 이외에 다른 사용자 계정을 만들어 권한을 줄 수 있다.
Administer 계정 외에 Guest, 개인적으로 추가하는 계정도 있는 것과 비슷한 개념이다.
use mysql;
show tables;

맨 밑에 있는 user는 사용자의 속성을 가지고 있는 테이블이다.

◾ host, user
◾ Select_priv, Insert_priiv... (접근 제어자가 private로 되어있다.) -- 접근 제어자를 해제해야 한다. --

◾ 계정을 만들면 명령문을 사용하지 못한다.
◾ 따라서 이것을 사용하려면 Default 값을 Y로 만들어야한다.
-- Select, Insert, Update 등의 명령문을 사용하기 위해서이다. --

◾ 변경하려면 db 테이블을 이용한다.


📃 테이블 만들기

create table rental (
	id int,
    book_id int,
    user_id int,
    rental_begin_date datetime,
    rental_end_date datetime );
desc rental;

insert into rental values (
	1000, 1000, 1000, '2019-04-01 19:30:00', '2019-04-05 12:00:30'
);

insert into rental values (
	1001, 1000, 1001, '2019-02-20 12:00:00', '2019-03-01 13:00:00'
);

insert into rental values (
	1002, 1001, 1001, '2019-03-10 11:45:00', '2019-04-01 10:10:10'
);
select * from rental;


select host, user from user; -- user 테이블의 host, user를 선택한다. --

root 계정으로 로그인 되어있다.
localhost는 workbench의 localhost를 의미한다.


http://localhost:8080
https://127.0.0.1:8080

서버하고 연결하기 위한 고유의 번호

📃 사용자 추가

create user jiyeon;
select host, user from user;

계정만 있는 jiyeon

create user 'jiyeon'@localhost identified by '12345'; -- 비밀번호 설정 --

password 가 있는 jiyeon

quit -- 종료 --
mysql -u jiyeon -p -- jiyeon 계정으로 mysql 실행 --
show databases; -- 데이터베이스가 깨끗하다! --

create database test; -- 오류 --

아직 만들 수 없다. root에서 권한을 부여해야 한다.

728x90
반응형

'Back-End > MySQL' 카테고리의 다른 글

MySQL - food 데이터베이스 만들기  (0) 2022.07.15
MySQL - bikinisity 데이터베이스 만들기  (0) 2022.07.15
MySQL - DML 실습  (0) 2022.07.14
MySQL - DDL, where문  (0) 2022.07.14
MySQL - 설치 방법, 명령문 살펴보기  (0) 2022.07.14

댓글