MySQL (a) article d'introduction MySQL

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;

Insérer ici l'image Description

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 »

Publié 44 articles originaux · louange gagné 5 · Vues 890

Je suppose que tu aimes

Origine blog.csdn.net/qq_40634246/article/details/104732742
conseillé
Classement