当前位置:网站首页>MySQL Advanced (index, view, stored procedures, functions, Change password)
MySQL Advanced (index, view, stored procedures, functions, Change password)
2022-07-06 17:25:00 【Tang Monk ride White Horse】
Index
mysqlL'index est comme une page de catalogue d'un dictionnaire(Index)C'est pareil,On peut appuyer sur pinyin.、Les coups.、Répertoire trié par les radicaux latéraux, etc.(Index)Trouver rapidement les mots requis.
Index index simple et index combiné.Index à une seule colonne,C'est - à - dire qu'un index ne contient qu'une seule colonne,Un tableau peut avoir plusieurs index à une seule colonne,Mais ce n'est pas un index combiné.Indice combiné,C'est - à - dire qu'un index contient plusieurs colonnes.
Lors de la création d'un index,Vous devez vous assurer que l'index est appliqué àSQL Conditions de l'instruction de requête(En général WHERE Conditions de la clause).En fait,,L'index est aussi un tableau,Le tableau contient la clé primaire et les champs d'index,Et pointer vers l'enregistrement de la table des entités.
Bien que l'indexation puisse accélérer la recherche de données,Mais une utilisation excessive de l'index peut entraîner des abus.L'index aura donc ses inconvénients:Bien que l'indexation améliore considérablement la vitesse de requête,En même temps, il ralentit la mise à jour de la table,Comme pour le tableauINSERT、UPDATEEtDELETE.Parce que lors de la mise à jour du tableau,MySQLNon seulement enregistrer les données,Et enregistrer le fichier index.Un fichier index qui prend de l'espace disque pour indexer.
Index général
- Voir l'index
show index from Nom du tableau;
- Créer un index
Mode 1:Créer un index lors de la création d'une table
CREATE TABLE create_index(
id INT PRIMARY KEY,
NAME VARCHAR(10) UNIQUE,
age INT,
INDEX age_index(age)
);
Mode 2:Pour les tableaux existants,Ajouter un index
//Si le champ spécifié est une chaîne,Longueur requise,La longueur recommandée correspond à la longueur du champ défini
//Type de champ si ce n'est pas une chaîne,Peut ne pas remplir la section longueur
create index Nom de l'index on Nom du tableau(Nom du champ(Longueur))
Exemple:
create index age_index on create_index(age);
create index name_index on create_index(name(10));
- Supprimer l'index
drop index Nom de l'index on Nom du tableau;
- Activer la surveillance du temps de fonctionnement
set profiling=1;
- Voir l'heure d'exécution
show profiles;
- Modifier la structure du tableau(Ajouter un index)
ALTER table tableName ADD INDEX indexName(columnName)
ALTER TABLE create_index ADD INDEX name_index(NAME(10))
Index unique
Similaire à l'index normal précédent,La différence est:La valeur de la colonne index doit être unique,Mais les valeurs nulles sont autorisées.S'il s'agit d'un index combiné,La combinaison des valeurs de colonne doit être unique.Il est créé de plusieurs façons:
- Créer un index unique
CREATE UNIQUE INDEX indexName ON mytable(username(length))
CREATE UNIQUE INDEX name_index2 ON create_index(name(10))
- Modifier la structure de la table créer un index unique
ALTER table mytable ADD UNIQUE [indexName] (username(length));
ALTER TABLE create_index ADD UNIQUE name_index3(name(10));
- Spécifier directement lors de la création d'une table
CREATE TABLE create_index(
ID INT NOT NULL,
name VARCHAR(16) NOT NULL,
UNIQUE [indexName] (username(length))
);
- UtiliserALTER Commande ajouter un index
//Il y a quatre façons d'ajouter un index à une table de données:
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): L'instruction ajoute une clé primaire,Cela signifie que la valeur de l'index doit être unique,Et ne peut pas êtreNULL.
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): La valeur de cette instruction pour créer un index doit être unique(Sauf queNULLExtérieur,NULLPeut se produire plus d'une fois).
ALTER TABLE tbl_name ADD INDEX index_name (column_list): Ajouter un index normal,La valeur de l'index peut apparaître plus d'une fois.
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):L'instruction spécifie l'index comme suit: FULLTEXT ,Pour l'indexation en texte intégral.
Voir
Pour les requêtes complexes, Utilisé en plusieurs endroits , Si les besoins changent ,Changement nécessairesqlDéclarations, Doit être modifié en plusieurs endroits ,L'entretien est très difficile.
Résolution:Définir la vue
La nature de la vue est l'encapsulation de la requête ,Définir la vue,Recommandationsv_Au début
Syntaxe:
create view Nom de la vue as selectDéclarations;
- Exemple:Créer une vue, Demander des renseignements sur les notes des élèves
create view v_stu_score_course as
select
stu.*,cs.courseNo,cs.name courseName,sc.score
from
students stu
inner join scores sc on stu.studentNo = sc.studentNo
inner join courses cs on cs.courseNo = sc.courseNo
CREATE VIEW v_stu AS
SELECT
name,sex
FROM
students
//Utiliser la vue
SELECT * FROM v_stu
- Voir la vue: La table de visualisation énumère également toutes les vues
show tables;
- Supprimer la vue
drop view Nom de la vue;
Exemple:
drop view v_stu_score_course;
- Utiliser la vue: Le but de la vue est d'interroger
select * from v_stu_score_course;
SELECT * FROM v_stu
Procédures stockées
Procédures stockées(Stored Procedure)Est un programme complexe stocké dans une base de données,Un objet de base de données appelé par un programme externe.Les procédures stockées sont conçues pour remplir des fonctions spécifiquesSQLEnsemble de déclarations,Compilé et sauvegardé dans la base de données,L'utilisateur peut spécifier le nom de la procédure stockée et donner les paramètres(Au besoin)Pour invoquer l'exécution.Les procédures stockées sont idéologiquement simples,C'est la base de données. SQL Encapsulation et réutilisation du Code au niveau linguistique.
Avantages
- Procédure stockée encapsulée,Et cacher une logique d'entreprise complexe.
- Les procédures stockées peuvent renvoyer des valeurs,Et peut accepter les paramètres.
- La procédure stockée ne peut pas être utilisée SELECT Instructions à exécuter,Parce que c'est un sous - programme,Voir la table,Différentes tables de données ou fonctions définies par l'utilisateur.
- Les procédures stockées peuvent être utilisées pour la vérification des données,Appliquer la logique commerciale, etc..
Inconvénients
- Procédures stockées,Souvent personnalisé sur une base de données spécifique,Parce que les langues de programmation prises en charge sont différentes.Lors du passage au système de base de données d'un autre fournisseur,La procédure stockée originale doit être réécrite.
- Étalonnage des performances et rédaction des procédures stockées,Limité par divers systèmes de base de données.
- Syntaxe:
delimiter $$
create procedure Nom de la procédure stockée(Liste des paramètres)
begin
sqlDéclarations
end$$
delimiter ;
- Description: delimiterPour définir le séparateur, Point - virgule par défaut
- Analyse:Par défaut, La procédure stockée est associée à la base de données par défaut , Si vous voulez spécifier que la procédure stockée est créée sous une base de données spécifique , Préfixer le nom de la base de données avant le nom de la procédure .Lors de la définition du processus,Utiliser DELIMITER
$$
Commande le symbole de fin de l'instruction à partir du point - virgule ; Remplacer temporairement par deux$$,De sorte que les points - virgules utilisés dans le corps de la procédure soient transmis directement au serveur, Sans que le client (Par exemple:mysql)Explication. - Exemple:
Exigences: Créer un processus de requête ,Demander des renseignements aux étudiants - step1:Définir le diviseur
delimiter $$
- step2:Créer une procédure stockée
create procedure proc_stu()
begin
select * from students;
end$$
- step3: Restaurer le Splitter
delimiter ;
- Syntaxe d'appel:
call Procédures stockées(Liste des paramètres);
Procédure stockée d'appelproc_stu
call proc_stu();
Fonctions
- Créer une syntaxe de fonction
delimiter $$
create function Nom de la fonction(Liste des paramètres) returns Type de retour
begin
sqlDéclarations
end
$$
delimiter ;
- Exemple de fonction
Exigences:Créer une fonctionmy_trim, Pour supprimer les espaces à gauche et à droite de la chaîne - step1:Définir le diviseur
delimiter $$
- step2:Créer une fonction
create function my_trim(str varchar(100)) returns varchar(100)
begin
return ltrim(rtrim(str));
end
$$
- step3: Restaurer le Splitter
delimiter ;
- Utiliser des fonctions personnalisées
select ' abc ',my_trim(' abc ')
- Résumé:
- Les procédures et fonctions stockées sont conçues pour effectuer des opérations répétables sur la base de données sql Une collection d'énoncés.
- Les procédures et fonctions stockées sont compilées en une seule fois,Est mis en cache, La prochaine fois que vous l'utilisez, tapez directement sur ce qui est déjà compilé dans le cache sql, Pas besoin de recompiler
- Réduire les interactions réseau,Réduire le trafic d'accès au réseau
Modifier le mot de passe
Description:Modifieruser Le mot de passe de la table est le mot de passe pour modifier la base de données
- UtiliserrootConnexion,ModifiermysqlDe la base de donnéesuserTableau
- Utiliserpassword()Fonction pour le chiffrement par mot de passe
- Remarque rafraîchir les permissions après modification
use mysql;
update user set password=password('Nouveau mot de passe') where user='Nom d'utilisateur';
Exemple:
update user set password=password('123') where user='root';
Rafraîchir les permissions: flush privileges;
Oublie ça. root Mot de passe du compte
1、Configurationmysql Aucun mot de passe n'est requis pour se connecter ,Modifier le profil
- CentosMoyenne:L'emplacement du profil est/data/server/mysql/my.cnf
- WindowsMoyenne:L'emplacement du profil estC:\Program Files (x86)\MySQL\MySQL Server 5.1\my.iniModifier,Trouvermysqld, Sur la ligne suivante ,Ajouterskip-grant-tables
[mysqld]
skip-grant-tables
2、Redémarrermysql,Connexion sans mot de passe,ModifiermysqlDe la base de donnéesuserTableau
use mysql;
update user set password=password('Nouveau mot de passe') where user='Nom d'utilisateur';
Exemple:
update user set password=password('123') where user='root';
Rafraîchir les permissions: flush privileges;
3、Restaurer le profil, Ajouter ce qui vient d'être ajouté skip-grant-tablesSupprimer,Redémarrer
边栏推荐
猜你喜欢
随机推荐
唯有学C不负众望 TOP5 S1E8|S1E9:字符和字符串&&算术运算符
Case: check the empty field [annotation + reflection + custom exception]
Learn the wisdom of investment Masters
05个人研发的产品及推广-数据同步工具
Only learning C can live up to expectations top3 demo exercise
学习投资大师的智慧
JVM garbage collector part 2
Activiti目录(三)部署流程、发起流程
Only learning C can live up to expectations TOP4 S1E6: data type
Install docker under windows10 (through Oracle VM VirtualBox)
vscode
Mongodb learning notes
吴军三部曲见识(七) 商业的本质
复盘网鼎杯Re-Signal Writeup
Activiti目录(一)重点介绍
Eight part essay that everyone likes
灵活报表v1.0(简单版)
IDEA断点调试技巧,多张动图包教包会。
03个人研发的产品及推广-计划服务配置器V3.0
Flink 解析(七):时间窗口