"서문" 기사의 내용은 대략적으로 데이터베이스의 기본 작업입니다.
"소속 열" MySQL
"홈페이지 링크" 개인 홈페이지
"작가" Mr. Maple Leaf (fy)
"단풍잎씨는 문학이 조금" "문장 나눔"
아무도 혼자 있는 것을 좋아하지 않지만 실망하는 것도 좋아하지 않습니다.
- 무라카미 하루키, "노르웨이의 숲"
목차
1. 데이터베이스 생성/보기
데이터베이스 구문 생성:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]
create_specification
옵션:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
설명하다:
db_name
생성된 데이터베이스의 이름입니다.- 대문자 키워드
- []는 선택 사항이며 작성하지 않도록 선택할 수 있습니다.
- CHARACTER SET: 데이터베이스에서 사용하는 문자 집합을 지정합니다.
- COLLATE: 데이터베이스 문자 집합에 대한 유효성 검사 규칙을 지정합니다.
모든 데이터베이스 보기:
show databases;
[IF NOT EXISTS]
데이터베이스가 존재하면 생성되지 않고, 존재하지 않으면 생성된다는 의미입니다. 예를 들어 기존 test
데이터베이스를 생성합니다.
create database if not exists test;
或者 create database test; // 直接创建
존재하지 않는 경우 생성
create database if not exists test1;
데이터베이스는 본질적으로 /var/lib/mysql/
아래에
2. 데이터베이스 삭제
문법:
DROP DATABASE [IF EXISTS] db_ name;
db_name
생성된 데이터베이스의 이름입니다.- []는 선택 사항이며 작성하지 않도록 선택할 수 있습니다.
삭제를 수행한 후의 결과:
- 해당 데이터베이스는 데이터베이스 내부에서 볼 수 없습니다.
- 해당 데이터베이스 폴더가 삭제되고 계단식 삭제되며 그 안에 있는 모든 데이터 테이블이 삭제됩니다.
- 데이터베이스 삭제는 기본적으로
/var/lib/mysql/
아래의
알아채다: 임의로 데이터베이스를 삭제하지 마시고, 불필요한 데이터베이스는 이름을 변경하여 백업해두시기 바랍니다.
3. 데이터베이스 문자 집합 및 데이터베이스 유효성 검사 규칙
db1이라는 데이터베이스를 생성합니다.
create database db1;
설명하다: 문자 집합과 검증 규칙을 지정하지 않고 데이터베이스를 생성할 때 시스템은 기본 문자 집합을 사용하며 검증 규칙은 utf8
MySQL 구성 파일 에 설정되어 있습니다
. 문자 집합이나 검증 규칙을 직접 지정하면 , 시스템 기본 문자 집합 및 유효성 검사 규칙을 사용하는 경우에는 그렇지 않습니다. 문자 집합을 사용하여 db2 데이터베이스를 생성하도록 지정할 수도 있습니다.utf8_ general_ ci
/etc/my.cnf
utf8
create database db2 charset=utf8;
或者 create database db2 CHARACTER SET utf8
utf
문자 집합 및 데이터 정렬 규칙을 사용하여 utf8_general_ci
db3 데이터베이스를 생성할 수도 있습니다.
create database db3 charset=utf8 collate utf8_general_ci;
문자 집합 및 유효성 검사 규칙이란 무엇입니까? ?
- 문자 집합은 코드 집합이며 데이터베이스는 데이터를 표현하고 저장하는 데 사용됩니다.
- 유효성 검사 규칙은 데이터베이스가 필드를 비교할 때(데이터 읽기, 데이터 비교) 사용해야 하는 인코딩인 데이터 무결성을 감지하고 확인하는 방법입니다.
데이터에 대해 수행되는 모든 작업에 관계없이 데이터베이스 라이브러리는 인코딩 형식이 일관성이 있는지 확인해야 합니다.
시스템 기본 문자 집합(현재 데이터베이스)을 확인합니다( /etc/my.cnf
MySQL 구성 파일에서 설정).
show variables like 'character_set_database';
시스템 기본 유효성 검사 규칙 보기(현재 데이터베이스)
show variables like 'collation_database';
데이터베이스에서 지원하는 문자 집합을 확인하십시오. 문자 집합은 주로 사용되는 언어를 제어합니다. 예를 들어 utf8은 중국어를 사용할 수 있습니다.
show charset;
데이터베이스에서 지원하는 문자 집합 확인 규칙을 봅니다.
각 확인 규칙은 문자 집합과 일치합니다. 예를 들어 utf8_general_ci
확인 규칙과 일치하는 문자 집합은 다음과 같습니다.utf8
넷째, 유효성 검사 규칙이 데이터베이스에 미치는 영향
대소문자를 구분하지 않음
utf8_ general_ ci[대소문자 구분 안 함]를 사용하여 유효성 검사 규칙으로 데이터베이스 생성
create database test1 charset=utf8 collate utf8_general_ci;
테이블 삽입 데이터 생성
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
데이터베이스의 디렉토리에서 db.opt
파일은 라이브러리의 코딩 규칙을 저장하는 것입니다.
cat /var/lib/mysql/test1/db.opt
테이블 정보 보기
문자 찾기a
select * from person where name='a';
a
및 모두 A
감지되어 검사 규칙이 utf8_general_ci
대소문자를 구분하지 않음을 나타냅니다.
대소문자 구분
utf8_ bin[대소문자 구분]을 사용하여 유효성 검사 규칙으로 데이터베이스 생성
create database test2 collate utf8_bin;
테이블 삽입 데이터 생성
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
데이터베이스의 디렉토리에 db.opt
파일은 라이브러리의 인코딩 규칙을 저장하는 것입니다.
검색 문자 a
, 조건을 충족하는 문자 만 발견되어 검사 규칙이 utf8_bin
대소 문자를 구분함을 나타냅니다.
5. 데이터베이스 수정
데이터베이스를 생성할 때 설명 표시
show create database 数据库名;
설명하다:
- MySQL은 대문자 키워드를 사용할 것을 권장하지만 필수 사항은 아닙니다.
- 데이터베이스 이름의 백틱``은 데이터베이스 이름이 키워드로만 사용되는 것을 방지하기 위한 것입니다.
/*!40100 default.... */
이것은 주석이 아니라 현재 mysql 버전이 4.01보다 높다는 것을 의미합니다. 이 문장을 실행하고 미만이면 실행하지 마십시오.
데이터베이스 수정
문법:
ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]
alter_spacification
옵션:
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
- 대문자 키워드
- []는 선택 사항이며 작성하지 않도록 선택할 수 있습니다.
설명하다
: 데이터베이스의 수정은 주로 데이터베이스의 문자셋, 검증규칙 등을 수정하는 것을 말한다 test2
.gbk
alter database test1 charset=gbk collate gbk_chinese_ci;
알아채다: 현재 데이터베이스는 이전에 지원했던 데이터베이스 이름 수정을 지원하지 않습니다.
6. 데이터베이스 백업 및 복구
지원
문법
mysqldump -P3306 -u root -p -B 数据库名 > 数据库备份存储的文件路径
참고: >는 출력 리디렉션입니다.
예를 들어 test1
라이브러리를 파일로 백업하려면 mysql 연결을 종료해야 합니다.
mysqldump -P3306 -uroot -p -B test1 > /home/fy/mysql/test1.sql
vim을 열어 확인하십시오. 데이터 + 데이터의 효과적인 작업이 모두 백업됩니다.
절감
문법:
source 备份的文件(路径)
참고: >는 출력 리디렉션입니다.
삭제하고 test1
, 테스트하고,
복원하고 test1
, mysql 연결에서 작동하십시오.
source /home/fy/mysql/test1.sql;
데이터베이스를 확인하십시오. 데이터가 복원되었습니다.
지침:
백업이 데이터베이스 전체가 아닌 테이블 중 하나인 경우
mysqldump -uroot -p 数据库名 表名1 表名2... > 备份的文件(路径),如:/mytest.sql
여러 데이터베이스를 동시에 백업
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
데이터베이스를 백업할 때 -B 매개변수를 포함하지 않으면 데이터베이스를 복원할 때 빈 데이터베이스를 먼저 생성한 다음 데이터베이스를 사용하고 소스를 사용하여
복원해야 합니다.
일곱, 데이터베이스 연결 확인
문법:
show processlist;
현재 어떤 사용자가 우리 MySQL에 연결되어 있는지 알려줄 수 있습니다. 사용자가 정상적인 로그인이 아닌 것을 발견하면 데이터베이스가 침입되었을 가능성이 큽니다. 나중에 데이터베이스가 느려지면 이 명령을 사용하여 데이터베이스 연결 상태를 확인할 수 있습니다.
--------------------- END ----- ------ -----------
「 作者 」 枫叶先生
「 更新 」 2023.7.7
「 声明 」 余之才疏学浅,故所撰文疏漏难免,
或有谬误或不准确之处,敬请读者批评指正。