• mysql基础


    mysql基础

    mysql基础

    查询格式:

    select expr from tal_name
    where 条件
    group by 分组 having 子句对分组结果进行二次筛选
    order by 排序 asc | desc
    limit 限制显示条数
    
    in (); 在范围内
    between x and y 在两者之间
    

    image.png

    where price >= 10 and price <=30 or price<=50;
    
    where price not between 30 and 50;
    

    image.png

    where name like 'da%'
    
    where name like 'da_'
    

    group by 分组

    select max(price) from goods;
    
    select type_id, max(price) from goods group by type_id;
    
    select id, max(price) from goods group by id;
    

    min:最小值

    sum:总和

    avg:平均值

    count:总行数

    select id, count(*) from goods group by id;
    
    select goods_id,goods_name,goods_price - market_price from goods;
    

    where用于查询数据,having用于筛选数据

    where对表中的列发发挥作用,having对查询结果中列发挥作用

    where和having后面写法一样

    select id, name, m_price-shop_price as s from goods having s>100;
    

    而:where只能对表中的字段名进行筛选

    select id, name from goods where m_price - shop_price >100;
    

    order by 默认是升序排列

    order by price
    order by price desc 降序
    order by price asc
    order by rand()
    

    limit offset 偏移量 n 取出条目

    select id, name, price from goods order by price desc limit 3,3;
    

    安装mysql:

    双击下载打开安装包:

    http://dev.mysql.com/downloads/
    

    并安装

    Microsoft.NET4.0
    

    安装后,安装mysql,点击接受,默认安装,然后就是next,点击提示框的是,接着点击execute和next,设置密码和重复密码,windows service name为mysql,next和execute,next,next,execute,finish即可完成安装。

    = any  运算符 = in等效
    !=any 或 <> 运算符 与 not in 等效
    

    是否存在:

    select goods_type_id, good_type_name from category where exists (select * from goods where goods.goods_type_id = category.goods_type_id);
    

    内连接, 左连接,右连接

    内连接:显示左表及右表符合连接条件的记录
    左右连接的交集

    SELECT n1,n2,n3 FROM tb1 INNER JOIN tb2 ON tb1.n1= tb2.n2; 
    

    左连接:显示左表的全部记录及右表符合连接条件的记录

    SELECT n1,n2,n3 FROM tb1 LEFT JOIN tb2 ON tb1.n1= tb2.n2 
    

    右连接:显示右表的全部记录及左表符合连接条件的记录

    image.png

    SELECT n1,n2,n3 FROM tb1 RIGHT JOIN tb2 ON tb1.n1= tb2.n2 
    

    父表:p
    type_id type_name
    子表:s
    type_id type_name parent_id
    

    image.png

    image.png

    select s.type_id, s.type_name, p.type_name from tdb_goods_types as s left join tdb_goos_types as p on s.parent_id = p.type_id
    

    image.png

    同样:

    image.png

    image.png

    select p.type_id, p.type_name, s.type_name from tdb_goods_types as p left join tdb_goos_types as s on p.type_id = s.parent_id;
    

    常用函数:

    abs() 绝对值
    bin() 二进制
    avg(col_name);
    count(col_name);
    min(col_name);
    max(col_name);
    sum(col_name);
    concat();
    concat_ws();
    strcmp();
    

    外键约束

    约束保证数据的完整性和一致性,约束分类。

    表级约束,对过个数据列建立的约束;列级约束,对一个数据列建立的约束。

    功能分:

    not null 非空约束
    primary key 主键约束
    unique key 唯一约束
    default 默认约束
    foreign key 外键约束
    

    外键约束实现一对一或一对多的关系。
    创建外键约束,父表和子表必须要有相同的存储引擎,而且禁用临时表,具有外键列的表称为子表,子表所参照的表为父表。

    数据库的存储引擎只能为InnoDB。

    外键列和参照列必须具有相同的数据类型,外键列,参照列。
    外键列和参照列必须创建索引,如果外键列不存在索引的话,mysql将自动创建索引,参照列不存在索引,不会自动创建索引。mysql会为主键自动创建索引。

    create table address(
    id smallint unsigned primary key,
    name varchar(20) not null
    );
    
    create table teacher(
    t_id tinyint unsigend primary key,
    t_name varchar(20) not null,
    t_add varchar(20) not null,
    foreign key (t_add) references address(name) on update cascade
    );
    
    show indexes from address;
    
    创建索引
    create index address_name on address(name);
    
    create table teacher(
    t_id tinyint unsigned primary key,
    t_name varchar(20) not null,
    t_add varchar(20) not null,
    foreign key (t_add) references address (name) on update cascade
    );
    
    show create table teacher;
    

    外键列和参照列必须创建索引。外键列不创建,会自动创建,子;参照列不创建的话,不会自动创建,为父。

    结言

    好了,欢迎在留言区留言,与大家分享你的经验和心得。

    感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。

    作者简介

    达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文章,会上瘾!,帮你成为更好的自己。长按下方二维码可关注,欢迎分享,置顶尤佳。

    努力努力再努力Jeskson

  • 相关阅读:
    操作系统精髓读书笔记
    springboot 项目中读取资源文件内容 如图片、文档文件
    重构-改善既有代码的设计读书小结
    投资中最简单的事读书笔记
    公司的行业差异
    Linux-TCP之深入浅出send和recv
    Linux-socket的close和shutdown区别及应用场景
    C-pthread_cond_wait 详解
    Linux-文件描述符的本质及与文件指针的区别
    数据结构-树的进化及与数据库的关系
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11140298.html
Copyright © 2020-2023  润新知