美文网首页运维驿站js全栈工程师
mysql教程。挂一档,起步...

mysql教程。挂一档,起步...

作者: 她来听我的演唱会hez | 来源:发表于2017-11-08 00:15 被阅读326次
    我失去的,我一定要亲手拿来回来 ---小马哥

    爱情不过是一种疯 --《罗密欧与朱丽叶》

    目录

    • 1 -安装数据库 Mac,windows,linx 各平台下
    • 2-基本操作,数据库,数据表 ;查看,创建,删除,选择 常用
    • 3-数据可视化工具安装【navicat for mysql】 必须
    • 4-mysql数据类型 重点
    • 5-基本的增删改查 必须
    • 6-WHERE【添加查询】;UPDATE【更新数据】;DELETE 【删除数据】; LIKE【多个读取】; UNION【多连接】;UNION【排序】 进阶
    • 7-JOIN 连接 【内,外,左,右;连接】高效开发
    • 8-去重
    • 9- 正则表达式
    • 10 -索引 划重点
    • 11 - 临时表
    • 12 -导出数据
    • 13 -导入数据

    前言:

    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,

    每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
    我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
    所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

    RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
    • 1.数据以表格的形式出现
    • 2.每行为各种记录名称
    • 3.每列为记录名称所对应的数据域
    • 4.许多的行和列组成一张表单
    • 5.若干的表单组成database

    RDBMS 术语

    在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

    • 数据库: 数据库是一些关联表的集合。.
    • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
    • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
    • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
    • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
    • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
    • 外键:外键用于关联两个表。
    • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
    • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
    • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

    Mysql数据库

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    • Mysql是开源的,所以你不需要支付额外的费用。
    • Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
    • MySQL使用标准的SQL数据语言形式。
    • Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
    • Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。
    • MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
    • Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

    一. mysql的安装

    • Mac 下安装 下载地址
      1 .下载完成后。点击安装,确认。直到安装完成
      2 . 启动mysql,进入系统偏好设置 ,点击启动mysql
      Mac下的偏好设置
      3.命令行运行下面两条:为了方便打开命令行就直接运行,而不是要到安装目录运行。功能类似全局变量。
      alias mysql=/usr/local/mysql/bin/mysql
      alias mysqladmin=/usr/local/mysql/bin/mysqladmin
    
    1. 查看密码,注意,安装成功后,这里会弹出一个通知,给你一个零时的密码。


      Mac通知栏

    5.重置密码; 先登录,输入通知栏的密码

    localhost:~ hez$ mysql -uroot -p 
    Enter password:
    

    登陆成功显示


    登陆成功

    修改密码,退出数据,再次登陆输入密码123 登陆成功表示成功

    mysql> set password for root@localhost = password('123');
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> exit
    
    • Windows下安装 推荐文档
      我是mac系统,所以我从网上找了篇比较好的文章送给你们。

    • linx下安装 全安装,全配置,文章
      笔记本里还有一篇CentOS 部署koa2,mysql,nginx的文章。我整理后发布,请稍后。

    安装么,就是有点坑!! ! 之前我安装阿里的weex,3天时间才吧安卓的hello,world打印出来


    二. 数据库基本操作

    • 登陆 mysql -uroot -p
    localhost:~ hez$ mysql -uroot -p 
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 15
    Server version: 5.7.19 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> 
    
    • 查看数据库 show databases;
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | 11221              |
    | hez1               |
    | mysql              |
    | nodesql            |
    | performance_schema |
    | samp_db            |
    +--------------------+
    7 rows in set (0.01 sec)
    
    mysql> 
    
    • 新建数据库 CREATE DATABASE apps; (apps,数据库的名称)
    mysql> CREATE DATABASE apps;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | 11221              |
    | apps               |
    | hez1               |
    | mysql              |
    | nodesql            |
    | performance_schema |
    | samp_db            |
    +--------------------+
    8 rows in set (0.00 sec)
    
    mysql> 
    
    • 删除数据库 DROP DATABASE apps; (apps数据库名称)
    mysql>  DROP DATABASE apps;
    Query OK, 0 rows affected (0.04 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | 11221              |
    | hez1               |
    | mysql              |
    | nodesql            |
    | performance_schema |
    | samp_db            |
    +--------------------+
    7 rows in set (0.00 sec)
    
    mysql> 
    
    • 选择数据库 ,新建数据表 use (数据库); create table 数据表名(数据字段)
    mysql> use apps
    Database changed
    mysql> create table music(singer char(100) not null,song char(100),play char(100) not null);
    Query OK, 0 rows affected (0.04 sec)
    
    mysql> 
    

    数据库的解码一定要是utf8,才能支持中文。不难,但是步骤多。我就不写了,推荐:mysql设置为utf8格式

    • 查看表结构 DESCRIBE (表名);
    mysql> DESCRIBE music;
    +--------+-----------+------+-----+---------+-------+
    | Field  | Type      | Null | Key | Default | Extra |
    +--------+-----------+------+-----+---------+-------+
    | singer | char(100) | NO   |     | NULL    |       |
    | song   | char(100) | YES  |     | NULL    |       |
    | play   | char(100) | NO   |     | NULL    |       |
    +--------+-----------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    
    mysql> 
    
    • 查看表数据 select * from (表名); (下面讲数据可视化工具,这几条数据也是我用可视化工具添加的)
    mysql> select * from music;
    +-----------+--------------------------+------+
    | singer    | song                     | play |
    +-----------+--------------------------+------+
    | 张学友    | 吻别                     | 100  |
    | 张学友    | 她来听我的演唱会         | 100  |
    +-----------+--------------------------+------+
    2 rows in set (0.01 sec)
    
    mysql> 
    

    三. 安装navicat for mysql

    • 下在,静默安装。直到成功,软件是有15天的试用时间的。怎么做,你很清楚。官网地址

    • 连接数据库 其实跟多时候是线上开发的 。在linx部署koa2服务的文章里外有详细的讲解 centOS部署koa服务

    连接数据库
    • 连接成功


      连接成功后截图

    安装的时候会有点麻烦,激活。破解什么的。命令行可以连接成功,在这里一定会成功的。注意看端口号,3306。密码。

    • 在实际的的开发中,新建表的方法写在mysql.js中。
    • 试用数据可视化,开发时,更便携我们的工作
    • 新手就更适合了。

    四.mysql数据类型

    太啰嗦,又太长,么什么好弄的,下面的链接都不错,自己看去!!!

    比较完整,好阅读的数据类型文字(整理也不容易),请打开
    菜鸟教程的数据类型

    js是什么,一切皆为对象。数组,字符串,nums,date。mysql常用数据类型。 常用,好用,话不多的mysql数据类型


    五.基本的增删改查

    心累,写文档真实好累。MMP

    增删改查,后端的核心技能
    • 创建表,create table
    create table 表名(
        表字段名1,
        表字段名2,
        表字段名3
    )表数据类型,语言;
    
    # 栗子
    create table music(
        singer char(100) not null,
        song char(100),
        play char(100) not null
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    # 命令行代码
    mysql> create table music(                                                          ->     singer char(100) not null,
        ->     song char(100),
        ->     play char(100) not null
        -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Query OK, 0 rows affected (0.08 sec)
    mysql>
    
    • 查询数据库表 show tables;
    mysql> show tables;
    +----------------+
    | Tables_in_apps |
    +----------------+
    | music          |
    | music1         |
    +----------------+
    2 rows in set (0.01 sec)
    
    mysql> 
    
    • 删除一张表 DROP TABLE
    DROP TABLE 表名;
    
    栗子
    mysql> DROP TABLE music1;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> show tables;
    +----------------+
    | Tables_in_apps |
    +----------------+
    | music          |
    +----------------+
    1 row in set (0.00 sec)
    
    mysql> 
    
    • 添加数据 INSERT INTO
    INSERT INTO 表名
          (表字段名)
           VALUES
          (添加的数据值);
    
    #栗子
    mysql> INSERT INTO music(singer,song,play) VALUES('张学友','吻别','200');
    Query OK, 1 row affected (0.01 sec)
    
    # 添加一条数据
    INSERT INTO music(singer,song,play) VALUES('周杰伦','稻香','343');
    Query OK, 1 row affected (0.01 sec)
    mysql> 
    
    • 查询数据 SELECT
    # 查询表里全部数据
    mysql> SELECT * from music;
    +-----------+--------------------------+------+
    | singer    | song                     | play |
    +-----------+--------------------------+------+
    | 张学友    | 她来听我的演唱会         | 100  |
    | 张学友    | 吻别                     | 200  |
    | 周杰伦    | 稻香                     | 343  |
    +-----------+--------------------------+------+
    3 rows in set (0.00 sec)
    
    mysql> 
    
    
    #查询某一表字段名的数据
    mysql> SELECT song from music;
    +--------------------------+
    | song                     |
    +--------------------------+
    | 她来听我的演唱会         |
    | 吻别                     |
    | 稻香                     |
    +--------------------------+
    3 rows in set (0.00 sec)
    
    mysql> 
    
    #多条件查询 (使用,分隔开条件)
    mysql> SELECT song,singer from music;
    +--------------------------+-----------+
    | song                     | singer    |
    +--------------------------+-----------+
    | 她来听我的演唱会         | 张学友    |
    | 吻别                     | 张学友    |
    | 稻香                     | 周杰伦    |
    +--------------------------+-----------+
    3 rows in set (0.00 sec)
    
    mysql> 
    
    

    本章讲了 数据表的增删改查

    • 创建表,create table
    • 删除一张表 DROP TABLE
    • 添加数据 INSERT INTO
    • 查询数据 SELECT

    人狠,钱多,废话少的Api


    六.数据的各种骚

    他曾为了你的逃离,颓废痛苦,也为了破镜重圆,抱着你哭...《情书》

    新建一张用户表
    mysql> use apps
    Database changed
    mysql> create table muser(
        ->     name char(100) not null,
        ->     age char(100) not null,
        ->     love char(100) not null
        -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> show tables;
    +----------------+
    | Tables_in_apps |
    +----------------+
    | muser          |
    | music          |
    +----------------+
    2 rows in set (0.00 sec)
    
    mysql> 
    
    INSERT INTO muser(name,age,love) VALUES('慧子','23','周杰伦');
    
    #添加2条数据
    mysql> INSERT INTO muser(name,age,love) VALUES('hez','23','张学友');
    Query OK, 1 row affected (0.02 sec)
    mysql>
    
    mysql> INSERT INTO muser(name,age,love) VALUES('慧子','23','李代沫');
    Query OK, 1 row affected (0.01 sec)
    mysql> 
    
    #查询表里的数据
    mysql> SELECT * from muser;
    +--------+-----+-----------+
    | name   | age | love      |
    +--------+-----+-----------+
    | hez    | 23  | 张学友    |
    | 慧子   | 22  | 李代沫    |
    +--------+-----+-----------+
    2 rows in set (0.00 sec)
    
    mysql> 
    
    
    • 从表中读取数据 WHERE

    小技巧:
    or和and,or表示两者取其一,and表示两者皆是;

    SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:

    # 查询年龄23的用户
    mysql> select * from muser where age='23';
    +--------+-----+-----------+
    | name   | age | love      |
    +--------+-----+-----------+
    | hez    | 23  | 张学友    |
    | 小红   | 23  | 张学友    |
    +--------+-----+-----------+
    2 rows in set (0.00 sec)
    
    # 查询喜欢张学友的用户
    mysql> select * from muser where love='张学友';
    +--------+-----+-----------+
    | name   | age | love      |
    +--------+-----+-----------+
    | hez    | 23  | 张学友    |
    | 小明   | 22  | 张学友    |
    | 小红   | 23  | 张学友    |
    +--------+-----+-----------+
    3 rows in set (0.00 sec)
    
    mysql> 
    

    多表,多条件读取数据

    select 表字段名1,表字段名2,表字段名3,表字段名4 from 表名1,表名1 where 条件1 and 条件2;
    
    (select) 读取 用户姓名,年龄,喜欢,音乐表歌曲
    (from)从用户表,音乐表
    (where)并且年龄大于18,喜欢张学友的数据;
    
    #栗子
    mysql> select name,age,love,song from muser,music where age>18 and love='张学友';
    +--------+-----+-----------+--------------------------+
    | name   | age | love      | song                     |
    +--------+-----+-----------+--------------------------+
    | hez    | 23  | 张学友    | 她来听我的演唱会         |
    | 小明   | 22  | 张学友    | 她来听我的演唱会         |
    | 小红   | 23  | 张学友    | 她来听我的演唱会         |
    | hez    | 23  | 张学友    | 吻别                     |
    | 小明   | 22  | 张学友    | 吻别                     |
    | 小红   | 23  | 张学友    | 吻别                     |
    | hez    | 23  | 张学友    | 稻香                     |
    | 小明   | 22  | 张学友    | 稻香                     |
    | 小红   | 23  | 张学友    | 稻香                     |
    +--------+-----+-----------+--------------------------+
    9 rows in set (0.00 sec)
    
    
    
    • 修改数据 UPDATE
      以下是通用语法:
      update 数据表 set 字段名1= (修改的内容),字段名1= (修改的内容)where 修改的条件
    把慧子喜欢的歌手,修改为李代沫
    
    # 栗子
    mysql> update muser set love ='李代沫' where name = '慧子';
    Query OK, 1 row affected (0.01 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> 
    
    把小明的年龄改为19,喜欢的歌手改为gai;
    
    #栗子
    mysql> update muser set age='19',love='gia' where name = '小明';
    Query OK, 1 row affected (0.01 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from muser;
    +--------+-----+-----------+
    | name   | age | love      |
    +--------+-----+-----------+
    | hez    | 23  | 张学友    |
    | 慧子   | 22  | 李代沫    |
    | 小明   | 19  | gia       |
    | 小红   | 23  | 张学友    |
    | 小强   | 22  | 周杰伦    |
    +--------+-----+-----------+
    5 rows in set (0.00 sec)
    
    mysql> 
    
    • DELETE 删除一条数据
      以下是通用语法:
      delete from 数据表名 where 条件;
    
    删除小明这条数据
    
    #栗子
    mysql> delete from  muser  where name ='小红';
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select * from muser;
    +--------+-----+-----------+
    | name   | age | love      |
    +--------+-----+-----------+
    | hez    | 23  | 张学友    |
    | 慧子   | 22  | 李代沫    |
    | 小明   | 19  | gia       |
    | 小强   | 22  | 周杰伦    |
    +--------+-----+-----------+
    4 rows in set (0.00 sec)
    
    mysql> 
    
    • UNION接两个以上的 SELECT 语句的结果组合到一个结果集合中

    通用语法:
    select 表字段1 from 数据表1
    union
    select 表字段1 from 数据表2
    order by 表字段1;

    描述:
    用以连接多个select语句,
    表字段必须是相同的
    union 数据不重复
    union ALL 数据重复

    select singer from muser
    union 
    select singer from music
    order by singer; 
    
    #栗子
    
    重复的数据
    mysql> select singer from muser
        -> union all
        -> select singer from music
        -> order by singer;
    +-----------+
    | singer    |
    +-----------+
    | gai       |
    | 周杰伦    |
    | 周杰伦    |
    | 张学友    |
    | 张学友    |
    | 张学友    |
    | 李代沫    |
    +-----------+
    7 rows in set (0.01 sec)
    
    
    不重复数据
    mysql> select singer from muser
        -> union 
        -> select singer from music
        -> order by singer;  
    +-----------+
    | singer    |
    +-----------+
    | gai       |
    | 周杰伦    |
    | 张学友    |
    | 李代沫    |
    +-----------+
    4 rows in set (0.00 sec)
    
    mysql> 
     
    
    • ORDER BY排序

    通用语法:

    select * from muser order by age asc;

    描述:
    muser: 数据表
    order by: 排序
    age: 排序条件
    asc:升序
    desc: 降序

    #栗子
    年龄(数值)升序
    mysql> select * from muser order by age asc;
    +--------+-----+-----------+-----------+
    | name   | age | love      | singer    |
    +--------+-----+-----------+-----------+
    | 小明   | 19  | gia       | gai       |
    | 慧子   | 22  | 李代沫    | 李代沫    |
    | 小强   | 22  | 周杰伦    | 周杰伦    |
    | hez    | 23  | 张学友    | 张学友    |
    +--------+-----+-----------+-----------+
    4 rows in set (0.00 sec)
    
    mysql>
    
    年龄(数值)降序
    mysql> select * from muser order by age desc;
    +--------+-----+-----------+-----------+
    | name   | age | love      | singer    |
    +--------+-----+-----------+-----------+
    | hez    | 23  | 张学友    | 张学友    |
    | 慧子   | 22  | 李代沫    | 李代沫    |
    | 小强   | 22  | 周杰伦    | 周杰伦    |
    | 小明   | 19  | gia       | gai       |
    +--------+-----+-----------+-----------+
    4 rows in set (0.00 sec)
    
    mysql>  
    
    • GROUP BY分组数据

    语句根据一个或多个列对结果集进行分组。
    在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

    通用语法:
    select singer, count(*) from music group by singer;

    描述*
    count(*): 新的分组(临时)
    music: 数据表
    group by: 分组语法
    singer: 计算分组的数据表字段(歌手)

    查看音乐表,获得每个歌手都歌曲数量
    
    #栗子
    mysql> select singer, count(*) from music group by singer;
    +-----------+----------+
    | singer    | count(*) |
    +-----------+----------+
    | 周杰伦    |        1 |
    | 张学友    |        4 |
    +-----------+----------+
    2 rows in set (0.00 sec)
    
    mysql> 
    
    查看用户表,获取每个歌手背喜欢的次数
    mysql> select love, count(*) from muser group by love;
    +-----------+----------+
    | love      | count(*) |
    +-----------+----------+
    | 周杰伦    |        2 |
    | 张学友    |        3 |
    | 李代沫    |        1 |
    +-----------+----------+
    3 rows in set (0.00 sec)
    
    mysql> 
    
    

    这部分内容有点多,懵逼了。等我理一下
    1.读取数据;当张表,多个条件中,多张表,多个条件的读取。
    2.修改数据; 修改一个字段名,多个字段名 & 修改条件。
    3.删除数据; 删除数据&删除条件
    4.集合数据; 集合两张或多张表的数据到一个集合中,数据可选择重5.复或不重复
    6.数据排序;升序降序
    7.数据分组;根据一个表字段,或多个表字段的结构进行分组

    这些知识只是骚操作,看,我脱衣服了....


    7. JOIN连接 【内,左,右】

    多表数据联动。上下滑动累,来这看看省力的....

    1. INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录
    2. LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录
    3. RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录
    • INNER JOIN 内连接

    通用语法:
    select a.name, a.love,b.singer from muser a inner join music b on a.love = b.singer;

    描述:

    a .name, b .name ;返回数据字段名
    muser a,music b;a,b数据表名称的替代符号
    nner join;内连接
    on; 筛选条件

    功能:
    获取两个表中字段匹配关系的记录。

    内连接
    
    获取用户名,喜欢,歌曲加入判断条件用户喜欢的歌手,和曲库里有的歌手
    
    #栗子
    mysql> select a.name, a.love,b.singer from muser a inner join music b on a.love = b.singer;
    +--------+-----------+-----------+
    | name   | love      | singer    |
    +--------+-----------+-----------+
    | hez    | 张学友    | 张学友    |
    | hez    | 张学友    | 张学友    |
    | hez    | 张学友    | 张学友    |
    | hez    | 张学友    | 张学友    |
    | 小明   | 张学友    | 张学友    |
    | 小明   | 张学友    | 张学友    |
    | 小明   | 张学友    | 张学友    |
    | 小明   | 张学友    | 张学友    |
    | 小强   | 周杰伦    | 周杰伦    |
    | 小灰   | 张学友    | 张学友    |
    | 小灰   | 张学友    | 张学友    |
    | 小灰   | 张学友    | 张学友    |
    | 小灰   | 张学友    | 张学友    |
    | 阿狗   | 周杰伦    | 周杰伦    |
    +--------+-----------+-----------+
    14 rows in set (0.00 sec)
    
    mysql> 
    
    • LEFT JOIN 左连接

    通用语法:
    select a.name, a.love,b.singer from muser a left join music b on a.love =b.singer;

    描述:
    a .name,a.love, b .singer ;返回数据字段名
    muser a,music b;a,b数据表名称的替代符号
    left join;左连接
    on; 筛选条件

    功能
    该语句会读取左边的数据表 muser 的所有选取的字段数据,即便在右侧表 music中 没有对应的 singer 字段值 没有为null。

    返回 左表全部,右表于左表重合的数据
    以用户表为左表,歌曲表为右表。查询用户喜欢的歌手,歌曲库里也有的数据
    #栗子
    mysql> select a.name, a.love,b.singer from muser a left join music b on a.love =b.singer;
    +--------+-----------+-----------+
    | name   | love      | singer    |
    +--------+-----------+-----------+
    | hez    | 张学友    | 张学友    |
    | 小明   | 张学友    | 张学友    |
    | 小灰   | 张学友    | 张学友    |
    | hez    | 张学友    | 张学友    |
    | 小明   | 张学友    | 张学友    |
    | 小灰   | 张学友    | 张学友    |
    | 小强   | 周杰伦    | 周杰伦    |
    | 阿狗   | 周杰伦    | 周杰伦    |
    | hez    | 张学友    | 张学友    |
    | 小明   | 张学友    | 张学友    |
    | 小灰   | 张学友    | 张学友    |
    | hez    | 张学友    | 张学友    |
    | 小明   | 张学友    | 张学友    |
    | 小灰   | 张学友    | 张学友    |
    | 慧子   | 李代沫    | NULL      |
    +--------+-----------+-----------+
    15 rows in set (0.01 sec)
    
    mysql> 
    
    • RIGHT JOIN 右连接

    通用语法
    select a.love,b.singer,b.song from muser a right join music b on a.love =b.singer;

    描述
    a .a.love, b .singer,b .song ;返回数据字段名 muser a,music b; a,b数据表名称的替代符号
    right join;左连接
    on; 筛选条件

    功能:
    该语句会读取右边的数据表 music 的所有选取的字段数据,即便在左侧表 muser 中没有对应的 love 字段值。

    返回 左表于右表重合的数据,右表全部数据
    mysql> select a.love,b.singer,b.song from muser a right join music b on a.love =b.singer;
    +-----------+-----------+--------------------------+
    | love      | singer    | song                     |
    +-----------+-----------+--------------------------+
    | 张学友    | 张学友    | 她来听我的演唱会         |
    | 张学友    | 张学友    | 吻别                     |
    | 张学友    | 张学友    | 情书                     |
    | 张学友    | 张学友    | 李香兰                   |
    | 张学友    | 张学友    | 她来听我的演唱会         |
    | 张学友    | 张学友    | 吻别                     |
    | 张学友    | 张学友    | 情书                     |
    | 张学友    | 张学友    | 李香兰                   |
    | 周杰伦    | 周杰伦    | 稻香                     |
    | 张学友    | 张学友    | 她来听我的演唱会         |
    | 张学友    | 张学友    | 吻别                     |
    | 张学友    | 张学友    | 情书                     |
    | 张学友    | 张学友    | 李香兰                   |
    | 周杰伦    | 周杰伦    | 稻香                     |
    | NULL      | gia       | 火锅底料                 |
    +-----------+-----------+--------------------------+
    15 rows in set (0.00 sec)
    
    mysql> 
    

    看到这里,你应该发现两个问题
    1 join是干什么用的
    2 这些数据多是重复的,实际开发的时候怎么用呢
    别急,join在实际开发中很长见,也是必须的。数据重复,去重下下章我们讲。


    转身离开,有爱说不出来...《珊瑚海》

    8.去重

    累了,写不动...

    9.正则表达式

    讲真,我没有怎么研究过...你感兴趣就去看看吧 菜鸟教程,正则表达式


    相关文章

      网友评论

        本文标题:mysql教程。挂一档,起步...

        本文链接:https://www.haomeiwen.com/subject/bdismxtx.html