Operações de tabela
Conteúdo da coluna :
Contribuições de código aberto :
Página inicial pessoal : Minha página inicial
Comunidade de gerenciamento : Banco de dados de código aberto
Lema: Quando o céu está forte, um cavalheiro se esforça para se aprimorar; quando o terreno é bom, um cavalheiro carrega grandes virtudes.
Série de artigos
- Começando
- infraestrutura postgrersql
- Rápido de usar
- Inicialize o cluster
- Gerenciamento de serviço de banco de dados
- uso do cliente psql
- Cliente gráfico pgAdmin
- Uso de banco de dados
- Criar banco de dados
- Operações de banco de dados
- uso da tabela
- Criação de tabela
- Operações de tabela
- consulta de dados
- consulta de dados
- Consulta conjunta de múltiplas tabelas
Diretório de artigos
Prefácio
O banco de dados postgresql é um dado relacional geral comparável aos dados comerciais em bancos de dados de código aberto e está se tornando cada vez mais popular na indústria.
Por ser um banco de dados de código aberto, ele não apenas divulga o código-fonte, mas também possui muitos casos de uso e plug-ins fáceis de usar, tornando-se gradativamente o pioneiro e o padrão dos bancos de dados. Através do postgresql, você pode completamente compreendê-lo desde o uso até os princípios;
Se você está aprendendo programação, também pode aprender uma riqueza de conhecimentos de programação, estruturas de dados e habilidades de programação.Existem também muitos projetos arquitetônicos requintados, ideias em camadas e ideias que podem ser personalizadas com flexibilidade.
Esta coluna apresenta principalmente o uso básico do postgresql, manutenção e gerenciamento de banco de dados. Por meio desses usos, você pode entender os princípios do banco de dados e entender lentamente que tipo de banco de dados postgresql é, o que ele pode fazer e como fornecer bons serviços. O mais importante é que esse conhecimento esteja todo na entrevista. Itens obrigatórios.
Visão geral
O artigo anterior compartilhou o conteúdo relevante da criação de uma tabela. A tabela também possui muitos atributos. Se esses atributos estiverem errados ao criá-la, preciso excluir a tabela e tentar novamente?
Este artigo o guiará pelas várias operações da tabela a partir dos seguintes aspectos: No desenvolvimento e manutenção normais do banco de dados, não há necessidade de pedir ajuda a outras pessoas.
- Ver estrutura da tabela
- Consultar dados
- Inserir dados
- excluir dados
- Modificar campos da tabela
- Adicionar e excluir campos da tabela
- Renomear tabela
- Excluir tabela
- OID da tabela de pesquisa
Ver estrutura da tabela
Quando usamos uma tabela, também precisamos saber a estrutura de definição da tabela, quais campos existem e os tipos de campos, se existem chaves primárias, chaves estrangeiras, etc.;
Caso a tabela não seja criada por nós mesmos, podemos consultar a estrutura da tabela no banco de dados,
abaixo utilizamos o psql que vem com a instalação como cliente para operar;
Primeiro faça login no banco de dados, vemos que já existem duas tabelas no estágio inicial;
[senllang@hatch bin]$ ./psql -d db_factory2 -U hr
WARNING: permission denied to set role "vp3"
psql (16beta1)
Type "help" for help.
db_factory2=> \d
List of relations
Schema | Name | Type | Owner
--------+---------------------------+----------+-------
public | company | table | hr
public | employees | table | hr
public | employees_employee_id_seq | sequence | hr
(3 rows)
db_factory2=>
A seguir, dê uma olhada na estrutura dessas duas tabelas e tente verificar a consulta e inserir os dados;
db_factory2=> \d company
Table "public.company"
Column | Type | Collation | Nullable | Default
---------+---------------+-----------+----------+---------
id | integer | | not null |
name | text | | not null |
age | integer | | not null |
address | character(50) | | |
salary | real | | |
Indexes:
"company_pkey" PRIMARY KEY, btree (id)
Você pode ver que company
as informações desta tabela são exibidas em forma de tabela, a primeira coluna é o histórico do campo, a segunda coluna é a classe, seguida das restrições e valores padrão;
Você pode ver que existem cinco campos. id
O campo é a chave primária, que também é um índice. O tipo de índice btree é usado por padrão e há restrições não nulas; address
o comprimento do campo é 50;
Consultar dados
Vamos ver se há dados na tabela. Você pode verificar por campo aqui ou pode *
usá substituir todos os campos;
db_factory2=> select * from company;
id | name | age | address | salary
----+------+-----+---------+--------
(0 rows)
db_factory2=> select id from company ;
id
----
(0 rows)
Ainda não há dados na tabela;
Inserir dados
Para inserir dados, usamos instruções SQL padrão. Se cada campo tiver um valor, o nome do campo pode ser omitido e cada campo será mapeado para cada campo de acordo com a ordem dos valores durante a análise;
db_factory2=> insert into company (id,name,age,address,salary) values(1,'hongxing',8,'shangdong',4.8),(2,'dongfeng',20,'shenyang',10.22);
INSERT 0 2
db_factory2=> select * from company;
id | name | age | address | salary
----+----------+-----+----------------------------------------------------+--------
1 | hongxing | 8 | shangdong | 4.8
2 | dongfeng | 20 | shenyang | 10.22
(2 rows)
Dois dados são inseridos ao mesmo tempo, values
seguidos por vários campos de valor, para que vários itens possam ser inseridos.No entanto, o número de valores de campo no campo de valor deve ser o mesmo, caso contrário, o analisador não será capaz de alinhe-o aos campos da tabela;
Modificar campos
Para modificar os campos de uma tabela existente, você pode alterar o nome e o tipo do campo;
Tipo de modificação
db_factory2=> alter table company alter column name type varchar(255);
ALTER TABLE
db_factory2=> \d company
Table "public.company"
Column | Type | Collation | Nullable | Default
---------+------------------------+-----------+----------+---------
id | integer | | not null |
name | character varying(255) | | not null |
age | integer | | not null |
address | character(50) | | |
salary | real | | |
Indexes:
"company_pkey" PRIMARY KEY, btree (id)
Altere name
o comprimento do tipo de campo de ilimitado para 255 caracteres;
Ao modificar tipos, observe que nem todos os tipos podem ser modificados arbitrariamente. O tipo modificado deve ser compatível com o tipo anterior e é melhor evitar perda de dados;
Modificar nome do campo
Depois de definida a mesa, o patrão fala que o nome não está bom, então ele tem que modificá-lo, você pode fazer assim;
db_factory2=> alter table company rename age TO founded;
ALTER TABLE
db_factory2=> \d company
Table "public.company"
Column | Type | Collation | Nullable | Default
---------+------------------------+-----------+----------+---------
id | integer | | not null |
name | character varying(255) | | not null |
founded | integer | | not null |
address | character(50) | | |
salary | real | | |
Indexes:
"company_pkey" PRIMARY KEY, btree (id)
Adicionar e remover campos
age
Embora tenha sido alterado para a data de estabelecimento acima founded
, o tipo não pode ser alterado com sucesso; Então isto. . .
db_factory2=> alter table company alter column founded type timestamp without time zone;
ERROR: column "founded" cannot be cast automatically to type timestamp without time zone
HINT: You might need to specify "USING founded::timestamp without time zone".
Nota : Você precisa fazer backup dos dados antes de fazer as seguintes operações, caso contrário os dados serão perdidos;
neste caso, quando ainda está na fase inicial e ainda na fase de testes, você pode excluir o campo e depois adicioná-lo ; claro, depois de fazer isso, os dados nesta coluna serão perdidos;
Excluir campo
db_factory2=> alter table company drop column founded ;
ALTER TABLE
db_factory2=> \d company
Table "public.company"
Column | Type | Collation | Nullable | Default
---------+------------------------+-----------+----------+---------
id | integer | | not null |
name | character varying(255) | | not null |
address | character(50) | | |
salary | real | | |
Indexes:
"company_pkey" PRIMARY KEY, btree (id)
Adicionar campo
Você pode então adicionar o nome e o tipo de campo corretos.
db_factory2=> alter table company add column founded date;
ALTER TABLE
db_factory2=> \d company
Table "public.company"
Column | Type | Collation | Nullable | Default
---------+------------------------+-----------+----------+---------
id | integer | | not null |
name | character varying(255) | | not null |
address | character(50) | | |
salary | real | | |
founded | date | | |
Indexes:
"company_pkey" PRIMARY KEY, btree (id)
Agora está tudo bem, então os dados nesta coluna precisam ser inseridos novamente. Você pode usar a instrução de atualização para inseri-los em lotes;
Renomear tabela
Se você achar que o significado do nome da tabela não está claro, você pode modificá-lo renomeando-o;
db_factory2=> alter table company rename to tbl_company;
ALTER TABLE
Esta operação não terá impacto no interior do banco de dados, pois é referenciado internamente através de OID, porém, para sistemas de negócios que já estão em execução, o método de referência em SQL precisa ser modificado;
Excluir tabela
Excluir uma tabela que não é mais usada
db_factory2=> drop table employees ;
DROP TABLE
O pré-requisito para uma exclusão bem-sucedida é que esta tabela não seja referenciada por outros objetos de banco de dados (visualizações, chaves estrangeiras, etc.).Por exemplo, se uma visualização for criada nesta tabela, a visualização deverá ser excluída primeiro ou a tabela deverá ser excluídos juntos usando exclusão em cascata. ;
OID da tabela de pesquisa
O banco de dados utiliza referências OID internamente. OID é um identificador único. Também é nomeado usando OID quando é armazenado em disco. Como saber o OID da tabela?
As informações relacionadas à tabela são registradas na tabela do sistema pg_class;
db_factory2=> select oid,relname from pg_class where relname='tbl_company';
oid | relname
-------+-------------
16510 | tbl_company
(1 row)
Resumir
Através do compartilhamento deste artigo, tive um melhor entendimento da consulta e alteração dos atributos da tabela.As informações sobre a tabela no dicionário de dados, como OID, local de armazenamento, se é uma tabela normal ou temporária, etc. ., estão todos registrados em pg_class. Claro, também está gravado. Há muitas informações úteis. Os alunos interessados podem conferir por conta própria.
fim
Muito obrigado pelo seu apoio. Não se esqueça de deixar seus comentários valiosos enquanto navega. Se você acha que vale a pena encorajar, curta e salve. Vou trabalhar mais!
E-mail do autor: [email protected]
Se houver algum erro ou omissão, indique-os e aprendam uns com os outros.
Nota: Nenhuma reprodução é permitida sem permissão!