zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    es5预览本地文件、es6练习代码演示案例
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 836 矩形重叠(暴力)
    Subversion under Linux [Reprint]
    Subversion how[Reprint]
  • 原文地址:https://www.cnblogs.com/dashucoding/p/10662132.html
Copyright © 2011-2022 走看看