Notas de estudo do MySQL ------ restrições comuns

# restrições comuns

/*


Significado: Uma restrição usada para limitar os dados da tabela, a fim de garantir a precisão e confiabilidade dos dados da tabela


Classificação: seis restrições principais
    NOT NULL: não vazio, usado para garantir que o valor do campo não pode ficar vazio,
    como nome, número do aluno, etc.
    DEFAULT: padrão, usado para garantir que o campo tenha um valor padrão
    como gênero
    PRIMARY KEY: chave primária, usada para garantir que o valor do campo seja único e não esteja vazio,
    como número de aluno, número de funcionário, etc.
    UNIQUE: único, usado para garantir que o valor do campo seja único , pode estar vazio,
    como número do assento
    CHECK: restrição de verificação [não suportada no mysql]
    , como idade, gênero
    FOREIGN KEY: chave estrangeira, usada para limitar o relacionamento entre as duas tabelas, usada para garantir que o valor deste campo deve vem do valor da coluna associada da tabela principal Adicionar uma
        restrição de chave estrangeira à tabela escrava, usada para se referir a uma coluna na tabela principal O valor de
    como o número profissional da tabela do aluno, o número do departamento do tabela de funcionários e o tipo de número de trabalho da tabela de funcionários
    

Quando adicionar restrições:
    1. Ao criar uma tabela
    2. Ao modificar uma tabela
    

Categorias de adição de restrições:
    restrições em nível de coluna:
        todas as seis restrições são suportadas sintaticamente, mas restrições de chave estrangeira não têm efeito
        
    restrições em nível de tabela:
        
        exceto para não nulo, padrão, outros são suportados
        
        
Chave primária e comparação única:

        Exclusividade garantida Se é permitido ficar vazio Quantas podem haver em uma tabela Se permitir
    chaves primárias combinadas √ × Existe no máximo 1 √, mas
    único não é recomendado √ √ Pode haver vários √, mas não é recomendado
Chave estrangeira:
    1. Obrigatório na tabela escrava Defina o relacionamento da chave estrangeira
    2. O tipo da coluna de chave estrangeira da tabela secundária é consistente ou compatível com o tipo da coluna associada da tabela principal, e o nome não é obrigatório. 3
    . A coluna associada da tabela principal deve ser uma chave (geralmente uma chave primária ou única)
    4. Ao inserir dados, insira primeiro a tabela principal e depois insira a tabela escrava.
    Ao excluir dados, exclua primeiro a tabela escrava e depois exclua a tabela mestre


*/

CREATE TABLE nome da tabela (nome
    do campo tipo de campo restrições de nível de coluna,
    nome de campo tipo de campo,
    restrições de nível de tabela

)
CREATE DATABASE alunos;
#1. Adicione restrições ao criar uma tabela

# 1. Adicione restrições em nível de coluna
/*
Sintaxe:

Basta adicionar o tipo de restrição diretamente após o nome e tipo do campo.

Suportado apenas: padrão, não nulo, chave primária, exclusivo

*/

USE estudantes;
DROP TABLE stuinfo;
CREATE TABLE stuinfo(
    id INT PRIMARY KEY, #primary key --- restrição é o número do aluno
    stuName VARCHAR(20) NOT NULL UNIQUE, #non-empty
    gênero CHAR(1) CHECK(gender='male ' OR gênero = 'feminino'), #check ------ na verdade, assento INT UNIQUE não é suportado no mysql
    , #unique
    age INT DEFAULT 18, #default restrição
    majorId INT REFERENCES major(id)#foreign key- --- --Na verdade, colunas de restrição não são suportadas no mysql

);


CREATE TABLE major(
    id INT PRIMARY KEY,
    majorName VARCHAR(20)
);

#Ver todos os índices em stuinfo, incluindo chave primária, chave estrangeira, exclusivo
SHOW INDEX FROM stuinfo;


# 2. Adicione restrições em nível de tabela
/*

Sintaxe: Na parte inferior de cada campo
 [nome da restrição de restrição] tipo de restrição (nome do campo) --- [nome da restrição de restrição] significa que pode ser omitido. Se não houver nome, haverá um nome padrão, ou seja, o nome do campo padrão*
/

DROP TABLE IF EXISTS stuinfo;
CREATE TABLE stuinfo(
    id INT,
    stuname VARCHAR(20),
    gênero CHAR(1),
    assento INT,
    idade INT,
    majorid INT,
    
    CONSTRAINT pk PRIMARY KEY(id), #primary key --- chave primária o nome é fixo Sim, alterar o nome não terá efeito
    CONSTRAINT uq UNIQUE(seat), #unique key CONSTRAINT ck CHECK(gender = 'male' OR gender = 'female'), #check------na verdade,     CONSTRAINT
    não é suportado no mysql );

    

MOSTRAR ÍNDICE DE stuinfo;

#Maneira geral de escrever:★

CRIAR TABELA SE NÃO EXISTE stuinfo(
    id INT PRIMARY KEY,
    stuname VARCHAR(20),
    sexo CHAR(1),
    idade INT DEFAULT 18,
    assento INT UNIQUE,
    majorid INT,
    CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id)#外键

);

# 2. Adicione restrições ao modificar a tabela

/*
1. Adicionar restrições em nível de coluna
alterar o nome da tabela modificar o nome do campo da coluna tipo de campo nova restrição;

2. Adicionar restrições no nível da tabela,
alterar o nome da tabela da tabela, adicionar [nome da restrição da restrição] tipo de restrição (nome do campo) [referência da chave estrangeira];


*/
DROP TABLE IF EXISTS stuinfo;
CREATE TABLE stuinfo(
    id INT,
    stuname VARCHAR(20),
    gênero CHAR(1),
    assento INT,
    idade INT,
    majorid INT
)
DESC stuinfo;
#1. Adicionar restrição não nula
ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL;
#2. Adicionar restrições padrão
ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;
#3. Adicionar chave primária
#①Restrições em nível de coluna
ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;
#②Table- restrições de nível
ALTER TABLE stuinfo ADD PRIMARY KEY(id);

# 4. Adicionar exclusivo

#①Restrições em nível de coluna
ALTER TABLE stuinfo MODIFY COLUMN assento INT UNIQUE;
#②Restrições em nível de tabela
ALTER TABLE stuinfo ADD UNIQUE(seat);


#5.添加外键
ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id); 

#3. Exclua restrições ao modificar a tabela

# 1. Exclua a restrição não nula
ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL;

# 2. Exclua a restrição padrão
ALTER TABLE stuinfo MODIFY COLUMN age INT ;

# 3. Exclua a chave primária
ALTER TABLE stuinfo DROP PRIMARY KEY;

# 4. Exclua o único
assento ALTER TABLE stuinfo DROP INDEX;

# 5. Excluir chave estrangeira
ALTER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major;

MOSTRAR ÍNDICE DE stuinfo;

Acho que você gosta

Origin blog.csdn.net/weixin_47156401/article/details/131930846
Recomendado
Clasificación