mysql基本语法

mysql基本语法_第1张图片
young
  • mysql-sql 语句
  • 字符集选utf-8
  • 我需要学增删改查, 事物, 联合

启动数据库


mysql -u root -p(root是用户名)

查看数据库(所有)


show databases

进入数据库


use one ;

展示当前数据库的所有表


show tables;

创建个名为user的表的结构


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

查看表结构


desc user;

查看数据从表里面


select * from user;

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


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

形成了下表

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...)


select * from user where id=2;
select * from user where pass=13;

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 排序(我们可以随意排序数据)


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

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


delete from user where name="yujie";
delete from user where id=3;

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


update user set name="billin" where id=1;
update user set id=5 where name="billin";

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
    );

实现的效果

mysql基本语法_第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基本语法)