데이터베이스(DB)/MariaDB

MariaDB_SQL 기본 예제, SQL 따라하기

개발계발게발 2021. 6. 15. 17:17
반응형

테이블 : RDBMS에서 데이터가 저장되는 장소
테이블의 구조와 관련된 정보를 스키마라고 한다.

테이블의 구조는 컬럼이름/컬럼타입/컬럼길이로 구성

레코드: 스키마에 정의된 컬럼에 해당하는 값의 모음
하나의 테이블은 여러개의 레코드로 구성되어있음.

주요키 : 테이블에 저장된 레코드를 사용하기 위해서 각각의 레코드를 구별하는 방법 중 하나

주요키는 하나의 테이블에 저장된 레코드가 서로 다른 값을 갖는 컬럼을 의미

인덱스 : 데이터의 순서를 미리 정렬하기 위해 사용
레코드를 쉽게 찾을 수 있도록 미리 정리된 표를 만들어 사용(주요키도 인덱스 중에 하나)

DBMS : 데이터베이스를 관리해주는 시스템
데이터베이스 : 데이터베이스 : 데이터를 저장하는 공간
DBMS 클라이언트 : DBMS 클라이언트 : 데이터베이스를 사용하는 어플

 

1.MariaDB접속

 - password - 로그인

2.데이터베이스 만들기

CREATE DATABASE 데이터베이스명; 
ex) CREATE DATABASE java;

CREATE DATABASE 데이터베이스명; 
ex) CREATE DATABASE java;


3. 확인


SHOW DATABASES;

SHOW DATABASES;



4. java 데이터베이스 사용하기

 


USE 데이터베이스명;
USE java;

USE 데이터베이스명; 
USE java;



5. 테이블 확인

SHOW TABLES;

SHOW TABLES;


6. ID 생성

CREATE USER '아이디'@'접속위치' IDENTIFIED BY '비밀번호';

CREATE USER 'test01'@'%' IDENTIFIED BY '1234567';

(접속위치 localhost, %) 

CREATE USER '아이디'@'접속위치' IDENTIFIED BY '비밀번호'; 
CREATE USER 'test01'@'%' IDENTIFIED BY '1234567';

 

7. 권한 주기

java DB 전체 권한 주기
GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명 TO '아이디'@'접속위치';
GRANT ALL PRIVILEGES ON java.* TO 'test01'@'%';

GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명 TO '아이디'@'접속위치'; 
GRANT ALL PRIVILEGES ON java.* TO 'test01'@'%';

 

8. 반영하기

FLUSH PRIVILEGES;

FLUSH PRIVILEGES; 


9. 접속하기

----------------------------------------------------------------
USE mysql;

USE mysql;



SELECT user, password FROM user;
암호패턴보기

SELECT user, password FROM user; 

 

---------------------------------------------------------------

10. 사용자 권한보기

SHOW GRANTS FOR '아이디'@'접속위치;
SHOW GRANTS FOR 'test01'@'%';

SHOW GRANTS FOR '아이디'@'접속위치;
SHOW GRANTS FOR 'test01'@'%'; 


11. 비밀번호변경

더보기

UPDATE user SET password=password('새비밀번호') WHERE user='아이디';
UPDATE user SET password=password('000000000') WHERE user='test01';

 

SET PASSWORD FOR 아이디=password('새비밀번호');
SET PASSWORD FOR test01=password('00000000');

SET PASSWORD FOR 아이디=password('새비밀번호'); 
SET PASSWORD FOR test01=password('00000000'); 


GRANT USAGE ON *.*to '아이디'@'접속위치' IDENTIFIED BY '새비밀번호';
GRANT USAGE ON *.*to 'test01'@'%' IDENTIFIED BY '00000000';

GRANT USAGE ON *.*to '아이디'@'접속위치' IDENTIFIED BY '새비밀번호'; 
GRANT USAGE ON *.*to 'test01'@'%' IDENTIFIED BY '00000000';


12. 권한 삭제

REVOKE ALL ON 데이터베이스.* FROM 'temp01'@'%';
REVOKE ALL ON java.* FROM 'test01'@'%';

REVOKE ALL ON 데이터베이스.* FROM 'temp01'@'%'; 
REVOKE ALL ON java.* FROM 'test01'@'%';

권한 삭제 후 권한 보기

13. 사용자 삭제

DROP USER '아이디'@'접속위치';
DROP USER 'temp01'@'%';

DROP USER '아이디'@'접속위치'; 
DROP USER 'temp01'@'%'; 


14. 데이터베이스 삭제

DROP DATABASE 데이터베이스명;
DROP DATABASE java;

DROP DATABASE 데이터베이스명; 
DROP DATABASE java; 

 

15. 테이블 생성


CREATE TABLE 테이블명(
컬럼명 데이터타입(값) 옵션,
컬럼명 데이터타입(값) 옵션,
컬럼명 데이터타입(값) 옵션,
....
);
옵션에는 자동증가, NOT NULL등

CREATE TABLE 테이블명( 
컬럼명 데이터타입(값) 옵션, 
컬럼명 데이터타입(값) 옵션, 
컬럼명 데이터타입(값) 옵션, 
.... 
); 


//회원을 저장하는 테이블

회원 번호
회원 이름
회원 비밀번호
회원 전화번호
회원 email

member 테이블


물리 컬럼명 데이터타입 값
번호 no int 11
이름 name varchar 10
비밀번호 pw varchar 20
email email varchar 30
===============================


CREATE TABLE member( 
`no` int(11) NOT NULL AUTO_INCREMENT, 
`name` varchar(10) NOT NULL, 
`pw` varchar(20) NOT NULL, 
`email` varchar(30) NOT NULL, 
PRIMARY KEY(no) 
); 

CREATE TABLE member( 
	`no` int(11) NOT NULL AUTO_INCREMENT, 
	`name` varchar(10) NOT NULL, 
	`pw` varchar(20) NOT NULL, 
	`email` varchar(30) NOT NULL, 
 	 PRIMARY KEY(no) 
); 


16. 구조 출력

EXPLAIN 테이블명;
DESCRIBE 테이블명;

EXPLAIN 테이블명; 
DESCRIBE 테이블명;

EXPLAIN member;
DESCRIBE member;

EXPLAIN 테이블명;
DESCRIBE member;

17. 값 넣기

INSERT INTO 테이블명 (컬럼명, ...) VALUES ('값' ...);
INSERT INTO member (name, pw, email) VALUES ('홍길동', '01234567', 'hong@hong.com');

INSERT INTO 테이블명 (컬럼명, ...) VALUES ('값' ...); 
INSERT INTO member (name, pw, email) VALUES ('홍길동', '01234567', 'hong@hong.com'); 


여러개 값넣기
INSERT INTO member (name, pw, email) VALUES
 ('홍길동', '01234567', 'hong@hong.com'),
 ('홍길동', '01234567', 'hong@hong.com'),
 ('홍길동', '01234567', 'hong@hong.com'),
...;

INSERT INTO member (name, pw, email) VALUES 
 ('홍길동', '01234567', 'hong@hong.com'), 
 ('김길동', '01234567', 'kim@hong.com'), 
 ('박길동', '01234567', 'gog@hong.com'), 
...; 


18. 조회하기

SELECT 컬럼명 FROM 테이블명;
SELECT * FROM member;

SELECT * FROM member;


SELECT name as '이름' FROM member;  //name 컬럼 별칭 정하기

SELECT name as '이름' FROM member;  //name 컬럼 별칭 정하기 


19. 수정하기

UPDATE 테이블명 SET 컬럼명=값 WHERE 조건절;

UPDATE member SET email='kim@kakao.com' WHERE no=2; // whwer 조건절은 p키

 

UPDATE member SET name='백길동', pw='12345', email='bbb@naver.com' WHERE no=1; 

UPDATE 테이블명 SET 컬럼명=값 WHERE 조건절; 

UPDATE member SET email='kim@kakao.com' WHERE no=2; // whwer 조건절은 p키 

UPDATE member SET name='백길동', pw='12345', email='bbb@naver.com' WHERE no=1; 

수정 후


20. 삭제하기

DELETE FROM 테이블명 WHERE 조건절;
DELETE FROM member WHERE no=1;

DELETE FROM 테이블명 WHERE 조건절; 
DELETE FROM member WHERE no=1; 

수정 후

 

반응형