mysql 데이터베이스

BackEnd_Ash.log·2020년 2월 10일
0

database

목록 보기
1/31

2020.06.03 업데이트 - 데이터베이스 생성
2020.06.10 업데이트 - 데이터베이스 접속
2021.01.25 업데이트 - mysql 초기 설치
2021.03.07 업데이트 - mysql table 이름 변경
2021.03.07 업데이트 - mysql table fk 연동끊고 삭제
2021.07.26 업데이트 - mysql pagination query
2021.07.29 업데이트 - mysql 완전삭제
2021.08.25 업데이트 - brew myslq 설치 & 데몬 실행

설치

공식 홈페이지

공식홈페이지에 들어가서 설치를 하면 된다.

terminal

참고자료 : https://bsscl.tistory.com/5

brew 설치

MySQL을 데몬으로 실행하기

brew update
brew install mysql ( 최신버전 )
brew install client-mysql

서비스 시작

brew services start mysql

서비스 재시작

brew services restart mysql

서비스 종료하기

brew services stop mysql

서비스 재시작

brew services restart mysql

mysql 설정

mysql.server start 서버를 실행시킨다.
mysql_secure_installation : mysql 설정

    1. Would you like to setup VALIDATE PASSWORD component?
      yes : 복잡한 비번
      no : 쉬운 비번
    1. Remove anonymouse users ?
      yes : 접속시 -u 옵션 필요
      no : 접속시 -u 옵션 불필요
    1. Disallow root login remotely ?
      yes : 원격접속 불가능
      no : 원격접속 가능
    1. Remove test database and access to it ?
      yes : 테스트 데이터베이스 제거
      no : 테스트 데이터베이스 유지
    1. Reload privilege tables now ?
      yes : 적용
      no : 미적용

데이터 베이스 접속

mysql -u root -p

로 보통 들어간다

그리고 port 가 만약에 3306 이 아닐경우 포트번호를 붙여줘야한다.

mysql -h 엔드포인트 root -p -P 3307

만약에 root 로 해서 들어가지지 않을때 ,

mysql -h 엔드포인트 -u jakdu -p -P 3307

해줘야합니다.

port 번호 확인

mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.05 sec)

데이터 베이스 생성

create database 데이터베이스이름 character set utf8mb4 collate utf8mb4_general_ci;
데이터 베이스 생성

create database django_insta character set utf8mb4 collate utf8mb4_general_ci;

데이터 베이스 확인 , 테이블 확인

show databases;
show tables;

테이블 초기화

truncate [table_name]

테이블 이름 변경

alter table goods_tmp rename goods;

insert ( 테이터 삽입 )

INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3)VALUES (데이터값1, 데이터값2, 데이터값3)

ex)
INSERT INTO user (id, name, sex, address, age) VALUES ('1', 'jakdu', '남자', 'seoul', '31');

INSERT INTO user (id, name, sex, address, age) VALUES ('2', 'sory', '여자', 'seoul', '25');

테이블 필드 확인

show full columns from "테이블명"

테이블 데이터 확인

select * from user;

특정 문자열 확인

특정 문자로 시작하는 데이터 검색 SELECT [필드명] FROM [테이블명] WHERE [필드명] LIKE '특정 문자열%;

select * from 테이블명 where 칼럼이름;

특정 조건의 레코드 확인

select * from user where name = jakdu;

update (데이터 변경 )

UPDATE 테이블명 SET 컬럼1=컬럼1의 값, 컬럼2=컬럼2의 값 WHERE 대상이 될 컬럼명=컬럼의 값

ex )
UPDATE user SET address='korea';
UPDATE user SET name='smilejakdu' WHERE id=1;
UPDATE user SET name='happyjakdu', age='3' WHERE id=1;

delete ( 데이터 삭제 )

DELETE FROM 테이블명 [WHERE 삭제하려는 칼럼 명=값]

ex )
DELETE FROM user WHERE id = 1;

필드 삭제

alter table 테이블명 drop column 칼럼명 ;

ex )
alter table user drop column age;

테이블 삭제

drop table 테이블명

ex)
drop tabel user

테이블 이름 변경

rename table 테이블1 to 테이블2;

ex )
rename table user to users;

컬럼추가 (Add )

alter table 테이블명 change old컬럼명 new컬럼명 컬럼타입;

ex )
alter table user change old

컬럼 변경 (Modify)

alter table 테이블명 modify column 필드명 변경타입 ;

ex )
alter table user modify column age varchar(100) null;

컬럼 이름 변경

alter table 테이블명 change column 기존컬럼명 변경할컬럼명 컬럼타입;

ex )
alter table user change column name nickname varchar(50) null;

컬럼 순서변경

alter table 테이블명 modify 순서변경할필드명 필드타입 after 앞에오는필드명;

ex )
alter table user modify age varchar(50) after id;

auto_increment 초기화

ALTER TABLE [테이블명] AUTO_INCREMENT=1;

출력제한 limit

select * from users limit 5;

중복 제거 distint

select distinct user_name from users;

mysql 삭제

sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/bin/mysql*
sudo rm -rf /usr/local/Cellar/mysql

FK 키 끊고 table drop

Foreign Key check 가 되어 있으면 drop이 안된다..
아래와 같은 순서로 query문 실행하시면, table drop 이 된다.
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE mydb.goods
SET FOREIGN_KEY_CHECKS=1;

default 값 수정

ALTER TABLE your_table CHANGE your_column your_column TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT '1'

페이지네이션 pagination , page

limit 숫자 : 출력할 행의수
offset 숫자 : 몇번째 row 부터 출력할 지

SELECT * FROM users limit 10 offset 0; 👉 0번째부터 10개 출력
SELECT * FROM users limit 10 offset 10; 👉 10번째부터 10개 출력

limit 몇번째부터 , 몇개 출력

SELECT * FROM users limit 0 , 10; 👉 0 번째부터 10개 출력
SELECT * FROM users limit 10 , 10 👉 10 번째 부터 10개 출력

Ubuntu mysql 완전삭제

완전 삭제
sudo apt-get remove --purge mysql*

잘 지워졌는지 확인
sudo dpkg -l | grep mysql

데이터베이스 삭제

drop database database_name;

profile
꾸준함이란 ... ?

0개의 댓글