当前位置:网站首页>MySQL doit maîtriser 4 langues!

MySQL doit maîtriser 4 langues!

2022-06-26 02:16:00 La voie de l'analyse des données de junhong

Cet article est principalement destiné à vous présenterMySQLCouramment utilisé dans4Langues:

97c117d575afe210d7120d26a4c76119.png

Un.、DDL

DDL,data defination language,Ça veut direLangage de définition des données,Son rôle principal est de créer une base de données,Supprimer et modifier la structure de la table de la bibliothèque.

Accès à la base de données

mysql -uroot -p    -- De cette façon,Ensuite, vous devez entrer le mot de passe.Le mot de passe est en noir.
mysql -uroot -p123456  -- Vous pouvez utiliser le mot de passe directement123456Placer dans le paramètrepDerrière.,C'est dangereux.

Interprétation des paramètres:

  • u:Spécifier l'utilisateur

  • p:Spécifiez le mot de passe

    c41fb8f9272a636f20d504aff37c23a4.png

Toutes les commandes

1. Fonctionnement de la base de données
show databases;     // Afficher toutes les bases de données
use school;     // UtiliserschoolBase de données
create database school;  // Créer une base de données
drop database school;  // Supprimer une base de données

2. Fonctionnement du tableau
-- Créer une table
create table user(Champ1,Champ2,...,Champn);   

-- Voir lesSQLDéclarations
show create table user;

-- Voir la structure du tableau
desc user;

-- Supprimer le tableau
drop table user;

-- Modifier le nom du tableau
alter table user rename to users;

Fonctionnement de la base de données

show databases;     // Afficher toutes les bases de données
use school;     // UtiliserschoolBase de données
create database school;  // Créer une base de données
drop database school;  // Supprimer une base de données
mysql> show databases;   // Afficher la base de données
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| peter              |
| school             |
| sys                |
+--------------------+
6 rows in set (0.04 sec)

mysql> use school;   // Choisissez d'utiliser la base de données
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Fonctionnement du tableau

// 1、Créer une table
create table user(Champ1,
                  Champ2, 
                  ..., 
                  Champn
                  );    //  Le dernier point - virgule ne doit pas être oublié 
                  
// 2、Voir tous les tableaux
show tables;

// 3、Voir la structure du tableau
desc user;

// 4、Voir lesSQLDéclarations
show create table user;

// 5、Supprimer le tableau
drop table user;

// 6、Modifier le nom du tableau
alter table user rename to users;   # Remplacer le titre du tableau par le texte suivant:users;toPeut être omis
  • Le dernier point - virgule ne doit pas être oublié

mysql> use school;  // Utiliser une base de données
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;  //   Voir toutes les tables sous la base de données 
+------------------+
| Tables_in_school |
+------------------+
| course           |
| score            |
| student          |
| teacher          |
| total            |
+------------------+
5 rows in set (0.00 sec)

Créer une table

  • Clé primaireprimary key Etauto_incrementDoit être utilisé ensemble

  • Règles d'écriture: L'énoncé de chaque champ doit de préférence être écrit en ligne ,Facile à vérifier

  • Le dernier point - virgule ne doit pas être oublié

# CréationuserTableau:6Champ espèce+1Clés primaires

create table user( id int(10) unsigned not null auto_increment comment "user_id",   //Oui.idComme clé primaire
                  name varchar(20) not null comment "user_name", 
                  email varchar(50) not null comment "user_email", 
                  age tinyint unsigned not null comment "user_age", 
                  fee decimal(10,2) not null default 0.00 comment "user_fee", 
                  createTime timestamp not null comment "user_time", 
                  primary key(id)  
                 );    //  Souviens - toi du point - virgule. 
a09ca8a301dd3b902b068b5a321ae0fc.png

Voir la structure du tableau

mysql> desc user;
+------------+---------------------+------+-----+-------------------+-----------------------------+
| Field      | Type                | Null | Key | Default           | Extra                       |
+------------+---------------------+------+-----+-------------------+-----------------------------+
| id         | int(10) unsigned    | NO   | PRI | NULL              | auto_increment              |
| name       | varchar(20)         | NO   |     | NULL              |                             |
| email      | varchar(50)         | NO   |     | NULL              |                             |
| age        | tinyint(3) unsigned | NO   |     | NULL              |                             |
| fee        | decimal(10,2)       | NO   |     | 0.00              |                             |
| createTime | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+---------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.02 sec)

Voir lesSQLDéclarations

show create table user;
b9aa57179eee8645cc9530f690ca3454.png

Opérations sur le terrain

Les mots clés sont:alter, Sélectionnez d'abord le tableau à utiliser .

  • modify:Modifier

  • change:Changer de nom

  • add:Ajouter un champ

    • La valeur par défaut est la fin

    • Préciser l'emplacement ajouter

// Modifier les informations du champ
alter table user modify name varchar(50) not null;   # Champname De20Lire comme suit:50Caractères

// Modifier le nom du champ
alter table user change email user_email varchar(50) not null;  # Oui.emailModifier comme suit:user_email

//  Ajouter un champ à la fin 
alter table user add password char(30) not null comment "user_password";   # AjouterpasswordChamp

//  Ajouter un champ à l'emplacement spécifié 
alter table user add password1 char(30) not null comment "user_password1" after user_name;   # InnameAjouter aprèspassword1Champ

// Supprimer le champ
alter table user drop password1;        #Supprimer le champpassword1
//  Informations du formulaire original 

mysql> desc user;
+------------+---------------------+------+-----+-------------------+-----------------------------+
| Field      | Type                | Null | Key | Default           | Extra                       |
+------------+---------------------+------+-----+-------------------+-----------------------------+
| id         | int(10) unsigned    | NO   | PRI | NULL              | auto_increment              |
| name       | varchar(20)         | NO   |     | NULL              |                             |
| email      | varchar(50)         | NO   |     | NULL              |                             |
| age        | tinyint(3) unsigned | NO   |     | NULL              |                             |
| fee        | decimal(10,2)       | NO   |     | 0.00              |                             |
| createTime | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+---------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.00 sec)

# Modifier les informations du champ
mysql> alter table user modify name varchar(50); 
# Modifier le nom du champ
mysql> alter table user change email user_email varchar(50) not null;
# Ajouter un champ,Fin
mysql> alter table user add password char(30) not null comment "user_password";
#  Ajouter un champ à l'emplacement spécifié 
mysql> alter table user add password1 char(30) not null comment "user_password1" after name;

mysql> desc user;
+------------+---------------------+------+-----+-------------------+-----------------------------+
| Field      | Type                | Null | Key | Default           | Extra                       |
+------------+---------------------+------+-----+-------------------+-----------------------------+
| id         | int(10) unsigned    | NO   | PRI | NULL              | auto_increment              |
| name       | varchar(50)         | YES  |     | NULL              |                             |
| password1  | char(30)            | NO   |     | NULL              |                             |
| user_email | varchar(50)         | NO   |     | NULL              |                             |
| age        | tinyint(3) unsigned | NO   |     | NULL              |                             |
| fee        | decimal(10,2)       | NO   |     | 0.00              |                             |
| createTime | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| password   | char(30)            | NO   |     | NULL              |                             |
+------------+---------------------+------+-----+-------------------+-----------------------------+
8 rows in set (0.00 sec)

2.、DML

DML,data manipulation language,Ça veut direLangage de fonctionnement des données. Principalement la langue dans laquelle les enregistrements de table dans la base de données sont manipulés , Inclure l'insertion de données dans le tableau 、 Mise à jour des données du tableau 、 Suppression de tableaux, etc.

  • Insérer des données dans le tableau

  • Mise à jour des données dans le tableau

  • Supprimer le tableau

Insérer des données dans le tableau

--  Correspond un par un au nom du champ et à la valeur du champ , Vous ne pouvez insérer que des champs partiels 
-- OmisidEtcreatetimeChamp
mysql> insert into user(
            name, 
            email, 
            age, 
            fee, 
            password) 
values("xiaoming", 
           "[email protected]", 
           20, 
           56.56, 
           Password("xiaoming")     //  Le mot de passe est une fonction ici Password()
      );
--  Contient toutes les informations de champ 
insert into user values(10, "nanan", "[email protected]", 38, 89.19, 2019-10-02, Password("nanan"));
  • Les champs de chaînes doivent être entourés de guillemets

  • Le mot de passe nécessite une fonction Password()

  • Ajouter un point - virgule à la fin de l'énoncé

  • En insérant seulement quelques champs

  • Le nom du champ peut être omis ,Il faut ajouterid, Et tous les champs doivent être remplis , Impossible d'ajouter des données partielles seulement

cf70e168b964691090e8754b1061a8f5.png

Mise à jour des données

Mise à jour des donnéesupdateLe plus utilisé estwhereDéclarations, Spécifiez une condition pour effectuer ;Sanswhere, Tous les champs seront modifiés (Sois prudent.)

  • DésignationidNo.

  • Spécifiez la valeur spécifique du champ

  • Plusieurs champs sont autorisés ,Séparés par des virgules

mysql> update user set name="nangying" where id=6;   // AdoptionidDésignation
mysql> update user set fee=88.76 where fee=56.90;   //  Spécifiez directement par nom de champ 
mysql> update user set email="[email protected]", age=54 where id=7;  //  Modifier plusieurs valeurs en même temps 
mysql> update user set fee=88.88 where id in(2,4,6);   // inUtilisation de
mysql> update user set fee=66.66 where id between 2 and 6;  // between ... and ...

Supprimer

Il y a deux cas de suppression d'un tableau :

  • delete:Supprimer le tableau,Insérer des données Fin de la dernière fois Deid Continuez à insérer ; L'enregistrement supprimé existe toujours

  • truncate:Vider la table,Réinsérer les donnéesidDe1C'est parti.;Pas d'espace mémoire

delete table user;     
truncate table user;
  • SupprimerdeleteUn enregistrement dans le tableau

delete from user where id=7;   // Supprimer l'enregistrement
insert into user (name,email,age,fee,password) values("lisi","[email protected]", 36, 81.17, Password("lisi"));  // id Est incrémenté par rapport à la base originale 
b42bc828aa90db46006f4eefc752fa9d.png6d628efb7f7f31ba3d569232084a5f96.png

À propos detruncate

# Supprimer les données
mysql> truncate table user;
Query OK, 0 rows affected (0.05 sec)

mysql> select * from user;
Empty set (0.00 sec)

# Réinsérer les données
mysql> insert into user (user_name, user_email, user_age, password, fee) values ("peter", "[email protected]", 27, password("101010"), 28.87);
Query OK, 1 row affected, 2 warnings (0.01 sec)

mysql> select * from user;
+----+-----------+-----------------+----------+--------------------------------+-------+
| id | user_name | user_email      | user_age | password                       | fee   |
+----+-----------+-----------------+----------+--------------------------------+-------+
|  1 | peter     | [email protected] |       27 | *C3BC3E91915DCAE22014892F9827D | 28.87 |
+----+-----------+-----------------+----------+--------------------------------+-------+
1 row in set (0.00 sec)

Trois、DCL

data control language,DCL, Il s'agit du langage de contrôle des données , Il s'agit principalement de la langue dans laquelle les logins et les permissions des utilisateurs sont contrôlés dans la base de données ,Contient

  • Connexion utilisateurMySQLBase de données

  • Comment modifier le mot de passe de l'utilisateur et oublier le mot de passe

  • Créer des utilisateurs réguliers et des licences

  • Révocation de l'autorisationrevoke

  • Voir les permissions et supprimer les utilisateurs

Toutes les commandes

1.  Voir les utilisateurs et les informations dans la base de données 
mysql -uroot -p
show databases;
use mysql;
show tables;
select user, host, passord from user;    #  Tous les utilisateurs sont là userDans le tableau

2. Créer un nouvel utilisateur、Autorisation、 Annuler les permissions et supprimer 
-- Création
create user "test"@"192.168.2.10" identified by"password";    # Spécifier l'utilisateurtest、ipEt le mot de passepassword
flush privileges;  # Rafraîchir les permissions
mysql -utest -h192.168.2.10 -p  # AvectestConnexion utilisateur

-- Autorisation
grant select, insert, delete on shop.* to "test"@"192.168.2.10";   # shop C'est la base de données,test Est une table dans la base de données 
flush privileges;  # Rafraîchir les permissions
systemctl restart mysql;  # Redémarrermysql

--  Autoriser la création d'utilisateurs en même temps 
grant select, insert, delete on shop.* to "test"@"192.168.2.10" identified  by"password";

-- Voir les permissions
show grants for "test"@"192.168.2.10"\G   # \G Le paramètre est pour une bonne sortie 

-- Révocation de l'autorisation
revoke delete on shop.* to "test"@"192.168.2.10";   # AnnulershopDans la base de donnéestestUtilisateursdeleteAutorité
flush privileges;  # Rafraîchir les permissions
systemctl restart mysql;  # Redémarrermysql

-- Supprimer l'utilisateur
drop user "test"@"192.168.2.10";

-- Soyez prudent.
grant all privileges on *.* to "test"@"192.168.2.10"  #  Donner toutes les permissions à toutes les bases de données 


3. Modifier le mot de passe de l'utilisateur
--  Mot de passe original de l'utilisateur connu , Capable de se connecter 
mysql -uroot -p
show databases;
use mysql;
show tables;
select user, host, password from user;    #  Tous les utilisateurs sont là userDans le tableau
update user set password=PASSWORD("123456admin") where user="test";  # Oui.testLe mot de passe de l'utilisateur est changé en123456admin
flush privileges;

--  Oublie le mot de passe original. : Avec la table des droits de saut ,Redémarrer le démon
mysql skip-grant-tables  #  Tableau des permissions de saut 
mysql  # Re - entrymysql
show databases;use mysql;show tables;
select user, host, password from user;    #  Tous les utilisateurs sont là userDans le tableau
update user set password=PASSWORD("123456admin") where user="test";  # Oui.testLe mot de passe de l'utilisateur est changé en123456admin
flush privileges;

4. VoirmysqlServices
-- window
 Aller directement au gestionnaire de tâches 
-- linux
netstat -an   # Trouver3306Port

À propos derootComptes

Par défaut,MySQL Base de données signifie autoriser root Compte connecté et connecté sur cet ordinateur .

  • -urootReprésentationrootComptes

  • -p Indique qu'un mot de passe est requis

  • Non.-h Indique que la valeur par défaut est native localhostOu127.0.0.1Connexion

26a58ea0770f9efba6287a1ff3c26eae.png

Connectez - vous pour voir le compte

MySQL Le numéro de port de service de la base de données est 3306,EnmysqlDe la base de donnéesuser Voir les informations de l'utilisateur de la base de données de connexion dans le tableau :

mysql> show databases;  # Voir toutes les bases de données
mysql> use mysql;   # SélectionnermysqlBase de données
mysql> show tables;   #  Consultez toutes les tables de la base de données des tables 
mysql> select user, host from user;   #  Voir le tableau userEthostInformation
0cc6d7086c4348ec18ab65c6bd947190.png

Supprimer l'utilisateur

Il est important de noter que les permissions doivent être rafraîchies après la suppression d'un utilisateur :

mysql> delete from user where host="%";   # SupprimerhostPour%Utilisateurs de
Query OK, 1 row affected (0.01 sec)

mysql> flush privileges;  # Rafraîchir les permissions
Query OK, 0 rows affected (0.00 sec)

Attention!: Quand dans un projet de développement réel , Le projet et le serveur de base de données ne sont pas au même endroit ,Peut spécifierip Connexion pour l'accès

mysql> update user set host="192.168.1.10" where user="root";
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select user,host from user;

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
4870fac794650a5b273eefb88415ae64.png

Quand vous quittezmysqlRe - entry,Doit être spécifiéIPAdresse,C'est ce qu'il y aIP

06a845e7953c787aec7d22627d0ab7d2.png

Problème de mot de passe

1、Modifier le mot de passe

Il faut aussi entrermysqlDe la base de donnéesuserDans le tableau

mysql>update user set password=PASSWORD("admin")  where user="root";   # Oui.root Changer le mot de passe du compte en admin

mysql> flush privileges;   # Opération de mise à jour
Query OK, 0 rows affected (0.00 sec)

2、Mot de passe oublié

  • Si vous oubliez le mot de passe, Besoin d'entrer dans le profil

[email protected]:~$ vim /etc/mysql/mysql.conf.d/mysqld.cnf
  • Trouver le skip-grant-tables,De l'avant#Enlevez, C'est juste décompresser. : Annuler l'authentification des droits , L'arrière - plan ouvre un nouveau processus sans accès secret MySQL

    486c171939ecc89a134cfc4d95f638a1.png

  • RedémarrerMySQLServices:systemctl restart mysql

  • AdoptionMySQLAccès direct:

54edb9f16c0e716efe75f6eb1732292f.png
  • Puis suivez les étapes ci - dessus pour réinitialiser le mot de passe

mysql> show databases;
mysql> use mysql;
mysql> select user, password  from user;
#  Ensuite, Réinitialisez le mot de passe 
f34b32015b805b34fec18e865e49cc7b.png

Quatre、DQL

DQL(data query language),Ça veut direLangage de requête de données, Le rôle principal est d'interroger les données de la base de données , C'est aussi la fonction la plus courante et la plus importante .

Les méthodes de recherche sont également variées :Requête conjointe、Requête de groupe、Requête interne、Sous - RequêteAttendez.,C'est bon.Limiter le nombre de requêtesAttendez., .Voici quelques questions communes

Format:

select 
	column1,
	column2,...  # Champs à interroger 
from table_name   # Nom du tableau
where Conditions

Simple requête

select 
	name,
	age 
from user
where id=4;   
where id in(1,3,5,7);
where name = "xiaoming";

Filtrer la requête

Les mots clés pour filtrer les requêtes sont distinct, Supprimer les valeurs dupliquées dans le champ

--  Filtrer les champs dupliqués 
select distinct(password) from user;     # password Est un duplicata 
select distinct password from user;   #  Les parenthèses ne sont pas nécessaires. 
a95c8aafec8b479d44e6b7891acff851.png

Requête de connexion

Les mots clés pour la requête de connexion sont concat

  • Utilisez directement le mode de connexion par défaut du système , Connectez les champs originaux avec un soulignement

  • Utiliserconcat...as...,as Spécifiez vous - même le nouveau nom de champ de la connexion plus tard

  • Requête avec le symbole de connexion concat_ws("+", Nom de la colonne1,Nom de la colonne2);Parmi eux"+" Est le connecteur spécifié

select concat(name, email) from user;          #  Afficher les résultats concat(name_email)
select concat(name, email) as nameEmail from user;  #  Utiliser le nouveau nom de champ nameEmailPour représenter
d7c1451b6a35d3591a470e215d5fe16e.png559c2bbf6e1018b71553efb1c85e866c.png025430dae954f90af3174201c2cf8335.png

Requête floue

Les mots clés pour les requêtes floues sont like,Traduction en chinoisComme

mysql> select user_name from student where user_name like "peter";    # Commepeter
mysql> select user_name from student where user_name like "%e";      # %Représente arbitraire, Indique que le nom est eFin
mysql> select user_name from student where user_name like "%e%";    #  Indique que le nom contient e

Trier la requête

Ordre croissant des enregistrements dans le tableau ascOu descendantdescDisposition,La valeur par défaut est ascendanteasc,Il faut aussi utiliserorder byMots clés:

  • Ordre croissant:asc,Par défaut

  • Ordre décroissant:desc

select * from student order by user_age asc;   # Ordre croissant d'âge
select * from student order by user_age desc;  #  Ordre décroissant d'âge 
b3c24dd2aa60ee7dd483392496ff5d5e.png

Fonction d'agrégation

select count(*) from student;    # Total des enregistrements
select sum(Nom de la colonne) from student;  # Somme
select avg(Nom de la colonne) from student;   # Moyenne
select max/min(Nom de la colonne) from student;  # Max./Petite valeur

Limiter les résultats de la requête

Limiter le nombre d'entrées pour la requête en utilisant limitMots clés

  • Utilisation directelimit

  • Utiliserlimit ... offset ...: Indique par où commencer l'affichage ,Combien de lignes sont affichées

  • Abréviation:limit 5, 4:Indique que le5Ça commence,Afficher4Données de ligne

select name, age from user limit 5;    -- Afficher seulement5Données de ligne
select name, age from user limit 5 offset 4;   -- De4(offset)La ligne commence à afficher5(limit)Données de ligne 
select name, age from user limit 4, 5 ;  -- Les effets sont les mêmes que: Avant virgule offsetLe contenu de, Après la virgule limitContenu
- END -
原网站

版权声明
本文为[La voie de l'analyse des données de junhong]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/177/202206260037335795.html