Maison  >  Article  >  base de données  >  Collection explosive de commandes de base de données MySQL (partage de résumé)

Collection explosive de commandes de base de données MySQL (partage de résumé)

WBOY
WBOYavant
2021-12-28 19:43:0613319parcourir

Cet article vous apporte des connaissances pertinentes sur les commandes de base de données MySQL. Il compile de nombreuses commandes couramment utilisées. J'espère qu'il sera utile à tout le monde.

Collection explosive de commandes de base de données MySQL (partage de résumé)

1. Commandes courantes pour les bases de données

1. Connectez-vous à la base de données
mysql -u username -p password
2. Afficher les bases de données existantes
afficher les bases de données ;
3. Créer une base de données
créer le nom SQL de la base de données. ;
4. Sélectionnez la base de données
use database sqlname;
5. Affichez les tables dans la base de données (sélectionnez d'abord la base de données)
show tables
6. Affichez les informations de version de la base de données actuelle et la connexion; nom d'utilisateur
select version(),user();
7. Supprimer la base de données (suppression sans invite lors de la suppression)
drop database sqlname;

2. Commandes pour les tables de la base de données

1.
(1) Syntaxe :
create table tablename(
field 1 data type field attribut

field n
);
(2) Remarque :
1. Pour éviter les conflits avec des mots réservés lors de la création d'une table, utilisez ' ' pour l'entourer
2. Commentaires sur une seule ligne : #…
Commentaires sur plusieurs lignes : //
3. Lors de la création d'un tableau, séparez plusieurs champs par des virgules anglaises et n'utilisez pas de virgules dans la dernière ligne.
(3) Contraintes et attributs de champ
1. Contraintes non nulles non nulles (les champs ne peuvent pas être vides)
2. Contraintes par défaut default (définir les valeurs par défaut)
3. Contraintes uniques clé unique ( uk) (La valeur du champ défini est unique et peut être nulle, mais il ne peut y avoir qu'une seule valeur nulle)
4. Contrainte de clé primaireclé primaire (pk) (comme identifiant unique de l'enregistrement de la table)
5. Contrainte de clé étrangèreclé étrangère (fk)(Utilisée pour établir une relation entre deux tables, vous devez spécifier quel champ de la table principale est référencé. Dans le moteur de stockage de la base de données, InnoDB prend en charge les clés étrangères, mais MyISAM ne prend pas en charge les clés étrangères.
Les exigences de champ en tant que clés étrangères sont Clé primaire dans la table principale (clé primaire à champ unique))

Ajouter des contraintes de clé étrangère :
CONSTRAINT FK_Nom de clé étrangère FOREIGN KEY (champ de clé étrangère dans le table de mots) REFERENCES nom de la table associée (champ associé).
Collection explosive de commandes de base de données MySQL (partage de résumé) comme clé étrangère de la table de mots
Collection explosive de commandes de base de données MySQL (partage de résumé)
Collection explosive de commandes de base de données MySQL (partage de résumé)
1.Définissez auto_increment=n, en commençant par n.
2.Définissez l'incrémentation automatique @@ auto_increment_increment=m, la taille du pas est m.
Collection explosive de commandes de base de données MySQL (partage de résumé)
3. Clé primaire de paramétrage multi-champs : clé primaire (champ 1, champ 2...champ n)
4. Commentaires/texte descriptif dans le tableau :)comment="texte descriptif";
5. Définissez le jeu de caractères :)charset="Character set";
6. Affichez la structure de la table : describe'table name'/desc table name
7. Affichez la définition de la base de données : show create database sqlname;
8. Affichez la définition de la table de données : show create table tablename;
9. Affichez le moteur de stockage par défaut : show variables like 'storage_engine%';
11. Spécifiez le moteur de stockage de la table : )engine=storage engine;
10. Supprimer la table : drop table 'tablename'
11. Obtenir la date actuelle : now(); 12. Modifier la table : (1) Modifier le nom de la table :
modifier l'ancien nom de la table renommer le nouveau nom de la table ;
(2) Ajouter des champs : modifier le nom de la table ajouter le nom du champ type de données... ; (ajouter un nouveau champ)
(3) Modifier les champs :  modifier le nom de la table changer le nom du champ d'origine, nouveau type de données du nom du champ...;
(4) Supprimer les champs : modifier le nom de la table, supprimer le nom du champ
(5) Ajouter des contraintes de clé primaire après la création de la table :
modifier le nom de la table ; ajouter une contrainte nom de clé primaire nom de la table de clé primaire (champ de clé primaire)
(6) Après avoir créé la table, ajoutez une contrainte de clé étrangère (le champ utilisé comme clé étrangère doit être la clé primaire de la table principale (champ unique) clé primaire)) :
modifier le nom de la table ajouter une contrainte nom de clé étrangère la clé étrangère (champ de clé étrangère) fait référence au nom de la table associée (champ associé) ;
Insérer des données

1. Insérer une seule ligne de données :

insérer. dans le nom de la table (liste de noms de champs (séparés par des virgules)) valeurs (liste de valeurs (séparées par des virgules));
2. Insérez plusieurs lignes de données :
insérer dans le nom de la table (liste de noms de champs) valeurs (valeur liste 1), … , (liste de valeurs n);
3. Insérez les résultats de la requête dans une nouvelle table :
créez une nouvelle table (sélectionnez le champ 1, …, à partir de la table d'origine);

查询student表中的id,name,sex,phone数据插入到newstudent表中:

CREATE TABLE newstudent(SELECT id,`name`,sex,phone FROM student);
3. (modifier les données) :

mettre à jour le nom de la table, définir le nom de la colonne = mettre à jour la valeur où la condition de mise à jour ;

修改newstudent表中id=1001的数据名字为tom:

UPDATE newstudent SET `name`='tom' WHERE id=1001;
4 supprimer les données

(1)

supprimer du nom de la table où la condition de suppression ;
supprimer supprime toutes les données, pas juste une seule colonne.

删除newstudent表中名字为tom的数据:

DELETE FROM newstudent WHERE `name`='tom';

(2) Tronquer la table supprime les données : tronquer la table supprime toutes les lignes de la table, mais la structure de la table, les colonnes, les contraintes, les index, etc. ne changeront pas. Ne peut pas être utilisé pour les tables avec des contraintes de clé étrangère. Les données supprimées ne peuvent pas être récupérées.


truncate table nom de la table où condition de suppression ;

数据查询

1.使用select查询
select 列名/表达式/函数/常量 from 表名 where 查询条件 order by 排序的列名asc/desc;
(1)查询所有的数据行和列:
select * from 表名;
(2)查询部分行和列:
select 列名… from 表名 where 查询条件;
(3)在查询中使用列的别名:
select 列名 AS 新列名 form 表名 where 查询条件;
计算,合并得到新的列名:
select 列名1+’.’+列名2 AS 新列名 from 表名;
(4)查询空值:
通过is null 或者 is not null 判断列值是否为空

查询student表中Email为空的学生姓名:

SELECT `name` FROM student WHERE Email IS NULL;

2.分组查询
Collection explosive de commandes de base de données MySQL (partage de résumé)

#查询不同课程的平均分,最低分,最高分,并查询出平均分大于80分的课程
SELECT r.subjectno,sub.`SubjectName` 课程名称,AVG(StudentResult) 平均分,
MAX(StudentResult) 最高分,MIN(StudentResult) 最低分
FROM result r INNER JOIN `subject` sub
ON r.`SubjectNo`=sub.`SubjectNo` 
GROUP BY r.subjectno
#where AVG(StudentResult)>=80出现错误,
#分组查询group by 在where语句后,
#group by 约束条件使用having语句
HAVING AVG(StudentResult)>=80;

Collection explosive de commandes de base de données MySQL (partage de résumé)

常用函数

1.聚合函数:
(1)AVG (平均值):select avg(列名)from 表名
假设列名为成绩 则查询到的是表中所有成绩的平均值。
(2)count 返回某字段的行数
(3)max 返回某字段的最大数
(4)min 返回某字段的最小值
(5)sum 返回某字段的和。
2.字符串函数:
(1)concat() 连接字符串s1,s2…sn为一个完整的字符串。
(2)insert(s1,p1,n,news)将字符串s1从p1位置开始,n个字符长的字串替换为字符串news。
(3)lower(s)将字符串s中的所有字符改为小写。
(4)upper(s)将字符串s中的所有字符改为大写。
(5)substring(s,num,len)返回字符串s的第num个位置开始长度为len的子字符串。
3.时间日期函数:
(1)获取当前日期:curdate();
(2)获取当前时间:curtime();
(3)获取当前日期和时间:now();
(4)返回日期date为一年中的第几周:week(date);
(5)返回日期date的年份:year(date);
(6)返回时间time的小时值:hour(time);
(7)返回时间time的分钟值:minute(time);
(8)返回日期参数(date1和date2之间相隔的天数):datediff(date1,date2);
(9)计算日期参数date加上n天后的日期:adddate(date,n);
4.数学函数
(1)返回大于或等于数值x的最小整数:ceil(x);
(2)返回小于或等于数值x的最大整数:floor(x);
(3)返回0~1之间的随机数:rand();
order by 子句
order by子句按照一定的顺序排列查询结果,asc升序排列,desc降序排列。
limit子句
显示指定位置指定行数的记录。
select 字段名列表 form 表名 where 约束条件 group by分组的字段名 order by 排序列名 limit 位置偏移量,行数;
#查询学生信息里gid=1按学号升序排列前四条记录
Collection explosive de commandes de base de données MySQL (partage de résumé)

#查询学生信息里gid=1按学号升序排列前四条记录(步长)
SELECT id,`name` FROM `student1` WHERE gid=1 ORDER BY id LIMIT 4;
(查询表里全部信息中gid=1的前四个学生)

查询结果:
Collection explosive de commandes de base de données MySQL (partage de résumé)

#查询学生信息里gid=1按学号升序排列前四条记录(位置偏移量,步长)
SELECT id,`name` FROM `student1` WHERE gid=1 ORDER BY id LIMIT 4,4;
(查询表中全部信息gid=1前四条以后的全部信息中的前四条学生信息)

查询结果:
Collection explosive de commandes de base de données MySQL (partage de résumé)

模糊查询

in子查询******not in 子查询
使用in关键字可以使父查询匹配子查询返回的多个单字段值。
解决使用比较运算符(=,>等),子查询返回值不唯一错误信息。
like模糊查询
LIKE语句语法格式:select * from 表名 where 字段名 like 对应值(子串)。

它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。

A:% 包含零个或多个字符的任意字符串: 1、LIKE’Mc%’ 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
  2、LIKE’%inger’ 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
  3、LIKE’%en%’ 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
  B:_(下划线) 任何单个字符:LIKE’_heryl’ 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
  C:[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符:、
  1,LIKE’[CK]ars[eo]n’ 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
  2、LIKE’[M-Z]inger’ 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)
  ***D:[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符:LIKE’M[^c]%’ 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。
  E: 它同于DOS命令中的通配符,代表多个字符
:c
c代表cc,cBc,cbc,cabdfec等多个字符。
  F:?同于DOS命令中的?通配符,代表单个字符 :b?b代表brb,bFb等
  G:# 大致同上,不同的是代只能代表单个数字。k#k代表k1k,k8k,k0k 。
  F:[!] 排除 它只代表单个字符
  下面我们来举例说明一下:
  例1,查询name字段中包含有“明”字的。
  select * from table1 where name like ‘%明%’
  例2,查询name字段中以“李”字开头。
  select * from table1 where name like '李

  例3,查询name字段中含有数字的。
  select * from table1 where name like ‘%[0-9]%’
  例4,查询name字段中含有小写字母的。
  select * from table1 where name like ‘%[a-z]%’
  例5,查询name字段中不含有数字的。
  select * from table1 where name like ‘%[!0-9]%’
  可以自定义转移符----》escape’自定义转移符’
  distinct------》去除重复项
  
  between*and模糊查询
 操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
 null ,not null查询

-- 查询手机号不为null的用户数据
SELECT * from user where phone is not null;
 
-- 查询手机号为null的用户数据
SELECT * from user where phone is null;

exists 子查询 not exists子查询
exists子查询用来确认后边的查询是否继续进行
drop table if exists test—>判断是否存在表test,如果存在就删除。
not exists实现取反操作。对不存在对应查询条件的记录。

多表连接查询

多表连接查询是通过各个表之间共同列的关联性来查询数据。
1.内连接查询
内连接查询根据表中共同的列进行匹配。取两个的表的交集。两个表存在主外键关系是通常使用内连接查询。
内连接使用inner join…on 关键字或者where子句来进行表之间的关联。
inner 可省略 on 用来设置条件。
(1)在where子句中指定连接条件
(2)在from中使用inner join…on关键字

#查询学生姓名和成绩
SELECT studentname,studentresult FROM student s,result r
WHERE s.`StudentNo`=r.`StudentNo`
#在from中使用inner join....on关键字
SELECT s.`StudentName`,r.`StudentResult` ,r.`SubjectNo`FROM student s
INNER JOIN result r ON s.`StudentNo`=r.`StudentNo`

两种方法查询结果相同。
2.外连接查询
外连接查询中参与连接的表有主从之分,已主表的每行数据匹配从表的数据列,将符合连接条件的数据直接返回到结果集中,对不符合连接条件的列,将被填上null值再返回到结果集中。
(1)左外连接查询
left join…on 或者left outer join…on关键字进行表之间的关联。

SELECT s.`StudentName`,r.`StudentResult` ,r.`SubjectNo`FROM student s
LEFT JOIN result r ON s.`StudentNo`=r.`StudentNo`

将没有成绩的学生成绩查出。
(2)右外连接查询
右外连接包含右表中所有的匹配行,右表中有的项在左表中没有对应的项将以null值填充。
right join…onright outer join…on关键字进行表之间的关联。
(3)自连接
把一个表作为两个表使用。

#创建一个表
CREATE TABLE book(
id INT(10),
sort INT(10),
books VARCHAR(10) NOT NULL
);
#插入数据
INSERT INTO book VALUES (2,1,'古文书'),
(3,1,'现代书'),
(4,2,'《三字经》'),
(5,2,'《唐诗三百首》'),
(6,3,'《我与地坛》'),
(7,2,'《游大林寺》'),
(8,2,'《王右军年减十岁时》'),
(9,3,'《致橡树》');

#查询结果为:
#书籍类型       书籍名
#古文书         三字经....
#现代书         我与地坛....

SELECT a.books 书籍类型, b.books 书籍名  
FROM book a,book b
WHERE a.id=b.sort;

Collection explosive de commandes de base de données MySQL (partage de résumé)
自连接查询结果:
Collection explosive de commandes de base de données MySQL (partage de résumé)

Transactions MySQL, vues, index, sauvegarde et récupération

1. Transactions
Les transactions font référence au regroupement d'une série d'opérations de données en un tout pour une gestion unifiée.
Soumettez ou annulez la demande de création au système avec toutes les commandes dans leur ensemble.
Propriétés des transactions : atomicité, cohérence, isolation, durabilité.
Le moteur de stockage myISA ne prend pas en charge les transactions.

Désactiver la soumission automatique des transactions : définir autocommit=0 ;
(1) Démarrer la transaction : commencer/démarrer la transaction ;
(2) Soumettre la transaction : valider ;
(3) Annuler la transaction : restaurer ; set autocommit=1 ;
Définir le jeu de résultats sur ? ? Affichage du format d'encodage : définir des noms ? ? ;

2. Vue Une vue est un moyen d'afficher les données dans une ou plusieurs tables d'une base de données. Une vue est une table virtuelle créée sous la forme d'un sous-ensemble de lignes ou de colonnes à partir d'une ou plusieurs tables. Les vues agissent comme des filtres de table dans les requêtes.
(1) Créer une vue : créer le nom de la vue sous la forme
(2) Supprimer une vue : supprimer le nom de la vue
(3) Afficher les données de la vue : sélectionner. . . . . à partir du nom de la vue ;

3. Index L'index est similaire à la table des matières d'un livre. En utilisant l'index, le programme de base de données peut trouver les données requises sans analyser la table entière.
(1) Données normales : les doublons et les valeurs nulles sont autorisés.
(2) Index unique : la duplication n'est pas autorisée. Il peut y avoir plusieurs index uniques.
(3) Index de clé primaire : non vide, unique. Supprimez la clé primaire lors de la suppression ;
(4) Index composite : combinez plusieurs colonnes en tant qu'index. ?
(5) Index de texte intégral : valeurs répétables et nulles, créées en char, varchar, text.

where match (nom de la colonne) avec (« trouver du contenu ») ; (6) Index spatial : un index établi sur des colonnes de types de données spatiales.

Créer un index : créer le nom de l'index [Type d'index] sur le nom de la table (colonne pour créer l'index)
Ou ajouter le type d'index après la colonne lors de la création de la table ;
Ou modifiez la table, modifiez le nom de la table, ajoutez le nom de l'index (colonne d'index) ;
Supprimez l'index : supprimez le nom de l'index ;
Afficher l'index à partir du nom de la table 

4. Utilisez La commande mysqldump sauvegarde la base de données mysqldump -u -p nom de la base de données > Emplacement et nom de la base de données de sauvegarde
Exportez les données de la table vers un fichier texte
sélectionnez * à partir du nom de la table où les conditions de requête sont placées dans le fichier externe Emplacement et nom de la base de données de sauvegarde ; ;
2. Utilisez la commande mysql pour restaurer la base de données
(créez d'abord une nouvelle base de données)

mysql -u -p Nom de la base de données nouvellement créée commande source ; pour restaurer la base de données
fichier de sauvegarde de la base de données source ;
Nouvel utilisateur

#Créer un utilisateur localCRÉER UN UTILISATEUR `user`@`localhost` IDENTIFIÉ PAR '123123';

#Les utilisateurs peuvent se connecter à n'importe quel ordinateur distant hôte, en utilisant le caractère générique %

CREATE USER `user2`@`123 %` IDENTIFIED BY '123123';

#Autoriser toutes les autorisations à l'utilisateur

GRANT ALL ON mysql.`user` TO `user2`@`123 %`;

#Autoriser l'utilisateur créé

GRANT SELECT ,INSERT ON mysql.`user` TO `user2`@`123%`

#Autorisation lors de la création d'un utilisateur

GRANT SELECT,INSERT ON mysql.` user` TO `user_2`@`123%` IDENTIFIÉ PAR '123123 ';

#Supprimer l'utilisateur user2 (vous devez disposer des autorisations globales de base de données ou des autorisations de sélection lors de l'utilisation des instructions de suppression)

DROP USER `user2`@`123%` ;

DROP USER `user_2`@`123%`;

DROP USER `user`@`localhost`;

#mysqladmin Modifiez le mot de passe du compte super utilisateur user2 (la commande mysqladmin est utilisée dans cmd et ne peut modifier que le mot de passe super utilisateur)

mysqladmin -u root -p PASSWORD "123456";

#Changer le mot de passe de l'utilisateur actuellement connecté

SET PASSWORD =PASSWORD("123456");

#Changer le mot de passe des autres utilisateurs

DÉFINIR LE MOT DE PASSE POUR `user2`@`123%`=PASSWORD("123456");

Apprentissage recommandé :

Tutoriel vidéo MySQLCollection explosive de commandes de base de données MySQL (partage de résumé)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer