반응형
MYSQL시작
sql접속
mysql -u root -p
database 생성
create database dataname;
현재 sql에 저장되어있는 데이터베이스 보기
show databases;
db접근
use dataname;
table보기
show tables;
table 정보
desc tablename;
table 생성
CREATE TABLE artists
(
id INT NOT NULL AUTO_INCREMENT, # id 칼럼 정수 / NULL X / 값 자동증가
name VARCHAR(100) NOT NULL, # name 칼럼 100크기 문자열
PRIMARY KEY (id) # 이 테이블 Primary Key = id 로 설정
); # 쿼리문은 ; 로 구분되기 때문에 엔터를 쳐서 쿼리문을 멀티라인으로 작성
CREATE TABLE songs
(
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
lyrics VARCHAR(2000),
artist_id INT,
PRIMARY KEY (id),
FOREIGN KEY (artist_id) REFERENCES artists (id)
# 외래키를 걸어줄 칼럼과 참조할 테이블과 칼럼
);
data 입력
#table에 data추가
INSERT INTO artists (name) VALUES ('Radio Head');
# INSERT INTO 뒤에는 테이블 명과 칼럼값을 소괄호로 감싸 줍니다.
# VALUES 뒤에는 실제로 넣을 값을 소괄호로 감싸주고
앞서 테이블의 칼럼을 지정한 순서대로 데이터를 넣으면 됩니다.
INSERT INTO artists (name) VALUES ('Pink Floid');
INSERT INTO artists (name) VALUES ('새소년');
data 수정
데이터 수정
UPDATE artists SET name='Pink Floyd' WHERE id=2;
# UPDATE 쿼리문은 데이터를 수정할 테이블을 기입
# 바꾸고자 하는 칼럼값에 새롭게 업데이트 할 데이터를 대입
# WHERE 조건을 주는 쿼리문
# 이 예제에서는 artists 테이블의 id가 2번인 데이터에 대해서 UPDATE를 하겠다는 의미
데이터 삭제
DELETE FROM artists WHERE name='새소년';
id값 auto_increment 값 수정
show table status like 'tablename'
#다음에 삽입될 auto_increment 값 확인
초기화(변경)
alter table tablename auto_increment=변경할 숫자;
#초기화(변경) 할 때 해당 컬럼 max값 보다 커야함
SELECT 데이터 조회
# table 전체 조회
SELECT * FROM tablename;
# 원하는 col만 조회
select tablename.colname from tablename;
# col 여러개 조회
select tablename.colname, tablename.col2name from tablename;
WHERE 조건문
# 조건을 걸어줌 / 다양한 연산자 가능
SELECT tablename.colname FROM tablename WHERE tablename.title = '바다';
# user라는 테이블에서 email 이 위같은 데이터를 가져옴
SELECT * FROM users WHERE email='orm@wecode.co.kr’;
https://www.w3schools.com/sql/sql_where.asp
WHERE 조건문 + LIKE 조건문
: (특수문자 사용하여) 문자열 검색
// 넘실넘실이라는 문자열이 포함된 노래
SELECT songs.title, songs.lyrics FROM songs WHERE songs.lyrics LIKE '%넘실넘실%';
// all로 시작하는 쿼리문
SELECT songs.title, songs.lyrics FROM songs WHERE songs.title LIKE 'All%';
// 가져가요 돼요로 끝나는 쿼리문
SELECT songs.title, songs.lyrics FROM songs WHERE songs.lyrics LIKE '%가져가도 돼요';
JOIN
: 연관성있는 두개의 케이블을 결합
SELECT artists.name, songs.title, songs.lyrics # 필요한 칼럼을 나열
FROM artists # artists 테이블에
JOIN songs # songs 테이블을 결합
ON artists.id = songs.artist_id; # ON 뒤에는 교집합,연결성이 있는 칼럼
더보기
SELECT artists.id, artists.name, songs.title
FROM artists
JOIN songs
ON artists.id = songs.artist_id
WHERE artists.name = '새소년'; # 새소년의 노래들만 조회
SELECT artists.id, artists.name, songs.title
FROM artists
JOIN songs
ON artists.id = songs.artist_id
WHERE songs.lyrics LIKE '%you%'; # 가사에 you 가 들어간 데이터만 조회
SELECT artists.id, artists.name, songs.title
FROM artists
JOIN songs
ON artists.id = songs.artist_id
WHERE songs.lyrics LIKE '%you%' OR songs.lyrics LIKE '%i%';
# 가사에 you 또는 i가 들어간 데이터만 조회
https://www.w3schools.com/sql/sql_join_left.asp
AUTO_INCREMENT 1부터 순서대로 정렬
SET명령으로 변수 COUNT를 0으로 지정
mysql> SET @count=0;
update 명령으로 auto_incremetn의 컬럼을 1부터 순서대로 정렬
mysql> UPDATE tablename SET colname=@count:=@count+1;
1부터말고 변경하고싶은 숫자있을 때
alter table tablename auto_increment=변경할숫자;
key = MUL 다른 테이블 기본키 참조
> 백업해둔 dump파일로 데이터 복원
use 기존데이터
source dumpname.sql
> Database 삭제하고 다시연결
npx prisma migrate dev —name init
> Db 백업 > dump 파일 생성
터미널 들어가서 바로!
mysqldump -uroot -p 기존데이터베이스명 > 파일명.sql
> 복구
mysql -u root -p [복구할데이터베이스이름] < [저장한데이터베이스].sql
> 기존 db 삭제
Drop database database;
반응형
'Archive' 카테고리의 다른 글
[JS] querySelector (0) | 2021.09.18 |
---|---|
[DB] C.R.U.D (0) | 2021.09.16 |
[DB] Database 기초 (0) | 2021.09.14 |
[Node.js] express (0) | 2021.09.13 |
[Node.js] Protocol / Port / URL (0) | 2021.09.13 |