当前位置:网站首页>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:

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

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 -AFonctionnement 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 omisLe 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é primaire
primary keyEtauto_incrementDoit être utilisé ensembleRè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. 
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;
Opérations sur le terrain
Les mots clés sont:alter, Sélectionnez d'abord le tableau à utiliser .
modify:Modifierchange:Changer de nomadd: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 ajouter
id, Et tous les champs doivent être remplis , Impossible d'ajouter des données partielles seulement

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ésignation
idNo.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éesFin de la dernière foisDeidContinuez à insérer ; L'enregistrement supprimé existe toujourstruncate:Vider la table,Réinsérer les donnéesidDe1C'est parti.;Pas d'espace mémoire
delete table user;
truncate table user;Supprimer
deleteUn 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 

À 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 utilisateur
MySQLBase de donnéesComment 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'autorisation
revokeVoir 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-pIndique qu'un mot de passe est requisNon.
-hIndique que la valeur par défaut est nativelocalhostOu127.0.0.1Connexion

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
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)
Quand vous quittezmysqlRe - entry,Doit être spécifiéIPAdresse,C'est ce qu'il y aIP:

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.cnfTrouver 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 secretMySQL
Redémarrer
MySQLServices:systemctl restart mysqlAdoption
MySQLAccès direct:

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 
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 ConditionsSimple 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. 
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
Utiliser
concat...as...,asSpécifiez vous - même le nouveau nom de champ de la connexion plus tardRequê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


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 eTrier 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éfautOrdre 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 
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 valeurLimiter les résultats de la requête
Limiter le nombre d'entrées pour la requête en utilisant limitMots clés
Utilisation directe
limitUtiliser
limit ... offset ...: Indique par où commencer l'affichage ,Combien de lignes sont affichéesAbré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 -边栏推荐
猜你喜欢
随机推荐
# 云原生训练营毕业总结
哪个证券公司手机股票开户更好更安全?
Calibration...
jenkins汉化及汉化无效解决方案
win32
One year's work
cv==biaoding---open----cv001
It's better to finish one than start thousands of times (reprinted from Douban)
regular expression
weishi相机显示
shell学习记录(三)
Connecting the projector
Chrome browser developer tool usage
数字商品DGE--数字经济的财富黑马
Markov decision process (MDP): Blackjack problem (mc-es)
Small ball bouncing against the wall
Simplex method (1)
Data analysis - data source, field type, data collection trap
.NET7之MiniAPI(特别篇) :Preview5优化了JWT验证(下)
Tcp网络通信中各个状态的含义








