article Annuaire
- MySQL de base
- A, LDD (Data Definition Language)
- 1. Créer une base de données
- 2, affiche toutes les bases de données
- 3, en utilisant la base de données
- 4. Création d'une table (table: une unité de stockage de données)
- 5, montre toutes les tables
- 6, voir les champs de table
- 7, ajouter des champs à la table:
- 8, pour modifier le type de champ
- 9, supprimer le champ
- 10, de modifier le nom de table
- 11, voir les détails de la construction de la table
- 12, modifier le caractère de la table ensemble
- 13, (champ) pour modifier le nom de la colonne
- 14, supprimer la table
- Deux, DML: Manipulation des données Langue
- 1, toutes les requêtes de données
- 2, les données d'insertion
- 3, mise à jour
- 4, les dossiers de suppression
- Trois, déclarations DQL: données Query Language
- 1, toutes les requêtes de données
- 2, la requête spécifiée données
- 3, la requête de condition
- 4, requête floue
- 5, le tri
- 6, les fonctions d'agrégation
- 7, la fonction de groupe
- Un format de l'instruction select complète
- 8, limiter l'utilisation des mots-clés
- 9, les contraintes
- 10, la recherche conjointe multi-table
- 11, Index
- Quatre, DCL: gestion des utilisateurs, l'autorisation
- 4.1, la gestion des utilisateurs
- 1. Ajouter un utilisateur
- 2. Supprimer l'utilisateur
- 3. Modifier le mot de passe de l'utilisateur
- 4. utilisateur Query
- 5. Oubliez le mot de passe root mysql
- 4.2 Gestion des droits
MySQL de base
1, LDD: données Définition Langue
2, DML: Manipulation des données Langue
3, DQL: données langage de requête
4, DCL: gestion des utilisateurs, l' autorisation
A, LDD (Data Definition Language)
1. Créer une base de données
créer le nom de base de données de base de données du jeu de caractères UTF8; (UTF8 écrit en java)
# 创建数据库 bilibili
create database bilibili charset utf8;
2, affiche toutes les bases de données
show databases;
3, en utilisant la base de données
use 数据库名;
4. Création d'une table (table: une unité de stockage de données)
Tableau des utilisateurs: ID utilisateur, l'âge de l'utilisateur, le nom d'utilisateur;
#创建表user
create table user(
id int,
age int,
username varchar(10)
);
5, montre toutes les tables
show tables;
6, voir les champs de table
desc 表名;
7, ajouter des champs à la table:
ALTER Table add type de champ de nom de domaine;
#在user表添加1个性别:
alter table user add sex varchar(1);
8, pour modifier le type de champ
alter table modify de type de champ de nom de domaine de nom de table;
#将sex字段修改成int类型
alter table user modify sex int;
9, supprimer le champ
alter nom de champ de nom de la table de chute de la table;
#将字段sex删除
alter table user drop sex;
10, de modifier le nom de table
renommer la table la table d'origine au nouveau nom de la table;
#将数据库bilibili中user表的表名修改为student;
rename table user to stu;
11, voir les détails de la construction de la table
montrer create table 表 名;
12, modifier le caractère de la table ensemble
alter table caractère de nom de table définir le nom du jeu de caractères;
#将student表的字符集修改为gbk(最好再改回utf8)
alter table stu character set gbk;
alter table stu character set utf8;
13, (champ) pour modifier le nom de la colonne
ALTER le nom de la table de table changement du type de noms de colonnes d' origine nouveau champ Nom de la colonne;
#将字段 id 改为 sid
alter table stu change id sid int;
14, supprimer la table
drop Nom de la table;
Deux, DML: Manipulation des données Langue
1, toutes les requêtes de données
select * from nom de la table,
sélectionnez * de nom de la table \ G; (majuscule G) ( en général ne le font pas)
2, les données d'insertion
insérer dans la table (champ 1, champ 2, ...) des valeurs (la valeur du champ 1, la valeur de champ de 2);
#插入一条数据
insert into stu (sid,age,username) values(5,14,'小萝莉');
3, mise à jour
Série nom de colonne de la table de mise à jour = nouvelle valeur de colonne de la colonne d'origine où le nom de colonne = valeur;
#将 小萝莉 修改成 御姐
update stu set username = '御姐' where sid=5;
4, les dossiers de suppression
supprimer du nom de la table; // supprimer toutes les données de la table
effacent de la table où les noms de colonnes = nouvelle valeur de la colonne; // supprimer une table de données, mais vous pouvez récupérer
troncature nom de la table de table; // supprimer toute la table, puis rétablir une table de la même structure, les données ne peuvent pas être récupérées
#把御姐删除了
delete from stu where username = '御姐';
Trois, déclarations DQL: données Query Language
1, toutes les requêtes de données
select * from 表名;
2, la requête spécifiée données
select 字段名1,字段2... from 表名;
3, la requête de condition
select * from 表名 where 条件;
#条件关键字、关键字符
等于 =
不等于 != or <>
小于等于 <=
大于等于 >=
between...and... 在 ## 和 ## 之间(前小后大)
#查询stu表中小于17岁的信息
select * from stu where age <=17;
#查询年龄在15到17之间的信息
select * from stu where age between 15 and 17;
and 和,并且
or 或,或者
is null 为空值
is not null 不为空值
#查询年龄为15或者17的成员信息
select * from stu where age = 15 or age =17;
4, requête floue
模糊查询
like _单个字符
like %多个字符
#查询姓名是小字开头的
select * from stu where username like '小%';
5, le tri
排序关键字 order by
升序 asc (默认)
降序 desc
#将stu表中的成员信息根据年龄降序排序
select * from stu order by age desc;
6, les fonctions d'agrégation
count(字段名) 统计该字段不为null的行数
max(字段名) 统计该字段中最大的值
min(字段名) 统计该字段中最小的值
sum(字段名) 统计该字段中所有的值的和
avg(字段名) 统计该字段中所有的值的平均值
7, la fonction de groupe
分组关键字: group by 字段名
将该字段中相同的值分为一组(例如每个单位,每个部门,每个班级...等)
分组之前可以用where关键字加条件
分组之后可以使用having添加条件
Un format de l'instruction select complète
一个完整的select语句格式如下:
select 字段
from 表名
where …….
group by ……..
having …….(就是为了过滤分组后的数据而存在的—不可以单独的出现)
order by ……..
limit...
以上语句的执行顺序:
1. 首先执行where语句过滤原始数据
2. 执行group by进行分组
3. 执行having对分组数据进行操作
4. 执行select选出数据
5. 执行order by排序
6. 执行limit
原则:能在where中过滤的数据,尽量在where中过滤,效率较高。
having的过滤是专门对分组之后的数据进行过滤的。
8, limiter l'utilisation des mots-clés
limit用来获取一张表中的某部分数据。
limit只有在mysql中存在,不通用,是mysql数据库管理系统的特色。
limit的使用语法:
Limit 起始下标 , 长度
起始下标没有指定,默认从下标零开始。0表示表中第一条数据。
mysql中通用的sql语句只适用于:mysql数据库管理系统
例如:
每页显示3条记录:
第1页:0,3
第2页:3,3
第3页:6,3
第4页:9,3
……….
第pageNo页显示pageSize条记录
第pageNo页:(pageNo-1)*pageSize, pageSize
Select
t.*
From
t
Order by
xxx desc/asc
Limit
(pageNo - 1 )*pageSize,pageSize;
9, les contraintes
primary key 主键(唯一,且不为空)
unique 唯一约束
auto_increment 自增
not null 不为空
#新建一个teacher表
create table teacher(
id int primary key auto_increment,
name varchar(10)
);
10, la recherche conjointe multi-table
#搭建一个环境
#新建一个数据库
create database school charset utf8;
#新建学生表
drop table if exists student;
create table student(
id int primary key auto_increment,
name varchar(10) not null,
age int
);
#新建老师表
drop table if exists teacher;
create table teacher(
sid int primary key auto_increment,
tname varchar(10) not null
);
#查出每一个学生对应的老师的名字。
1、99查询法
select student.name,teacher.tname from student,teacher
where student.id=teacher.sid;
2、内连接 join on
select * from 表1 join 表2 on 条件;
select student.name,teacher.tname from student join teacher
on student.id=teacher.sid;
3、左外连接(显示左表的所有数据,另外右表中与之对应的数据也显示出来)
select student.name,teacher.tname from student left join teacher
on student.id=teacher.sid;
4、右外连接(显示右表中所有的数据,另外左表中与之对应的数据也显示出来)
select student.name,teacher.tname from teacher right join student
on student.id=teacher.sid;
11, Index
索引:加快查询效率
#比如有一千万条数据,如果给id加上索引,查询速率会快很多
创建索引: create index 索引名 on 表名(字段名);
删除索引: drop index 索引名 on 表名;
查看索引: show index from 表名;
Étudiant Tableau:
nom, id
tableau des résultats:
ce qui précède id mentionné, xueshengid,
drop table if exists student;
create table student(
sname varchar(20),
id int(10)
);
drop table if exists record;
create table record(
id int(10),
sid int(10),
sub varchar(20),
rec int(10)
);
select s.sname,r.*
from student s,record r
where r.sid=s.id
group by s.sname;
Quatre, DCL: gestion des utilisateurs, l'autorisation
4.1, la gestion des utilisateurs
1. Ajouter un utilisateur
create user '用户名'@'主机名' identified by '密码';
create user 'zicheng'@'localhost' identified by 'root';
2. Supprimer l'utilisateur
drop user '用户名'@'主机名'
3. Modifier le mot de passe de l'utilisateur
update user set password=password('新密码') where user='用户名';
set password for '用户名'@'主机名' =password('新密码');
4. utilisateur Query
--切换到mysql数据库
use mysql;
--查询user表
select * from user;
% 通配符:
%表示可以在任意主机使用用户登录数据库。
5. Oubliez le mot de passe root mysql
1.cmd--->net stop mysql (管理员权限cmd)
2.使用无验证方式启动mysql服务:
mysqld --skip-grant-tables
3.打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登陆成功
4.use mysql;
5.修改密码语句。
6.关闭两个窗口
7.打开任务管理器,手动结束mysqld.exe服务
8.使用新密码登录
4.2 Gestion des droits
1. Les droits de la requête
montrer des subventions pour « nom d'utilisateur » @ « nom d'hôte »
2. Accordez l'autorisation
accorder la liste d'autorisation sur le nom de données Nom de la table à « nom d' utilisateur » @ « hostname »
accorder tout sur . à « nom d' utilisateur » @ « nom d' hôte »
3. revoke
révoquer liste des autorisations sur le nom du tableau de noms de données de « nom d'utilisateur » @ « nom d'hôte »