美文网首页@future
MySQL进阶操作总结

MySQL进阶操作总结

作者: 月初yue | 来源:发表于2023-10-31 19:12 被阅读0次

    一对一表

    一对多表

    多对多表(借助第三张中间表,同时关联两张表)

    多表查询:

    内连接查询:

    /*

    显示内连接

    标准语法:

    SELECT 列名 FROM 表名1 [INNER] JOIN 表名2 ON 关联条件;

    */

    -- 查询用户信息和对应的订单信息

    SELECT * FROM USER INNER JOIN orderlist ON orderlist.uid = user.id;

    -- 查询用户信息和对应的订单信息,起别名

    SELECT * FROM USER u INNER JOIN orderlist o ON o.uid=u.id;

    -- 查询用户姓名,年龄。和订单编号

    SELECT

    u.name,-- 用户姓名

    u.age,-- 用户年龄

    o.number-- 订单编号

    FROM

    USER u -- 用户表

    INNER JOIN

    orderlist o -- 订单表

    ON

    o.uid=u.id;

    /*

    隐式内连接

    标准语法:

    SELECT 列名 FROM 表名1,表名2 WHERE 关联条件;

    */

    -- 查询用户姓名,年龄。和订单编号

    SELECT

    u.name,-- 用户姓名

    u.age,-- 用户年龄

    o.number-- 订单编号

    FROM

    USER u,-- 用户表

    orderlist o -- 订单表

    WHERE

    o.uid=u.id;

    外连接查询:

    /*

    左外连接

    标准语法:

    SELECT 列名 FROM 表名1 LEFT [OUTER] JOIN 表名2 ON 条件;

    */

    -- 查询所有用户信息,以及用户对应的订单信息

    SELECT

    u.*,

    o.number

    FROM

    USER u

    LEFT OUTER JOIN

    orderlist o

    ON

    o.uid=u.id;

    /*

    右外连接

    标准语法:

    SELECT 列名 FROM 表名1 RIGHT [OUTER] JOIN 表名2 ON 条件;

    */

    -- 查询所有订单信息,以及订单所属的用户信息

    SELECT

    o.*,

    u.name

    FROM

    USER u

    RIGHT OUTER JOIN

    orderlist o

    ON

    o.uid=u.id;

    子查询:

    自关联查询:

    视图:

    /*

    创建视图

    标准语法

    CREATE VIEW 视图名称 [(列名列表)] AS 查询语句;

    */

    -- 创建city_country视图,保存城市和国家的信息(使用指定列名)

    CREATE VIEW city_country (city_id,city_name,country_name) AS

    SELECT

    c1.id,

    c1.name,

    c2.name

    FROM

    city c1,

    country c2

    WHERE

    c1.cid=c2.id;

    /*

    查询视图

    标准语法

    SELECT * FROM 视图名称;

    */

    -- 查询视图

    SELECT * FROM city_country;

    /*

    修改视图数据

    标准语法

    UPDATE 视图名称 SET 列名=值 WHERE 条件;

    修改视图结构

    标准语法

    ALTER VIEW 视图名称 (列名列表) AS 查询语句;

    */

    -- 修改视图数据,将北京修改为深圳。(注意:修改视图数据后,源表中的数据也会随之修改)

    SELECT * FROM city_country;

    UPDATE city_country SET city_name='深圳' WHERE city_name='北京';

    -- 将视图中的country_name修改为name

    ALTER VIEW city_country (city_id,city_name,NAME) AS

    SELECT

    c1.id,

    c1.name,

    c2.name

    FROM

    city c1,

    country c2

    WHERE

    c1.cid=c2.id;

    /*

    删除视图

    标准语法

    DROP VIEW [IF EXISTS] 视图名称;

    */

    -- 删除city_country视图

    DROP VIEW IF EXISTS city_country;

    数据库备份和恢复:

    备份

    登录到MySQL服务器,输入:mysqldump -u root -p 数据库名称>文件保存路径

    恢复

    登录MySQL数据库

    删除已备份数据库

    重新创建名称相同的数据库

    使用该数据库

    导入文件执行:source本份文件全路径

    相关文章

      网友评论

        本文标题:MySQL进阶操作总结

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