美文网首页
mysql基本语法

mysql基本语法

作者: sunningcarry | 来源:发表于2016-07-26 10:05 被阅读418次
    young
    • mysql-sql 语句
    • 字符集选utf-8
    • 我需要学增删改查, 事物, 联合

    启动数据库

    <pre><code>
    mysql -u root -p(root是用户名)
    </code></pre>

    查看数据库(所有)

    <pre><code>
    show databases
    </code></pre>

    进入数据库

    <pre><code>
    use one ;
    </code></pre>

    展示当前数据库的所有表

    <pre><code>
    show tables;
    </code></pre>

    创建个名为user的表的结构

    <pre><code>
    create table user(
    id int,
    name varchar(30),
    pass varchar(30)
    );(字符串长度最长是30)
    </code></pre>

    查看表结构

    <pre><code>
    desc user;
    </code></pre>

    查看数据从表里面

    <pre><code>
    select * from user;
    </code></pre>

    insert 增(我可以随意增加,插入数据到表中)

    <pre><code>
    insert into table(ct1,ct2,ct3) values(num,"str","str")
    insert into user(id,name,pass) values(1,"leiwei","123")
    </code></pre>

    形成了下表

    mysql> select * from user;
    +------+-----------+------+
    | id   | name      | pass |
    +------+-----------+------+
    |    1 | leiwei    | 123  |
    |    2 | yujie     | 13   |
    |    3 | qiancheng | 456  |
    +------+-----------+------+
    3 rows in set (0.00 sec)
    

    select 查(我可以随意查找 select from table where...)

    <pre><code>
    select * from user where id=2;
    select * from user where pass=13;
    </code></pre>

    select like 子段( 我可以随意选取子字段 )

    select * from user where name like '%carry%';//选取中间含有carry字段的数据
    +------+----------+------+
    | id   | name     | pass |
    +------+----------+------+
    |    5 | carryone | 123  |
    |    2 | carry    | 571  |
    +------+----------+------+
    

    选取以one结束的字段

    select * from user where name like '%one';//
    +------+----------+------+
    | id   | name     | pass |
    +------+----------+------+
    |    5 | carryone | 123  |
    +------+----------+------+
    

    select order by 排序(我们可以随意排序数据)

    <pre><code>
    select * from user order by name; //默认是升序
    select * from user order by id desc;//desc为降序排列
    </code></pre>

    delete 删 (我可以随意删除 delete from table where...)

    <pre><code>
    delete from user where name="yujie";
    delete from user where id=3;
    </code></pre>

    update (我可以随意更改 update user set charct where ....)

    <pre><code>
    update user set name="billin" where id=1;
    update user set id=5 where name="billin";
    </code></pre>

    inner/left/right join 联合,内联,左联,右联

     select a.pass,b.money from user a left join customer b on a.name = b.name;//左连
     select a.pass,a.name,b.money from user a right join customer b on a.id = b.id;//左联
     select a.pass,a.name,b.money from user a inner join customer b on a.name = b.name;//内联
    

    常用语句(联合)

    SELECT
        gbl_products.productName,
        gbl_stocks.areaID,
        gbl_stocks.amounts,
        gbl_stocks.stocks_standard,
        gbl_product_barcodes.barcode,
        gbl_md5.image
    FROM
        gbl_products
    LEFT JOIN gbl_stocks ON gbl_products.id = gbl_stocks.productID
    LEFT JOIN gbl_product_barcodes ON gbl_products.id = gbl_product_barcodes.productID
    LEFT JOIN gbl_md5 ON gbl_products.productImage = gbl_md5.md5
    WHERE
        gbl_stocks.amounts <= (
            gbl_stocks.stocks_standard / 2
        );
    

    实现的效果

    lala

    切记

    1:from 后面跟一个表的名字,且这个表为主表

    2: (ON DUPLICATE KEY UPDATE) 查看有没有,没有就插入,有就更新

    INSERT INTO gbl_stocks (
        gbl_stocks.productID,
        gbl_stocks.areaID,
        gbl_stocks.amounts,
        gbl_stocks.stocks_standard
    )
    VALUES
        (?,?,?,?) ON DUPLICATE KEY UPDATE gbl_stocks.amounts = gbl_stocks.amounts +VALUES(gbl_stocks.amounts),
        gbl_stocks.stocks_standard = 
    `IF` (
    gbl_stocks.amounts +VALUES(gbl_stocks.amounts) > gbl_stocks.stocks_standard,gbl_stocks.amounts +VALUES(gbl_stocks.amounts),gbl_stocks.stocks_standard
        )
    

    VALUES(gbl_stocks.amounts)中,括号里面是一个可变化的动态的值,一般为读取到的值

    判断

    if(a> b,c,d);
    意思为:
    如果条件成立(a>b),则返回c,反之返回d


    主键

    主键是一个表中具有唯一标识性的字段,其它的属性字段都根据主键来存在的,例如学号

    外键

    mysql-外键:表A和表B都有一个相同的字段c,c是表A的主键,c不是表B 的主键,表B的字段c相对于表A是表B的外键



    希望有更多小胖友提出宝贵意见,若有关于前端的问题,或者关于大学方面的感想可以私聊我(~):
    github
    知乎
    简书
    个人博客
    微博

    相关文章

      网友评论

          本文标题:mysql基本语法

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