manipulation de données de table
- 1. Ajouter des données
- 2. Interroger les données (Récupérer)
-
- 1. Requête de colonne complète
- 2. Spécifiez la requête de colonne
- 3. Requête d'expression
- 4. Requête d'alias (alias la colonne spécifiée)
- 5. Déduplication distincte
- 6. Trier la commande par
- 7. Requête conditionnelle
-
- 7.1<=> Utilisation
- 7.2 utilisation nulle
- 7.3 où requête conditionnelle
- 7.3.2.où syntaxe de requête conditionnelle :
- 7.3.3 Se renseigner sur les absents du test d'anglais
- 7.3.4 Se renseigner sur les personnes dont le score total est supérieur à 100
- 7.3.5 Nom de champ entre x et y (peut contenir des valeurs x et y)
- 7.3.6 en requête : tous les ensembles qui satisfont les conditions seront interrogés
- 7.3.7 Requête floue comme :
- 8. Requête de pagination LIMIT : Interroger une partie des informations sur une page (une partie des informations est interceptée)
- 3. Modifier les données
- 4. Opération de suppression de MySQL
1. Ajouter des données
1. Ajouter toutes les colonnes (créer)
insert into score values(, , ,);
construire un tableau
1.1 Insertion d'une colonne complète sur une seule ligne
Remarque : Si vous ne spécifiez pas de colonne lors de l'ajout, l'ordre des valeurs insérées doit être cohérent avec l'ordre dans lequel la table a été créée.
1.2 Insertion de colonnes pleines sur plusieurs lignes
insert into score values( , , , );
2. Spécifiez la colonne à insérer
insert into score( , , , ) values( , , , );
Remarque :
Les colonnes doivent être spécifiées
L'ordre des valeurs insérées doit être cohérent avec l'ordre des colonnes spécifiées
Extension : Répertoire de stockage des tables et des données de table (deux méthodes)
2. Interroger les données (Récupérer)
1. Requête de colonne complète
select * from table_name;
Il peut y avoir deux problèmes avec la requête de colonne complète :
1. Plus il y a de colonnes interrogées, plus la quantité de données à transmettre est importante, ce qui consommera beaucoup d'informations sur la bande passante et la vitesse de transmission sera très lente ;
2. Cela peut affecter l'utilisation de l'index.
2. Spécifiez la requête de colonne
select 列名 from 表名
3. Requête d'expression
select 表达式 from 表名;
Requête d'expression SQL, ne modifiera pas les données d'origine de la table
4. Requête d'alias (alias la colonne spécifiée)
select 指定列 as 别名 from 表名;
Peut être utilisé comme ou non
5. Déduplication distincte
5.1 Déduplication sur une seule colonne
select distinct 去重列名 from 表名;
5.2 déduplication conjointe distincte
Règle : Tous les champs sont identiques avant d'être combinés pour supprimer les doublons, sinon ils ne seront pas dupliqués.
6. Trier la commande par
6.1 ascendant asc selon une colonne - de petit à grand
select * from 表名 order by 列名 asc;
6.2 Descendant selon une colonne desc - de grand à petit
select * from 表名 order by 列名 desc;
Si asc ou desc ne sont pas spécifiés, asc est utilisé par défaut
6.3 Ordre croissant basé sur le score total
select 列名 from 表名 oeder by 列名 asc;
6.4 Selon le score total par ordre décroissant, le score total utilise un alias
select 列名 from 表名 oeder by 列名 desc;
Remarque : trier par peut être trié à l'aide d'alias
NULL est le niveau minimum lors du tri
6.5 Tri multi-colonnes
select name,math,chinese from score order by math,chinese desc;
7. Requête conditionnelle
Remarque : La priorité d'exécution de l'opérateur logique et est supérieure à celle de ou, donc s'il y a à la fois une requête et et une requête ou dans une requête, vous devez ajouter () à la requête ou, la fonction est d'augmenter la priorité d'exécution, add () L'instruction SQL est prioritaire.
Les bourses ne peuvent être délivrées que si les deux conditions suivantes sont remplies :
1. Score en mathématiques >= 30 ou score en anglais >= 40 ;
2. Le score de langue doit être >=50.
7.1<=> Utilisation
7.2 utilisation nulle
7.3 où requête conditionnelle
7.3.1***Remarques :***
1. Les alias peuvent être utilisés dans l'ordre
où la requête conditionnelle ne peut pas utiliser d'alias
select math+chinese+english as total from score order by total desc;
7.3.2.où syntaxe de requête conditionnelle :
selest * from table_name where 查询条件;
Pourquoi les alias ne peuvent-ils pas être utilisés dans où, mais peuvent être utilisés dans l'ordre par
L' ordre d'exécution de mysql est le suivant :
1.FROM stage
2.WHERE stage
3.GROUP BY stage grouping query
4.HAVING stage grouping query conditions
5.SELECT stage
6.ORDER BY stage
7.LIMIT stage paging query
alias is generator in la 5ème étape de la requête.
Une fois l'alias obtenu, il peut être utilisé dans les étapes suivantes, c'est-à-dire que l'alias ne peut être utilisé par la requête qu'après l'étape 5.
7.3.3 Se renseigner sur les absents du test d'anglais
7.3.4 Se renseigner sur les personnes dont le score total est supérieur à 100
7.3.5 Nom de champ entre x et y (peut contenir des valeurs x et y)
plus élégant
7.3.6 en requête : tous les ensembles qui satisfont les conditions seront interrogés
7.3.7 Requête floue comme :
%------> peut correspondre à n'importe quel caractère
where 字段名 like '% _';
__------> peut correspondre à un caractère arbitraire
% et _ peuvent être utilisés dans n'importe quelle position
Toutes les requêtes dans NMySQL doivent considérer le principe le plus à gauche et mettre la condition qui peut filtrer le plus d'éléments à l'extrême gauche
8. Requête de pagination LIMIT : Interroger une partie des informations sur une page (une partie des informations est interceptée)
Limitez 3 manières d'écrire :
- limite limite n;
select * from table_name limit n;
Le nombre maximum de requêtes est limité à 300. Si la quantité de données n'est pas suffisante, la requête ne rapportera pas d'erreur
2. limit n offset s offset;
limit n offset s 偏移;
查询n条 跳过前s条
3.limit s,n ;
interroger n éléments, ignorer les s premiers éléments
Remarque : L'ordre de 2. et 3. est inversé
3. Modifier les données
1. Toute modification de données (très dangereux, accidentellement modifié toutes les données)
updata table_name set 修改内容;
2. Modification partielle des données
limite
où
3. Modification multi-colonnes de certaines données
Positionner , , ,
4. Utilisation de la modification d'expression
4. Opération de suppression de MySQL
1.delete supprimer le langage DML
delete from table_name [where...] [order by...] [limit...]
Supprimer les données de ligne, la structure de la table existe
2.drop supprimer le langage DDL
drop table table_name;
3. truncate delete (ne supprimera pas la structure du tableau, supprimera uniquement toutes les données du tableau)
truncate [table] table_name;
La différence entre les trois
1. L'influence de la suppression :
drop (structure de la table + données) > truncate (supprimer toutes les données) >= delete (supprimer tout ou partie des données)
2. Conditions de requête : delete peut ajouter des conditions de requête aux expressions where, mais d'autres delete les commandes ne le peuvent pas.
3. Le type de commande :
drop appartient à DDL,
delete appartient à DML (principe d'exécution : sous le ***moteur de base de données InnoDB***, delete ne supprime pas vraiment les données, mais marque les données avec une étiquette de suppression pour identifier les données actuelles ont été supprimées)
***truncate 属于 DDL***(执行原理:1.重新创建一个表2.将原来的表删除)
**4. La récupération de données est différente : **Les données supprimées peuvent être récupérées, mais les données supprimées par troncature et suppression ne peuvent pas être récupérées
Si autocommit = 1, la suppression peut être restaurée, supprimez le journal updata table table_name set iddel = 0 ;
exécutez l'opération de négation SQL pour restaurer les données. La condition préalable est que la journalisation de la base de données soit activée. Les performances d'exécution de la base de données peuvent être améliorées et le journal peut être désactivé pour les systèmes qui ne sont pas sensibles à la perte de données.
**5. Efficacité d'exécution : **drop > truncate > delete
plus la quantité de données est importante, plus l'écart entre l'efficacité d'exécution ci-dessus est grand.
6. delete delete ne réinitialise pas la valeur enfant ajoutée