Resumo básico abrangente do banco de dados e explicação do caso

Insira a descrição da imagem aqui

Base de dados abrangente e explicação detalhada de casos de prática

Fonte da pergunta:

Pratique principalmente para resumir os fundamentos do banco de dados e adicionar seu próprio entendimento complementar ao exercício

Conhecimento básico de banco de dados "Um": criar e usar

在数据库中是不严格分大小写的
创建数据库 create database 数据库名
创建数据表 create table  表名
使用/切换数据库 use 数据库名
关闭数据库 close 数据库名
删除数据表 drop 数据表名
删除数据表中元组  delete 元组
显示表结构  desc  表名
  • Existem quatro grupos de tabelas no banco de dados

    Conhecimento básico de banco de dados "Two": inserção de dados

    数据库的数据插入--> insert into 表名(表结构,列1、列2....) values(数据,列1对应的数据、列2对应的数据);
    插入多条数据 --> values 第一条数据(数据,列1对应的数据、列2对应的数据),values 第一条数据(数据,列1对应的数据、列2对应的数据).......
    其中的表结构是可以省略的,但是省略后插入数据的顺序必须要按照建表时的表结构顺序
    例如--> insert into 表名 values(数据,列1对应的数据、列2对应的数据);
    
    • Aluno (mesa do aluno)Insira a descrição da imagem aqui
    • Curso (programação do curso) Insira a descrição da imagem aqui
    • Ponto Insira a descrição da imagem aqui
    • Professor Insira a descrição da imagem aqui
  • Insira os dados após criar a tabela

    • Dados do aluno

      insert into Student values('108','曾华','男','1977-09-01','95033');
      insert into Student values('105','匡明','男','1975-10-02','95031');
      insert into Student values('107','王丽','女','1976-01-23','95033');
      insert into Student values('101','李军','男','1976-02-20','95033');
      insert into Student values('109','王芳','女','1975-02-10','95031');
      insert into Student values('103','陆君','男','1974-06-03','95031');
      
    • Dados do curso

    insert into Course values('3-105','计算机导论','825');
    insert into Course values('3-245','操作系统','804');
    insert into Course values('6-166','数字电路','856');
    insert into Course values('9-888','高等数学','831');
    
    • Dados de pontuação
    insert into Score values('103','3-245','86');
    insert into Score values('105','3-245','75');
    insert into Score values('109','3-245','68');
    insert into Score values('103','3-105','92');
    insert into Score values('105','3-105','88');
    insert into Score values('109','3-105','76');
    insert into Score values('101','3-105','64');
    insert into Score values('107','3-105','91');
    insert into Score values('108','3-105','78');
    insert into Score values('101','6-166','85');
    insert into Score values('107','6-166','79');
    insert into Score values('108','6-166','81');
    
    • Dados do professor

      insert into Teacher values('804','李诚','男','1958-12-02','副教授','计算机系');
      insert into Teacher values('856','张旭','男','1969-03-12','讲师','电子工程系');
      insert into Teacher values('825','王萍','女','1972-05-05','助教','计算机系');
      insert into Teacher values('831','刘冰','女','1977-08-14','助教','电子工程系');
      

Conhecimento básico de banco de dados "Três": consulta de informações

1.表内信息查询——> select 查询的表属性 from 表名 where 查询条件
2.其中要查询全部信息 --> select * from 表名;
3.其中当查询的结果不止一项时要用“,”分隔
4.其中如果查询不重复数据 在列前加上 distinct 表示查询的结果无重复项
5.其中当查询有条件限制时,其中and表两个条件都需要满足,or只需满足一个即可
6.其中between...and.....表示的范围和and语句一样
7.在数据库中对字符类型的数据,使用单引号和双引号都是一样的
8.其中在子查询的时候,当子查询的结果只有一个的时候 可以用in 也可以直接用=
  • Consulte as colunas Sname, Ssex e Class de todos os registros na tabela Aluno

    select Sname,Ssex,Class from Student
    
  • Consulte todas as unidades do professor, ou seja, a única coluna Depart.

    select distinct Depart from Teache
    
  • Consulte todos os registros da tabela do Aluno.

select * from Student
  • Consulte todos os registros na tabela de pontuação cujas pontuações estejam entre 60 e 80.

    select * from score where degree>60 and degree<80;
    还有一种写法对and语句使用 between...and.....
    select * from Score where Degree between 60 and 80
    
  • Consulte o registro de 85, 86 ou 88 na tabela de pontuação.

select *from score where degree=85 or degree=86 or degree=88;
其实在这里推荐使用子查询方式
select * from score where degree in (85,86,88);
表示的意思和上面or一样,表示degree在后面集合中的元素,in在里面的意思。
  • Consulte os registros da turma "95031" ou de colegas cujo gênero seja "feminino" na tabela Aluno.
select * from Student where class='95031' or Ssex='女'
  • Consulte a coluna Sno com uma pontuação maior que 70 e menor que 90.

    select Sno from Score where Degree between 70 and 90
    
  • Consulte se existem cursos Cno com pontuação de 85 ou mais.

    第一种方法,求出所有成绩大于85的成绩对应的学号
    select distinct cno from score where cno in(select cno from score where degree>85);
    第二种方法:分组按成绩分组,分出来的一组成绩大于85
    select Cno from Score where Degree in (select Degree from Score group by Cno having Degree>85)
    第三种方法比较简单:
    select distinct cno from score where degree>85
    

Conhecimento básico do banco de dados "Quatro": classificação

1.数据库的排序有两种升序->由小到大 asc  降序->由大到小  desc
用法:select 列名 from 表名 order by 要排序的列  排序方式
当没有过滤条件是不用加 where 
  • Consulte todos os registros da tabela de Alunos em ordem decrescente de Classe.
select * from student order by class desc
  • Consulte todos os registros na tabela de pontuação em ordem crescente de Cno e ordem decrescente de grau.

    select * from Score order by Cno, Degree desc
    

Conhecimento básico de banco de dados "Five": funções

常见的函数有:
1.求某一个项的个数--> count(*) 查询 where过滤后的元组个数有多少个
2.求某一列的最大值--> max(列名) 
3.求某一列的最小值--> min(列名)
4.求某一项的平均值--> avg(列名)
5.分组,按某一个规则分组--> group by 规则
比如按照班级分组 select * from  学生表 group by 班级属性
6.Having子句,又称分组过滤子句。需要有Groupby子句支持,换句话说,没有Groupby子句,便不能有Having子句,就是对分组后的每一组进行过滤,在group by后面使用。
6.求最大值max(列名)
7.求最小值min(列名)
8.获取左右两边的某些值,比如获得出生日期的年left(sbirthday,4),表示取出生日期的左边四位
  • Consulte o número de alunos na classe "95031"

    select count(*) from Student where class='95031'
    
  • Consulte o número do aluno e o número do curso com a pontuação mais alta na tabela de pontuação.

    select Sno,Cno from Score where Degree=(select max(Degree) from Score) 
    
  • Consulte a nota média de cada curso

因为要求每一门课的平均值,这里就要对课程进行按照课程号分组
select avg(Degree) from Score group by Cno;
  • Consulte as pontuações médias de cursos que tenham pelo menos 5 eletivas e comece com 3 na tabela de pontuação.

    select avg(Degree) from Score group by Cno having count(*)>=5 and Cno like '3%' 
    
  • Consulte os maiores e menores valores da data de sábado na tabela do aluno

    select max(Sbirthday),min(Sbirthday) from Student 
    
  • Consulte o histórico escolar dos alunos cujas notas são inferiores à nota média do curso.

    这里要查找的是在每门课程中该课程中的学生成绩小于平均成绩,所以首先要对每门课程进行分组,求出每门课程的平均成绩
    select * from Score a where a.Degree<(select avg(Degree) from Score b  where a.cno=b.cno group by cno);
    

Conhecimento básico de banco de dados "Six": conexão multi-mesa

1.在数据表中要想利用本表的信息查询与之关联的其他表的信息,需要用到外码,外码也就是连个表之间的连接条件,起中间传递作用,如果两个表要想相连,必须有相同项。
外码的作用就是将两个表合并
2.还有一种连接方式 from 表一 join 表二 on  就是将表一加入到表二合成一个新表 不用where 条件直接在on后面即可
  • Consulte as colunas Sname, Cno e Degree de todos os alunos.
select Student.Sname,Score.Cno,Score.Degree from Student,Score where Student.Sno=Score.Sno
select sname,cno,degree from student join score on Student.Sno=Score.Sno
  • Consulte a pontuação média da classe "95033"
select avg(Degree) from Score,Student where Student.Sno=Score.Sno and class='95033'
第二种方式子查询方式,思路是一样的先找出95033班的学生,第一种可能容易想到,两种第二种查找效率高点
select avg(Degree) from Score where Sno in (select Sno from Student where class='95033') 
  • Consulte os resultados dos alunos do professor "Zhang Xu".

    select Degree from Score,Course,Teacher where Teacher.Tname='张旭'and Teacher.Tno=Course.Tno and Course.Cno=Score.Cno
    第二种子查询推荐使用
    select student.sname,score.degree from student,score where student.sno=score.sno and score.cno in(select course.cno from course,teacher where teacher.tname="张旭" and course.tno=teacher.tno);
    
  • Consulte o nome do professor cujo número de alunos fazendo um curso é superior a 5.

    select teacher.tname from course,teacher where course.tno=teacher.tno and course.cno in (select cno from score group by cno having count(cno)>5);
    

Conhecimento básico do banco de dados "Seven": alias de tabela

1.表名 as 别名  -->其中as可以省略    表名 别名 
在起别名的时候默认全部信息答应的是两个表的信息
  • Consulte os registros de todos os alunos cujas notas na disciplina eletiva "3-105" sejam superiores às do aluno nº "109"

    select distinct a.Cno,a.Sno,a.Degree from Score a,Score b where a.Cno='3-105' and a.Degree>b.Degree and b.Sno='109' and b.Cno='3-105'
    第二种子查询
    select * from Score where Cno='3-105' and degree>(select degree from Score where Sno='109' and Cno='3-105
    ')
    
  • Consulte o registro de alunos que escolheram vários cursos na pontuação que não são a pontuação mais alta.

    select * from Score where
    Degree not in (select max(Degree) from Score group by sno having count(*)>1) and
    

Sno in (selecione Sno do grupo Score por Sno having count (*)> 1)



+ **查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof**。

elect Tname, Prof de Teacher where Prof not in (select Prof from Teacher where Depart = '计算机 系' e prof in (select Prof from Teacher where Depart = '电子 工程系'))


+ **求成绩非最高的学生信息**

selecione * da pontuação onde grau <algum (selecione grau da pontuação);




#### 《八》数据库基础知识:日期及年龄

Mostra a hora atual: curdate () para
obter o ano da data de nascimento Ano (aniversário)
Como encontrar a idade do aluno pela data de nascimento Obtenha o ano da
data ano (sbirthday) mês (sbirthday) dia ( aniversário)


+ **查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。**

selecione sno, sname, sbirthday do aluno onde ano (sbirthday) = (selecione o ano (sbirthday) do aluno onde sno = “108”);


+ **通过出生日期计算年龄**

(ANO (CORDATA ()) - ANO (nascimento)) - (DIREITO (CORDA (), 5) <DIREITO (nascimento, 5))




#### 《九》数据库基础知识:多表显示

Como exibir todas as informações de várias tabelas ao mesmo tempo
. As colunas exibidas por união selecionam da tabela um
As colunas exibidas por união selecionam da tabela dois


+ **查询所有教师和同学的name、sex和birthday.**

selecione Tname como nome, Tsex como sexo, Tbirthday como aniversário da união de professores, selecione Sname, Ssex, Sbirthday do aluno


#### 《十》数据库基础知识:模糊匹配

Por exemplo, em nossas consultas comumente usadas, lembramos apenas de uma parte dos dados na tabela, que pode ser usada para consultas difusas.
Uso onde, como “”
1.% -> Corresponde a um ou mais como “Zhang%”
2_ -> Corresponde a um caractere como encontrar Zhang San como "张 _"
3. \ -> Caractere de escape O caractere de escape é usado para remover o significado específico de alguns caracteres especiais e torná-los tratados como caracteres comuns, como "%" Para corresponder ao caractere%, use _ para corresponder ao caractere _


+ **查询Student表中不姓“王”的同学记录。**

selecione * de Aluno em que Sname não goste de '王%'


#### 《十一》数据库基础知识:信息修改

Modifique as informações na tabela: defina modificar
alter tablename
[add {colnamedatatype,…}] adicionar uma nova coluna
[drop {integridade constraint name}] excluir uma restrição de integridade
[modificar {colnamedatatype,…}] modificar definição de coluna modificar
modificação de elemento de
tabela nome
definir nome da coluna = expressão


+ **增加新的一列,给学生表添加所属系别属性**

alterar aluno
adicionar departamento char (10) ;


+ **将所有的学生的成绩提高10分**

atualizar pontuação definida grau = grau + 10 ;


#### 《十二》数据库基础知识:NULL 值判断

O uso é nulo e não é nulo para consultar o valor nulo na tabela


+ **查找没参加考试的学生信息**

selecione * da pontuação em que o grau é nulo ;


约束 
[modify {colnamedatatype, …}]  修改列定义
元素修改
update 表名
set 列名=表达式
  • Adicione uma nova coluna, adicione o atributo do departamento à tabela do aluno

    alter  student
    add dept char(10);
    
  • Aumentar as notas de todos os alunos em 10 pontos

    update score set degree=degree+10 ;
    

Conhecimento básico do banco de dados "Doze": Julgamento de valor NULL

查询表中的null值时用 is null 和 is not null来查询
  • Encontre informações sobre alunos que não fizeram o exame

    select * from score where degree is null;
    

Em resumo, este é um resumo e um refinamento do conhecimento de banco de dados que você aprendeu recentemente para fortalecer sua própria compreensão e também pode facilitar uma revisão posterior, e espero que também possa fornecer ajuda para outros parceiros que estudam banco de dados.

Acho que você gosta

Origin blog.csdn.net/qq_44762290/article/details/105574851
Recomendado
Clasificación