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.3. Sistema de gerenciamento de banco de dados SGBD
- 1.4. Vantagens dos sistemas de gerenciamento de banco de dados
- 1.5. Funções básicas do sistema de gerenciamento de banco de dados
- 1.6. Arquitetura do sistema de banco de dados
- 1.7. Vários sistemas de gerenciamento de banco de dados
- 1.8. Teoria do banco de dados relacional
- 2. Bancos de dados relacionais e bancos de dados não relacionais
- 3. Instalação do MySQL
- 4. Múltiplas instâncias
- 5. Instale plug-ins para que os comandos SQL possam ser concluídos quando usados.
- 6. Operações básicas de banco de dados
- 7. Tipo de dados
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
1.7.2. Banco de dados de rede
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
compilação
e instalação do mysql baixada. Copie os arquivos e autorize-os
. Defina variáveis de ambiente e declare/declare comandos mysql para facilitar a identificação do sistema.
Crie um usuário comum para gerenciar a inicialização do mysql
e inicializar o banco de dados.
Modifique o arquivo de configuração .
Inicie
o login do mysql e efetue logout do mysql.
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
Inicie o serviço
e faça login no banco de dados, mas a senha é padrão e precisa ser verificada.
A senha deve ser alterada após o login no banco de dados.
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
Criar diretórios e pastas
Inicializar banco de dados
Edite o arquivo de configuração.
Modifique os arquivos de configuração 3307 e 3308.
Prepare o script de inicialização
. Repita o processo acima para criar scripts de inicialização para 3307 e 3308.
Autorize e inicie o serviço.
Como verificar se o processo mysql é hiper-threaded? Como matar esse processo
após fazer login no mysql ?
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.
Importe o pacote php em /opt, descompacte e instale o php
para fazer uma conexão suave.
Faça login
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/
6.6.2. Modificar banco de dados
ALTER DATABASE DB_NAME character set utf8;
6.6.3. Excluir banco de dados
DROP DATABASE|SCHEMA [IF EXISTS] 'DB_NAME';
例如
drop database dbb1;
6.6.4. Ver lista de banco de dados
SHOW DATABASES;
例如:
show databases;
6.6.5. Verifique o status atual do diretório
system ls
6.6.6. Ver nome do host
system hostname
6.6.7. Visualizar informações da versão atual do banco de dados
mysql -V
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: