Introdução aos fundamentos do banco de dados Mysql

Introdução aos fundamentos do banco de dados Mysql

1. Introdução ao banco de dados

1.1. Histórico de desenvolvimento do banco de dados

1.1.1. Desvantagens dos sistemas de gerenciamento de arquivos

  • Escrever aplicativos é inconveniente

  • A redundância de dados é inevitável

  • dependências de aplicativos

  • O acesso simultâneo a arquivos não é suportado

  • Conexão fraca entre dados

  • Dificuldade em representar dados na visualização do usuário

  • Nenhuma função de controle de segurança

1.1.2. Etapa de desenvolvimento do sistema de banco de dados

  • Em sua infância: sistemas de arquivos

    • Use arquivos de disco para armazenar dados
  • Estágio primário: banco de dados de primeira geração

    • Modelo de rede e bancos de dados de modelo hierárquico apareceram
  • Estágio intermediário: banco de dados de segunda geração

    • Bancos de dados relacionais e linguagens de consulta estruturada
  • Estágio avançado: banco de dados de nova geração

    • Banco de dados "objeto relacional"

1.3. Sistema de gerenciamento de banco de dados SGBD

  • Banco de dados: Banco de dados é uma coleção de dados armazenados em mídia de armazenamento em uma determinada forma organizacional.

  • SGBD: É um software de sistema que gerencia bancos de dados e implementa diversas funções do sistema de banco de dados. É o núcleo do sistema de banco de dados

  • DBA: Responsável pelo planejamento, design, coordenação, manutenção e gerenciamento de banco de dados

  • Aplicação: refere-se a uma aplicação baseada em um banco de dados

1.4. Vantagens dos sistemas de gerenciamento de banco de dados

  • Uma coleção de dados inter-relacionados

  • Menos redundância de dados

  • Programas e dados são independentes uns dos outros

  • Garanta a segurança e a confiabilidade dos dados

  • Maximize a precisão dos dados

  • Os dados podem ser usados ​​simultaneamente, garantindo consistência

1.5. Funções básicas do sistema de gerenciamento de banco de dados

  • definição de dados

  • processamento de dados

  • Segurança de dados

  • backup de dados

1.6. Arquitetura do sistema de banco de dados

  • Arquitetura autônoma

  • Arquitetura de Mainframe/Terminal

  • Arquitetura mestre-escravo (C/S)

  • Arquitetura distribuída

1.7. Vários sistemas de gerenciamento de banco de dados

1.7.1. Banco de dados hierárquico

Insira a descrição da imagem aqui

1.7.2. Banco de dados de rede

Insira a descrição da imagem aqui

1.7.3, banco de dados relacional RDBMS

Sistema de gerenciamento de banco de dados relacional, o modelo relacional foi originalmente descrito por Edgar F. Codd, um cientista da computação britânico da IBM,
em 1969. Em 1974, a IBM começou a desenvolver o System R, um projeto de pesquisa para desenvolver um protótipo de RDBMS. No entanto, o primeiro RDBMS disponível comercialmente foi o Oracle, lançado em 1979 pela Relational Software (agora Oracle Corporation).

1.7.3.1 Conceitos relacionados ao banco de dados do sistema
  • Relacional: Um relacionamento é uma tabela bidimensional, onde a ordem das linhas e colunas da tabela não é importante.

  • Linha: cada linha da tabela, também chamada de registro

  • Coluna: cada coluna da tabela é chamada de atributo, campo ou campo

  • Chave primária: PK, um campo usado para determinar exclusivamente um registro. Uma tabela possui apenas uma chave primária.

  • Domínio do domínio: a faixa de valores do atributo. Por exemplo, o gênero só pode ter dois valores: 'masculino' e 'feminino', e a idade humana só pode ser de 0 a 150 anos.

1.7.3.2. Bancos de dados relacionais comumente usados

MySQL: MySQL, MariaDB, servidor Percona

PostgreSQL: pgsql para abreviar, EnterpriseDB

1.7.3.3. Classificação do banco de dados

https://db-engines.com/en/ranking

1.8. Teoria do banco de dados relacional

1.8.1. Modelo de contato de entidade ER

Entidade : Coisas objetivas ou eventos abstratos que existem objetivamente e podem ser distinguidos uns dos outros são chamados de entidades.No diagrama ER, uma caixa retangular é usada para representar a entidade, e o nome da entidade é escrito na caixa.

Atributos : características ou propriedades de uma entidade

Conexão : Uma conexão é uma coleção de associações entre dados e uma cadeia semântica de aplicativo existente objetivamente.

• Relacionamento dentro de uma entidade: refere-se ao relacionamento entre os atributos que compõem a entidade. Por exemplo, na entidade funcionário, existe uma relação entre o número do funcionário e o número do gerente do departamento.

• Relacionamento entre entidades: refere-se ao relacionamento entre diferentes entidades. Exemplo: entre a entidade de seleção de cursos estudantis e a entidade de informação básica do aluno

• O relacionamento entre entidades é representado por uma caixa de losango
1.8.2 Tipo de contato
Contato um para um (1:1)

Relacionamento um-para-muitos (1:n): chave estrangeira

Relacionamento muitos para muitos (m:n): adicione uma terceira tabela

1.8.3. Operações de dados

  • Extração de dados : Extraia conteúdo interessante de uma coleta de dados. SELECIONAR

  • Atualização de dados**: Altere os dados no banco de dados. INSERIR, EXCLUIR, ATUALIZAR

1.8.4. Processo de planejamento de banco de dados

1. Colete dados e obtenha campos
2. Colete itens de dados necessários e completos
3. Converta em campos da tabela de dados

2. Bancos de dados relacionais e bancos de dados não relacionais

1) Descreva o banco de dados relacional do sistema de banco de dados principal: Mysql (Oracle), SQL server (Microsoft), access (produto de escritório da Microsoft) Oracle, DB2 (IBM), sybase (sybase),
etc. -bancos de dados relacionais e bancos de dados relacionais: A estrutura do banco de dados relacional é uma tabela de banco de dados bidimensional. Cada campo (coluna) na tabela bidimensional é usado para descrever um atributo do objeto, e cada registro (linha) é usado para descrever as informações de um objeto (informações completas), onde quer que o banco de dados relacional seja gravado, ele será armazenado no disco rígido, e o sistema de leitura e gravação estará sujeito a restrições ou gargalos de IO. Vantagens
:

1. Formato flexível: O formato para armazenamento de dados pode ser em chave, formato de valor, formato de documento, formato de imagem, etc. É flexível de usar e possui uma ampla gama de cenários de aplicação, enquanto os bancos de dados relacionais suportam apenas tipos básicos.
2. Velocidade rápida: NoSQL pode usar disco rígido ou memória de acesso aleatório como portador, enquanto o banco de dados relacional só pode usar disco rígido;
3. Alta escalabilidade e alta disponibilidade;
4. Baixo custo: o banco de dados NoSQL é fácil de implantar e é basicamente aberto software de origem.

Desvantagens:
1. Não fornece suporte sql e os custos de aprendizado e uso são altos;
2. Nenhum processamento de transações;
3. A estrutura de dados é relativamente complexa e faltam consultas complexas.
3. Conceitos básicos de banco de dados

2.1. A necessidade de utilização de um banco de dados

O uso de um banco de dados pode armazenar dados de forma eficiente e clara, permitindo que as pessoas gerenciem os dados de forma mais rápida e conveniente. O banco de dados possui as seguintes características.

  • Uma grande quantidade de informações de dados pode ser armazenada de maneira estruturada para facilitar a recuperação e o acesso eficazes pelos usuários.

  • Ele pode efetivamente manter a consistência e integridade das informações dos dados e reduzir a redundância dos dados.

  • Pode atender aos requisitos de compartilhamento e segurança de aplicativos.

  • A tecnologia de banco de dados é uma das principais tecnologias da ciência da computação e possui uma base teórica completa. Dominar os conceitos básicos de banco de dados ajudará você a entendê-lo.

2.2. Conceitos básicos de banco de dados

2.2.1, Dados (Dados)

  • Registros simbólicos que descrevem coisas

  • Incluindo números, texto, gráficos, imagens, sons, registros de arquivos, etc.

  • Armazenado em formato unificado na forma de "registros"

2.2.2, tabela

  • Organize registros diferentes juntos

  • Usado para armazenar dados específicos

2.2.3. Banco de dados

  • Uma coleção de tabelas é um armazém que armazena dados

  • Uma coleção de dados relacionados armazenados de maneira organizada

3. Instalação do MySQL


Programa cliente MySQL

  • mysql: ferramenta CLI interativa

  • mysqladmin: gerencia o mysqld com base no protocolo mysql

  • mysqlimport: ferramenta de importação de dados

  • Ferramentas de gerenciamento para mecanismo de armazenamento MyISAM:

  • myisamchk: Verifique a biblioteca MyISAM

  • myisampack: Pacote de tabelas MyISAM, somente leitura

Programa do lado do servidor

  • mysqld_safe

  • mysqld

  • múltiplas instâncias do mysqld_multi, exemplo: mysqld_multi

[root@localhost ~]#yum info mariadb
可安装的软件包
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
可安装的软件包
名称    :mariadb
架构    :x86_64
时期       :1
版本    :5.5.56
发布    :2.el7
大小    :8.7 M
源    :yum
简介    : A community developed branch of MySQL
网址    :http://mariadb.org
协议    : GPLv2 with exceptions and LGPLv2 and BSD
描述    : MariaDB is a community developed branch of
         : MySQL. MariaDB is a multi-user,
         : multi-threaded SQL database server. It is a
         : client/server implementation consisting of
         : a server daemon (mysqld) and many different
         : client programs and libraries. The base
         : package contains the standard MariaDB/MySQL
         : client programs and generic MySQL files.
 
MySQL被Sun收购后,搞了个过渡的6.0版本,没多久就下线了,后来被Oracle收购后,终于迎来了像样的5.6
版本,之后就是5.7、8.0版本。由于6.0版本号已被用过,7.x系列版本专用于NDB Cluster,因而新版本
号从8.0开始。

3.1. Método 1: Compilar e instalar

1. #安装依赖包并解压下载的mysql
yum install -y ncurses-devel autoconf cmake
tar zxf mysql-5.6.26.tar.gz 
 
2. #编译安装
cd mysql-5.6.26/
 
###编译###
cmake  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
 
###安装###
make && make install -j4
 
3. #拷贝文件,并授权
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld 
chkconfig --add /etc/init.d/mysqld
chkconfig  mysqld --level 35 on
 
4. #设置环境变量,申明/宣告mysql命令便于系统识别
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
echo $PATH
 
5. #创建普通用户管理mysql
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
 
 
6. #初始化初始化数据库
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
 
7. #修改配置文件
vim /etc/init.d/mysqld 
 
##修改46,47行
basedir=/usr/local/mysql
datadir=/home/mysql
 
8. #启动mysql
service mysqld start
ss -ntap|grep "3306"
 
9. #登录及登出mysql
##给root账号设置密码
mysqladmin -u root -p password "123123"
##登录mysql
mysql -u root -p
##登出mysql
mysql> exit
Bye

Instale pacotes de dependência e descompacte a
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
compilação
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
e instalação do mysql baixada. Copie os arquivos e autorize-os
Insira a descrição da imagem aqui
. Defina variáveis ​​de ambiente e declare/declare comandos mysql para facilitar a identificação do sistema.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Crie um usuário comum para gerenciar a inicialização do mysql
Insira a descrição da imagem aqui
e inicializar o banco de dados.
Insira a descrição da imagem aqui
Modifique o arquivo de configuração .
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Inicie
Insira a descrição da imagem aqui
o login do mysql e efetue logout do mysql.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

3.2. Método 2: Instale a versão 5.7 com yum



1. #创建mysql源
cd /etc/yum.repos.d/
vim mysql.repo
[mysql]
name=mysql5.7
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
gpgcheck=0
 
2. #安装服务mysql-community-server
yum -y install mysql-community-server
 
3. #启动服务
systemctl start mysqld
ss -ntap |grep 3306
 
4. #登入数据库,但是密码是默认的,需要查看
mysql -u root -p
grep password /var/log/mysqld.log
mysql -u root -p'+8saq%5+ljzG'
#特殊符号用单引号引起来
 
5. #登入数据库后必须修改密码
status
alter user root@'localhost' identified by 'Yxp15@2021';
 
#可以使用mysql> \h查看帮助

``
Instalar e iniciar

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Inicie o serviço
Insira a descrição da imagem aqui
e faça login no banco de dados, mas a senha é padrão e precisa ser verificada.
Insira a descrição da imagem aqui
A senha deve ser alterada após o login no banco de dados.
Insira a descrição da imagem aqui

4. Múltiplas instâncias

4.1. Introdução de múltiplas instâncias

  • O que são múltiplas instâncias de banco de dados

Multi-instância é semelhante ao WeChat dual-open, o número da porta é como uma conta WeChat, o banco de dados é como uma janela de bate-papo e a tabela é como um registro de bate-papo. A multi-instância MySQL serve para abrir várias portas de serviço diferentes (como: 3306 , 3307, etc.) em um servidor ao mesmo tempo e executa vários servidores ao mesmo tempo. Um processo de serviço MySQL, esses processos de serviço escutam diferentes portas de serviço através de diferentes soquetes para fornecer serviços. Múltiplas instâncias podem ser versões diferentes do MySQL ou podem ser a mesma versão do MySQL.

  • Benefícios de múltiplas instâncias

Os recursos do servidor podem ser utilizados de forma eficiente. Quando um único servidor possui recursos excedentes, os recursos restantes podem ser totalmente utilizados para fornecer mais serviços e o isolamento lógico dos recursos pode ser alcançado para economizar recursos do servidor. Por exemplo, os recursos de servidor da empresa são escassos, mas os bancos de dados precisam fornecer serviços da forma mais independente possível e também precisam de tecnologias como replicação mestre-escravo. Multi-instâncias são a melhor escolha.

  • Desvantagens de múltiplas instâncias
    : Existe o problema de preempção de recursos. Por exemplo: quando uma instância de banco de dados tem alta simultaneidade ou consultas SQL lentas, toda a instância consumirá uma grande quantidade de CPU, E/S de disco e outros recursos, fazendo com que a qualidade dos serviços fornecidos por outras instâncias de banco de dados no servidor também diminua. , tão específico As necessidades devem ser determinadas de acordo com sua situação real.

4.2. Exemplos de múltiplas instâncias

1. #安装mariadb-server并启动登入系统
yum -y install mariadb-server
systemctl start mariadb.service
 
#一路回车,并设置密码
mysql_secure_installation 
 
#登入系统
mysql -u root -p123123
 
 
 
2. #创建目录和文件夹
mkdir -pv /mysql/{
    
    3306,3307,3308}/{
    
    data,etc,socket,log,bin,pid}
 
3. #设置属主属组
 chown -R mysql.mysql /mysql
 tree -d /mysql/
 
 4. #初始化数据库
 mysql_install_db --user=mysql --datadir=/mysql/3306/data
 mysql_install_db --user=mysql --datadir=/mysql/3307/data
 mysql_install_db --user=mysql --datadir=/mysql/3308/data
 
 5. #编辑配置文件
vim /mysql/3306/etc/my.cnf 
[mysqld]
port=3306
datadir=/mysql/3306/data
socket=/mysql/3306/socket/mysql.sock
log-error=/mysql/3306/log/mysql.log
pid-file=/mysql/3306/pid/mysql.pid
 
6. #修改3307和3308配置文件
sed 's/3306/3307/' /mysql/3306/etc/my.cnf > /mysql/3307/etc/my.cnf
 
sed 's/3306/3308/' /mysql/3306/etc/my.cnf > 
/mysql/3308/etc/my.cnf
 
 
7. #准备启动脚本
vim /mysql/3306/bin/mysqld
#!/bin/bash
 
port=3306
mysql_user="root"
mysql_pwd=""
cmd_path="/usr/bin"
mysql_basedir="/mysql"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
 
function_start_mysql()
{
    
    
    if [ ! -e "$mysql_sock" ];then
      printf "Starting MySQL...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &
    else
      printf "MySQL is running...\n"
      exit
    fi
}
 
 
function_stop_mysql()
{
    
    
    if [ ! -e "$mysql_sock" ];then
       printf "MySQL is stopped...\n"
       exit
    else
       printf "Stoping MySQL...\n"
       ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
   fi
}
 
 
function_restart_mysql()
{
    
    
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 2
    function_start_mysql
}
 
case $1 in
start)
    function_start_mysql
;;
stop)
    function_stop_mysql
;;
restart)
    function_restart_mysql
;;
*)
    printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac
 
8. #重复上述过程,分别建立3307,3308的启动脚本
 
9. #授权并启动服务
chmod +x /mysql/3306/bin/mysqld 
chmod +x /mysql/3307/bin/mysqld 
chmod +x /mysql/3308/bin/mysqld 
 
/mysql/3306/bin/mysqld start
/mysql/3307/bin/mysqld start
/mysql/3308/bin/mysqld start
 
#查看有没有启动成功
ss -natp|grep 33
 
 
10. #怎么看mysql这个进程是不是超线程
1)#找到mysql进程号
pstree -p
2)#查看,5450就是查看的进程号
cat /proc/5450/status |grep Threads
 
11. #登入mysql
#示例
mysql -h127.0.0.1 -P3308
 
12. #怎么杀掉这个进程,示例
/mysql/3308/bin/mysqld stop
 
13. #修改密码示例
mysqladmin -uroot -S /mysql/3306/socket/mysql.sock password  
'123123' 
 
14. #设置开机启动
vim /etc/rc.d/rc.local
for i in {
    
    3306..3308};do /mysql/$i/bin/mysqld start;done
 
chmod +x /etc/rc.d/rc.local
 
开机后
bash /etc/rc.d/rc.local 

Instale o servidor mariadb

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Criar diretórios e pastas
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Inicializar banco de dados

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Edite o arquivo de configuração.
Insira a descrição da imagem aqui
Modifique os arquivos de configuração 3307 e 3308.
Insira a descrição da imagem aqui
Prepare o script de inicialização
Insira a descrição da imagem aqui
. Repita o processo acima para criar scripts de inicialização para 3307 e 3308.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Autorize e inicie o serviço.

Insira a descrição da imagem aqui
Como verificar se o processo mysql é hiper-threaded? Como matar esse processo
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
após fazer login no mysql ?
Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

5. Instale plug-ins para que os comandos SQL possam ser concluídos quando usados.

1. #安装插件
yum install -y libffi-devel
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
 
2. #将php包导入/opt下,解压安装php
cd /opt/
tar zxvf Python-3.7.7_.tgz
##编译
cd Python-3.7.7/
./configure --prefix=/usr/local/Python-3.7.7/
 
##安装
make && make install
 
##做软连接
ln -s  /usr/local/Python-3.7.7/bin/python3.7  /usr/bin/python37
ln -s /usr/local/Python-3.7.7/bin/pip3.7 /usr/bin/pip37
pip37 install mycli -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
ln -s /usr/local/Python-3.7.7/bin/mycli /usr/bin/mycli
 
3. #登录
mycli -u root -p 123123
 
 
####如果不装插件
[root@localhost ~]#vim /etc/my.cnf                       
[mysql]
prompt=(\\u@\\h) [\\d]>\\_
 
auto-rehash

Instale o plug-in.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Importe o pacote php em /opt, descompacte e instale o php
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
para fazer uma conexão suave.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Faça login
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

6. Operações básicas de banco de dados

6.1. Classificação SQL

  • Banco de dados: banco de dados

  • Tabela: tabela, linha: linha coluna: coluna

  • Índice: índice

  • Ver: ver

  • Procedimento armazenado: procedimento

  • Função armazenada: função

  • Gatilho: gatilho

  • Agendador de eventos: agendador de eventos, plano de tarefas

  • Usuário: usuário

  • Permissões:privilégio

6.2. Especificação da linguagem SQL

  • No sistema de banco de dados, as instruções SQL não diferenciam maiúsculas de minúsculas. Recomenda-se o uso de letras maiúsculas.

  • As instruções SQL podem ser escritas em uma única linha ou em várias linhas e terminar com ";" por padrão

  • As palavras-chave não podem abranger várias linhas ou abreviações

  • Use espaços e recuo TAB para melhorar a legibilidade das instruções

  • As cláusulas geralmente estão em linhas separadas para facilitar a edição e melhorar a legibilidade

Objetos de banco de dados e nomenclatura
Componentes de banco de dados (objetos):
bancos de dados, tabelas, índices, visualizações, usuários, procedimentos armazenados, funções, gatilhos, agendadores de eventos, etc.

Regras de nomenclatura:
deve começar com uma letra, podendo incluir letras, números e três caracteres especiais (# _ $).
Não usar palavras reservadas do MySQL, como seleção de tabela, mostrar bancos de dados,
classificação de instruções SQL

  • DDL: Linguagem de definição de dados

CRIAR, SOLTAR, ALTERAR

  • DML: Linguagem de Manipulação de Dados

Desenvolvimento de software INSERT, DELETE, UPDATE
: CRUD

  • DQL: Linguagem de consulta de dados linguagem de consulta de dados

SELECIONAR

  • DCL: linguagem de controle de dados de linguagem de controle de dados

CONCEDER, REVOGAR

  • TCL: Linguagem de controle de transação Linguagem de controle de transação

COMMIT,ROLLBACK,SAVEPOINT

#DDL: Data Defination Language 数据定义语言
CREATE,DROP,ALTER
 
#DML: Data Manipulation Language 数据操纵语言
INSERT,DELETE,UPDATE
 
#DQL:Data Query Language 数据查询语言
SELECT 
 
 
#DCL:Data Control Language 数据控制语言
GRANT,REVOKE,COMMIT,ROLLBACK
 
 
SELECT *                 #SELECT子句
FROM products             #FROM子句
WHERE price>666         #WHERE子句

6.3. Visualizar informações de ajuda

mysql> help create
#help 后面跟上具体命令可以查看帮助
Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following
topics:
   CREATE DATABASE
   CREATE EVENT
   CREATE FUNCTION
   CREATE FUNCTION UDF
   CREATE INDEX
   CREATE LOGFILE GROUP
   CREATE PROCEDURE
   CREATE SERVER
   CREATE TABLE
   CREATE TABLESPACE
   CREATE TRIGGER
   CREATE USER
   CREATE VIEW
   SHOW
   SHOW CREATE DATABASE
   SHOW CREATE EVENT
   SHOW CREATE FUNCTION
   SHOW CREATE PROCEDURE
   SHOW CREATE TABLE
   SHOW CREATE USER
   SPATIAL
   
   
 ##也可以进一步
 mysql> help create DATABASE \G

6.4. Visualizar conjuntos de caracteres suportados

show charset;
#查看支持字符集
默认拉丁文字
 
utf8     | UTF-8 Unicode   
#阉割版的
 
utf8mb4  | UTF-8 Unicode 
#真实的版本
 
我们编译安装已经修改过了

6.5. Ver tabela e usar tabela

mysql> show databases;
#查看当前数据库
 
 
mysql> use mysql;
#使用 mysql表
 
 
MySQL root@localhost:school> select * form  yxp;
#查看yxp表格的

6.6. Banco de dados de gerenciamento

6.6.1. Criar banco de dados

CREATE DATABASE|SCHEMA [IF NOT EXISTS] 'DB_NAME'
CHARACTER SET 'character set name'
COLLATE 'collate name';
 
#创建数据库
create database dbb1;
 
#创建的时候指定语言
create database db3 charset=utf8;
 
 
#查看创建的数据库
show create  database dbb1;
 
#加的数据位置
cd /usr/local/mysql/data/test/

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

6.6.2. Modificar banco de dados

ALTER DATABASE DB_NAME character set utf8;

Insira a descrição da imagem aqui

6.6.3. Excluir banco de dados

DROP DATABASE|SCHEMA [IF EXISTS] 'DB_NAME';
 
例如
drop database dbb1;

Insira a descrição da imagem aqui

6.6.4. Ver lista de banco de dados

SHOW DATABASES;
 
例如:
show databases;

Insira a descrição da imagem aqui

6.6.5. Verifique o status atual do diretório

 system ls

Insira a descrição da imagem aqui

6.6.6. Ver nome do host

 system hostname

Insira a descrição da imagem aqui

6.6.7. Visualizar informações da versão atual do banco de dados

mysql -V

Insira a descrição da imagem aqui

7. Tipo de dados

tipo de dados:

Como são os dados?

Quanto espaço os dados precisam armazenar?

tipo de dados

Tipos de dados integrados do sistema

tipo de dados definido pelo usuário

MySQL suporta vários tipos de dados integrados**

Tipo numérico

tipo de data/hora

Tipo de string (caractere)

Link de referência de tipo de dados

https://dev.mysql.com/doc/refman/8.0/en/data-types.html

Escolher o tipo de dados certo é fundamental para alcançar alto desempenho. Três princípios:

1. Menor geralmente é melhor. Tente usar o menor tipo de dados que possa armazenar dados corretamente.
2. Simples é bom. Operações em tipos de dados simples geralmente requerem menos ciclos de CPU.
3. Tente evitar NULL e colunas contendo NULL. MySQL é mais difícil de otimizar

7.1. Tipo inteiro

tinyint(m) intervalo de 1 byte (-128~127)

smallint(m) intervalo de 2 bytes (-32768~32767)

mediumint(m) intervalo de 3 bytes (-8388608~8388607)

int(m) intervalo de 4 bytes (-2147483648~2147483647)

bigint(m) intervalo de 8 bytes (±9,22*10 elevado à 18ª potência)

Se o tipo de dados acima for adicionado com o modificador sem sinal, o valor máximo será duplicado.

Por exemplo: o intervalo de valores de tinyint unsigned é (0~255)

7.2. Tipo de ponto flutuante (float e double), valor aproximado

float(m,d) tipo de ponto flutuante de precisão simples com precisão de 8 bits (4 bytes) m número total, d casas decimais, nota: o ponto decimal não ocupa o número total double(m,d) precisão dupla tipo de ponto flutuante com precisão de 16 bits (8 bytes) m número total, d casas decimais, observação: o ponto decimal não ocupa o número total. Suponha que um campo seja definido
como float (6, 3). Se for um número 123.45678 é inserido, o banco de dados real armazena 123.457, mas o número total Count em retorno

A situação real prevalecerá, ou seja, 6 dígitos

7.3, Número de pontos fixos

O valor exato é armazenado no banco de dados e como decimal.

O formato decimal(m,d) representa até m dígitos, incluindo d decimais, e o ponto decimal não está incluído no comprimento.

Por exemplo: DECIMAL(6,2) pode armazenar um total de 6 dígitos, os últimos 2 dígitos são decimais e o valor máximo do campo é 9999,99 (o ponto decimal não está incluído no comprimento)

O parâmetro m<65 é o número total, d<30 e d<m é a casa decimal

MySQL 5.0 e posterior empacotam números em uma string binária (9 números por 4 bytes).

Por exemplo: decimal(18,9) irá armazenar 9 números em ambos os lados da vírgula decimal, utilizando um total de 9 bytes: dentre eles, 4 são utilizados para os 9 números antes da vírgula decimal.

Bytes, os 9 dígitos após a vírgula decimal usam 4 bytes, e a própria vírgula decimal ocupa 1 byte

Os tipos de ponto flutuante geralmente usam menos espaço que os decimais ao armazenar o mesmo intervalo de valores. float usa 4 bytes para armazenamento. duplo ocupado

8 bytes

Devido ao espaço extra e à sobrecarga computacional, você deve tentar realizar apenas cálculos exatos em decimais.

7.4, string (char, varchar, texto)

char(n) comprimento fixo, até 255 caracteres, observe, não bytes

varchar(n) comprimento variável, até 65.535 caracteres

comprimento variável tinytext, até 255 caracteres

comprimento variável de texto, até 65.535 caracteres

comprimento variável de texto médio, até 2 elevado à 24ª potência - 1 caractere

comprimento variável de texto longo, até 2 elevado à 32ª potência - 1 caractere

BINARY(M) comprimento fixo, pode armazenar binários ou caracteres, comprimento é 0-M bytes

VARBINARY(M) comprimento variável, pode armazenar binários ou caracteres, comprimento permitido é 0-M bytes

Tipos integrados: enumeração ENUM, coleção SET

Comparação de char e varchar:

Acho que você gosta

Origin blog.csdn.net/fyb012811/article/details/132949925
Recomendado
Clasificación