데이터 베이스 MySQL 튜토리얼 MySQL 데이터베이스 고급 작업 살펴보기

MySQL 데이터베이스 고급 작업 살펴보기

Jan 29, 2021 am 09:18 AM
mysql

MySQL 데이터베이스 고급 작업 살펴보기

추천 무료 학습: mysql 비디오 튜토리얼

Article 디렉토리

  • 고급 데이터 테이블 작업
    • 준비: MySQL 데이터베이스 설치
  • 1. 테이블 복제
    • 방법 1
    • 방법 2
  • 2. 테이블을 지우고 테이블의 모든 데이터 삭제
    • 방법 1
    • 방법 2
  • 3. 임시 테이블 생성
  • 4. 생성 외래 키 제약 조건
    • 6 MySQL의 일반적인 제약 조건
  • 5. 데이터베이스 사용자 관리
    • 1. 사용자 정보 보기
    • 3. 사용자 삭제.
    • 5. 현재 로그인 사용자 비밀번호 수정
    • 6. 다른 사용자의 비밀번호 수정
    • 7. 루트 비밀번호를 잊어버린 솔루션
    • 6. 데이터베이스 사용자 인증
  • 1. 권한 부여
  • 2 . 권한 보기
    • 3. 권한 취소
    고급 데이터 테이블 작업

준비: MySQL 데이터베이스 설치

Shell 스크립트 원클릭 배포 - MySQL 소스 코드 컴파일 및 설치

create database CLASS;
use CLASS;

create table TEST (id int not null,name char(20) 	not null,cardid varchar(18) not null unique 	key,primary key (id));

insert into TEST(id,name,cardid) values (1,'zhangsan','123123');

insert into TEST(id,name,cardid) values (2,'lisi','1231231');

insert into TEST(id,name,cardid) values (3,'wangwu','12312312');
select * from TEST;
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기 1. 테이블 복제


데이터 테이블의 데이터 레코드를 새 테이블로 생성

방법 1

例:create table TEST01 like TEST;
select * from TEST01;

desc TEST01;
insert into TEST01 select * from TEST;
select * from TEST01;
로그인 후 복사

방법 2MySQL 데이터베이스 고급 작업 살펴보기

例:create table TEST02 (select * from TEST);
select * from TEST02;
로그인 후 복사

둘째, 테이블을 지우고 테이블 DataMySQL 데이터베이스 고급 작업 살펴보기

Method 1

delete from TEST02;
로그인 후 복사

#DELETE 테이블을 지운 후 반환된 결과에는 삭제된 레코드 항목이 포함됩니다. DELETE는 작업 시 레코드 데이터를 행별로 삭제합니다. 테이블의 자동 증가 필드는 DELETE FROM을 사용합니다. 모든 레코드를 삭제한 후 새로 추가된 레코드는 원래 가장 큰 레코드 ID의 레코드를 계속 씁니다

例:create table if not exists TEST03 (id int primary 	key auto_increment,name varchar(20) not null,cardid varchar(18) not null unique key);
show tables;

insert into TEST03 (name,cardid) values ('zhangsan','11111');		
select * from TEST03;
delete from TEST03;

insert into TEST03 (name,cardid) values ('lisi','22222');
select * from TEST03;
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기

방법 2MySQL 데이터베이스 고급 작업 살펴보기

例:select * from TEST03;
truncate table TEST03;
insert into TEST03 (name,cardid) values ('wangwu','33333');
select * from TEST03;
로그인 후 복사

# TRUNCATE 테이블을 지운 후 삭제된 항목을 반환하지 않습니다. TRUNCATE가 작동하면 테이블 구조를 그대로 다시 설정하므로 TRUNCATE TABLE을 사용하여 테이블의 데이터를 지운 후 TRUNCATE가 테이블을 더 빨리 지웁니다. , ID는 1부터 다시 기록됩니다.

MySQL 데이터베이스 고급 작업 살펴보기 3. 임시 테이블 생성


임시 테이블이 성공적으로 생성된 후에는 SHOW TABLES 명령을 사용하여 생성된 임시 테이블을 볼 수 없습니다. 임시 테이블은 연결이 종료된 후에 삭제됩니다. 연결을 종료하기 전에는 DROP TABLE 문을 사용하여 수동으로 임시 테이블을 직접 삭제하는 등 추가, 삭제, 수정, 쿼리 등의 작업을 수행할 수도 있습니다.

CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

例:create temporary table TEST04 (id int not null,name varchar(20) not null,cardid varchar(18) not null unique key,primary key (id));
show tables;

insert into TEST04 values (1,'haha','12345');	
select * from TEST04;
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기4. 외래 키 제약 조건 만들기MySQL 데이터베이스 고급 작업 살펴보기

데이터 무결성 및 일관성 보장 외래 키 정의: 동일한 속성 필드 x가 테이블 1에서는 기본 키이고, 테이블 2에서는 기본 키인 경우 기본 키가 아닌 필드 x를 테이블 2의 외래 키라고 합니다.

기본키 테이블과 외래키 테이블의 이해:

1. 공통키워드가 기본키인 테이블이 기본키 테이블(부모테이블, 메인테이블)
2. 공통키워드가 외래키인 테이블 는 외래 키 테이블입니다(테이블, 모양)

참고: 외래 키와 연결된 마스터 테이블의 필드는 기본 키로 설정되어야 하며, 슬레이브 테이블은 마스터 및 테이블의 필드가 될 수 없습니다. 슬레이브 테이블의 데이터 유형, 문자 길이 및 제약 조건은 동일합니다. 여기에 설명되지 않은 외래 키 이름을 삭제하세요

例:create table TEST04 (hobid int(4),hobname varchar(50));
create table TEST05 (id int(4) primary key auto_increment,name varchar(50),age int(4),hobid int(4));

alter table TEST04 add constraint PK_hobid primary key(hobid);
alter table TEST05 add constraint FK_hobid foreign key(hobid) references TEST04(hobid);
로그인 후 복사

MySQL의 6가지 공통 제약 조건

主键约束 primary key
外键约束 foreign key
非空约束 not null
唯一约束 unique [key
默认值约束 default
自增约束 auto_increment

五、数据库用户管理

1、新建用户

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
로그인 후 복사

‘用户名’:指定将创建的用户名

‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%

‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;
------若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’;
------若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)

例:create user 'zhangsan'@'localhost' identified by '123123';
select password('123123');
create user 'lisi'@'localhost' identified by password '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1';
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기


2、查看用户信息

创建后的用户保存在 mysql 数据库的 user 表里

USE mysql;
SELECT User,authentication_string,Host from user;
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기

3、重命名用户

RENAME USER 'zhangsan'@'localhost' TO 'wangwu'@'localhost';
SELECT User,authentication_string,Host from user;
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기

4、删除用户

DROP USER 'lisi'@'localhost';
SELECT User,authentication_string,Host from user;
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기

5、修改当前登录用户密码

SET PASSWORD = PASSWORD('abc123');
quit
mysql -u root -p
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기

6、修改其他用户密码

SET PASSWORD FOR 'wangwu'@'localhost' = PASSWORD('abc123');
use mysql;
SELECT User,authentication_string,Host from user;
로그인 후 복사

7、忘记 root 密码的解决办法

1、修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql

vim /etc/my.cnf
[mysqld]
skip-grant-tables					#添加,使登录mysql不使用授权表
systemctl restart mysqld
mysql								#直接登录
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기
MySQL 데이터베이스 고급 작업 살펴보기

2、使用 update 修改 root 密码,刷新数据库

UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('112233') where user='root';
FLUSH PRIVILEGES;
quit

再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除,并重启 mysql 服务。
mysql -u root -p
112233
로그인 후 복사

MySQL 데이터베이스 고급 작업 살펴보기

六、数据库用户授权

1、授予权限

GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户;当指定的用户名存在时,GRANT 语句用于修改用户信息。

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];
로그인 후 복사

#权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。

#数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“*”。*例如,使用“kgc.*”表示授权操作的对象为 kgc数据库中的所有表。

#'用户名@来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP 地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.lic.com”、“192.168.184.%”等。

#IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分, 则用户的密码将为空。
로그인 후 복사

#允许用户wangwu在本地查询 CLASS 数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。

例:
GRANT select ON CLASS.* TO 'wangwu'@'localhost' IDENTIFIED BY '123456';
quit;
mysql -u wangwu -p
123456
show databases;
use information_schema;
show tables;
select * from INNODB_SYS_TABLESTATS;
로그인 후 복사

#允许用户wangwu在本地远程连接 mysql ,并拥有所有权限。

quit;
mysql -u root -p112233
GRANT ALL PRIVILEGES ON *.* TO 'wangwu'@'localhost' IDENTIFIED BY '123456';

flush privileges;
quit

mysql -u wangwu -p123456
create database SCHOOL;
로그인 후 복사

2、查看权限

SHOW GRANTS FOR 用户名@来源地址;

例:
SHOW GRANTS FOR 'wangwu'@'localhost';
로그인 후 복사

3、撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;

例:quit;
mysql -u root -p112233
SHOW GRANTS FOR 'wangwu'@'localhost';
REVOKE SELECT ON "CLASS".* FROM 'wangwu'@'localhost';

SHOW GRANTS FOR 'wangwu'@'localhost';
로그인 후 복사

#USAGE权限只能用于数据库登陆,不能执行任何操作;USAGE权限不能被回收,即 REVOKE 不能删除用户。

flush privileges;
로그인 후 복사

更多相关免费学习推荐:mysql教程(视频)

위 내용은 MySQL 데이터베이스 고급 작업 살펴보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MySQL : 세계에서 가장 인기있는 데이터베이스 소개 MySQL : 세계에서 가장 인기있는 데이터베이스 소개 Apr 12, 2025 am 12:18 AM

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템으로, 주로 데이터를 신속하고 안정적으로 저장하고 검색하는 데 사용됩니다. 작업 원칙에는 클라이언트 요청, 쿼리 해상도, 쿼리 실행 및 반환 결과가 포함됩니다. 사용의 예로는 테이블 작성, 데이터 삽입 및 쿼리 및 조인 작업과 같은 고급 기능이 포함됩니다. 일반적인 오류에는 SQL 구문, 데이터 유형 및 권한이 포함되며 최적화 제안에는 인덱스 사용, 최적화 된 쿼리 및 테이블 분할이 포함됩니다.

MySQL의 장소 : 데이터베이스 및 프로그래밍 MySQL의 장소 : 데이터베이스 및 프로그래밍 Apr 13, 2025 am 12:18 AM

데이터베이스 및 프로그래밍에서 MySQL의 위치는 매우 중요합니다. 다양한 응용 프로그램 시나리오에서 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) MySQL은 웹, 모바일 및 엔터프라이즈 레벨 시스템을 지원하는 효율적인 데이터 저장, 조직 및 검색 기능을 제공합니다. 2) 클라이언트 서버 아키텍처를 사용하고 여러 스토리지 엔진 및 인덱스 최적화를 지원합니다. 3) 기본 사용에는 테이블 작성 및 데이터 삽입이 포함되며 고급 사용에는 다중 테이블 조인 및 복잡한 쿼리가 포함됩니다. 4) SQL 구문 오류 및 성능 문제와 같은 자주 묻는 질문은 설명 명령 및 느린 쿼리 로그를 통해 디버깅 할 수 있습니다. 5) 성능 최적화 방법에는 인덱스의 합리적인 사용, 최적화 된 쿼리 및 캐시 사용이 포함됩니다. 모범 사례에는 거래 사용 및 준비된 체계가 포함됩니다

Apache의 데이터베이스에 연결하는 방법 Apache의 데이터베이스에 연결하는 방법 Apr 13, 2025 pm 01:03 PM

Apache는 데이터베이스에 연결하여 다음 단계가 필요합니다. 데이터베이스 드라이버 설치. 연결 풀을 만들려면 Web.xml 파일을 구성하십시오. JDBC 데이터 소스를 작성하고 연결 설정을 지정하십시오. JDBC API를 사용하여 Connections, 명세서 작성, 매개 변수 바인딩, 쿼리 또는 업데이트 실행 및 처리를 포함하여 Java 코드의 데이터베이스에 액세스하십시오.

MySQL을 사용하는 이유는 무엇입니까? 혜택과 장점 MySQL을 사용하는 이유는 무엇입니까? 혜택과 장점 Apr 12, 2025 am 12:17 AM

MySQL은 성능, 신뢰성, 사용 편의성 및 커뮤니티 지원을 위해 선택됩니다. 1.MYSQL은 효율적인 데이터 저장 및 검색 기능을 제공하여 여러 데이터 유형 및 고급 쿼리 작업을 지원합니다. 2. 고객-서버 아키텍처 및 다중 스토리지 엔진을 채택하여 트랜잭션 및 쿼리 최적화를 지원합니다. 3. 사용하기 쉽고 다양한 운영 체제 및 프로그래밍 언어를 지원합니다. 4. 강력한 지역 사회 지원을 받고 풍부한 자원과 솔루션을 제공합니다.

MySQL의 역할 : 웹 응용 프로그램의 데이터베이스 MySQL의 역할 : 웹 응용 프로그램의 데이터베이스 Apr 17, 2025 am 12:23 AM

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

Docker의 MySQL을 시작하는 방법 Docker의 MySQL을 시작하는 방법 Apr 15, 2025 pm 12:09 PM

Docker에서 MySQL을 시작하는 프로세스는 다음 단계로 구성됩니다. MySQL 이미지를 가져와 컨테이너를 작성하고 시작하고 루트 사용자 암호를 설정하고 포트 확인 연결을 매핑하고 데이터베이스를 작성하고 사용자는 데이터베이스에 모든 권한을 부여합니다.

LARAVEL 소개 예 LARAVEL 소개 예 Apr 18, 2025 pm 12:45 PM

Laravel은 웹 응용 프로그램을 쉽게 구축하기위한 PHP 프레임 워크입니다. 설치 : Composer를 사용하여 전 세계적으로 Laravel CLI를 설치하고 프로젝트 디렉토리에서 응용 프로그램을 작성하는 등 다양한 기능을 제공합니다. 라우팅 : Routes/Web.php에서 URL과 핸들러 간의 관계를 정의하십시오. 보기 : 리소스/뷰에서보기를 작성하여 응용 프로그램의 인터페이스를 렌더링합니다. 데이터베이스 통합 : MySQL과 같은 데이터베이스와 상자 외 통합을 제공하고 마이그레이션을 사용하여 테이블을 작성하고 수정합니다. 모델 및 컨트롤러 : 모델은 데이터베이스 엔티티를 나타내고 컨트롤러는 HTTP 요청을 처리합니다.

CentOS7에 MySQL을 설치하는 방법 7 CentOS7에 MySQL을 설치하는 방법 7 Apr 14, 2025 pm 08:30 PM

MySQL을 우아하게 설치하는 열쇠는 공식 MySQL 저장소를 추가하는 것입니다. 특정 단계는 다음과 같습니다. 피싱 공격을 방지하기 위해 MySQL 공식 GPG 키를 다운로드하십시오. MySQL 리포지토리 파일 추가 : rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum repository cache : yum 업데이트 설치 mysql : yum 설치 mysql-server startup startup mysql 서비스 : systemctl start mysqlctl start mysqlctl.

See all articles