Résumé de base complet de la base de données et explication des cas

Insérez la description de l'image ici

Base de données complète et explication détaillée des cas pratiques

Source de la question:

Pratiquez-vous principalement à résumer les bases de la base de données et à ajouter votre propre compréhension supplémentaire à l'exercice

Connaissance de base de la base de données "One": création et utilisation

在数据库中是不严格分大小写的
创建数据库 create database 数据库名
创建数据表 create table  表名
使用/切换数据库 use 数据库名
关闭数据库 close 数据库名
删除数据表 drop 数据表名
删除数据表中元组  delete 元组
显示表结构  desc  表名
  • Il existe quatre groupes de tables dans la base de données

    Connaissances de base de la base de données "Two": insertion de données

    数据库的数据插入--> insert into 表名(表结构,列1、列2....) values(数据,列1对应的数据、列2对应的数据);
    插入多条数据 --> values 第一条数据(数据,列1对应的数据、列2对应的数据),values 第一条数据(数据,列1对应的数据、列2对应的数据).......
    其中的表结构是可以省略的,但是省略后插入数据的顺序必须要按照建表时的表结构顺序
    例如--> insert into 表名 values(数据,列1对应的数据、列2对应的数据);
    
    • Étudiant (table des étudiants)Insérez la description de l'image ici
    • Cours (calendrier des cours) Insérez la description de l'image ici
    • But Insérez la description de l'image ici
    • Prof Insérez la description de l'image ici
  • Insérer des données après avoir créé le tableau

    • Données des étudiants

      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');
      
    • Données de cours

    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');
    
    • Données de score
    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');
    
    • Données des enseignants

      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','助教','电子工程系');
      

Connaissances de base de la base de données "Three": recherche d'informations

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

    select Sname,Ssex,Class from Student
    
  • Interrogez toutes les unités de l'enseignant, c'est-à-dire la colonne Départ unique.

    select distinct Depart from Teache
    
  • Interrogez tous les enregistrements de la table Student.

select * from Student
  • Recherchez tous les enregistrements de la table Score dont les scores sont compris entre 60 et 80.

    select * from score where degree>60 and degree<80;
    还有一种写法对and语句使用 between...and.....
    select * from Score where Degree between 60 and 80
    
  • Recherchez l'enregistrement de 85, 86 ou 88 dans le tableau Score.

select *from score where degree=85 or degree=86 or degree=88;
其实在这里推荐使用子查询方式
select * from score where degree in (85,86,88);
表示的意思和上面or一样,表示degree在后面集合中的元素,in在里面的意思。
  • Recherchez les enregistrements de la classe "95031" ou des camarades de classe dont le sexe est "femme" dans la table Student.
select * from Student where class='95031' or Ssex='女'
  • Interrogez la colonne Sno avec un score supérieur à 70 et inférieur à 90.

    select Sno from Score where Degree between 70 and 90
    
  • Requête il existe des cours Cno avec des scores de 85 ou plus.

    第一种方法,求出所有成绩大于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
    

Connaissances de base de la base de données "Four": tri

1.数据库的排序有两种升序->由小到大 asc  降序->由大到小  desc
用法:select 列名 from 表名 order by 要排序的列  排序方式
当没有过滤条件是不用加 where 
  • Interrogez tous les enregistrements de la table Student par ordre décroissant de classe.
select * from student order by class desc
  • Interrogez tous les enregistrements de la table Score par ordre croissant de Cno et par ordre décroissant de degré.

    select * from Score order by Cno, Degree desc
    

Connaissances de base de la base de données "Five": fonctions

常见的函数有:
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),表示取出生日期的左边四位
  • Rechercher le nombre d'élèves de la classe "95031"

    select count(*) from Student where class='95031'
    
  • Recherchez le numéro d'étudiant et le numéro de cours avec le score le plus élevé dans le tableau des scores.

    select Sno,Cno from Score where Degree=(select max(Degree) from Score) 
    
  • Recherchez la note moyenne de chaque cours

因为要求每一门课的平均值,这里就要对课程进行按照课程号分组
select avg(Degree) from Score group by Cno;
  • Recherchez les scores moyens des cours comportant au moins 5 cours au choix et commencez par 3 dans le tableau des scores.

    select avg(Degree) from Score group by Cno having count(*)>=5 and Cno like '3%' 
    
  • Interroger les valeurs de date du samedi les plus grandes et les plus petites dans la table Student

    select max(Sbirthday),min(Sbirthday) from Student 
    
  • Recherchez le relevé de notes des élèves dont les notes sont inférieures à la note moyenne du cours.

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

Connaissance de base de la base de données "Six": connexion multi-tables

1.在数据表中要想利用本表的信息查询与之关联的其他表的信息,需要用到外码,外码也就是连个表之间的连接条件,起中间传递作用,如果两个表要想相连,必须有相同项。
外码的作用就是将两个表合并
2.还有一种连接方式 from 表一 join 表二 on  就是将表一加入到表二合成一个新表 不用where 条件直接在on后面即可
  • Recherchez les colonnes Sname, Cno et Degree de tous les étudiants.
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
  • Rechercher le score moyen de la 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') 
  • Interrogez les résultats des élèves de l'enseignant "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);
    
  • Recherchez le nom de l'enseignant dont le nombre d'étudiants suivant un cours est supérieur à 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);
    

Connaissance de base de la base de données "Seven": alias de table

1.表名 as 别名  -->其中as可以省略    表名 别名 
在起别名的时候默认全部信息答应的是两个表的信息
  • Recherchez les dossiers de tous les étudiants dont les notes du cours optionnel "3-105" sont supérieures à celles de l'élève 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
    ')
    
  • Recherchez le dossier des étudiants qui ont choisi plusieurs cours dans le score qui ne sont pas le score le plus élevé.

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

Sno in (sélectionnez Sno dans le groupe Score par Sno ayant count (*)> 1)



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

élisez Tname, Prof de Teacher où Prof not in (sélectionnez Prof from Teacher où Depart = '计算机 系' et prof in (sélectionnez Prof from Teacher où Depart = '电子 工程系'))


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

sélectionner * à partir du score où degré <certains (sélectionner le degré à partir du score);




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

Afficher l'heure actuelle: curdate () pour
obtenir l'année de la date de naissance Année (anniversaire)
Comment trouver l'âge de l'élève par date de naissance Obtenir l'année de la
date année (sbirthday) mois (sbirthday) jour ( l'anniversaire de)


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

sélectionnez sno, sname, sbirthday de l'étudiant où year (sbirthday) = (sélectionnez l'année (sbirthday) de l'étudiant où sno = «108»);


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

(ANNÉE (CURDATE ()) - ANNÉE (naissance)) - (DROITE (CURDATE (), 5) <DROITE (naissance, 5))




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

Comment afficher toutes les informations de plusieurs tables en même temps
. Les colonnes affichées par union sélectionnent dans la table un
Les colonnes affichées par union sélectionnent dans la table deux


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

sélectionnez Tname comme nom, Tsex comme sexe, Tbirthday comme anniversaire du syndicat des enseignants sélectionnez Sname, Ssex, Sbirthday de Student


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

Par exemple, dans nos requêtes couramment utilisées, nous ne mémorisons qu'une partie des données du tableau, qui peut être utilisée pour les requêtes floues.
Utilisation où comme «»
1.% -> Correspond à une ou plusieurs comme «Zhang%»
2_ -> Correspond à un caractère tel que find Zhang San comme "张 _"
3. \ -> Caractère d'échappement Le caractère d'échappement est utilisé pour supprimer la signification spécifique de certains caractères spéciaux et les traiter comme des caractères ordinaires, tels que "%" Pour faire correspondre le caractère%, utilisez _ pour faire correspondre le caractère _


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

sélectionnez * de Student où Sname n'aime pas '王%'


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

Modifier les informations de la table: définir modifier
modifier le nom de la table
[ajouter {colnamedatype,…}] ajouter une nouvelle colonne
[supprimer {nom de la contrainte d'intégrité}] supprimer une contrainte d'intégrité
[modifier {colnamedatype,…}] modifier la définition de la colonne
modification de l'élément
mise à jour Table
ensemble de noms nom de colonne = expression


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

modifier l'élève
ajouter le caractère de rayon (10) ;


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

mettre à jour le jeu de scores degré = degré + 10 ;


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

L'utilisation est nulle et non nulle pour interroger la valeur nulle dans la table


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

sélectionnez * à partir du score où le degré est nul ;


约束 
[modify {colnamedatatype, …}]  修改列定义
元素修改
update 表名
set 列名=表达式
  • Ajouter une nouvelle colonne, ajouter l'attribut du département à la table des étudiants

    alter  student
    add dept char(10);
    
  • Augmenter les notes de tous les élèves de 10 points

    update score set degree=degree+10 ;
    

Connaissances de base de la base de données "Douze": jugement de valeur NULL

查询表中的null值时用 is null 和 is not null来查询
  • Rechercher des informations sur les étudiants qui n'ont pas passé l'examen

    select * from score where degree is null;
    

En résumé, il s'agit d'un résumé et d'un affinement des connaissances de la base de données que vous avez récemment acquises pour renforcer votre propre compréhension, et cela peut également faciliter un examen ultérieur, et j'espère qu'il pourra également aider d'autres partenaires qui étudient la base de données.

Je suppose que tu aimes

Origine blog.csdn.net/qq_44762290/article/details/105574851
conseillé
Classement