MySQL基本语句

MariaDB的创始人将MySQL卖给SUN公司,之后又被Oracle收购。和MySQL一样的搜索引擎机制,一样的。

基本查询:(先过滤再排序原则)

select * from product where market_price between 1000 and 2000 order by market_price DESC

查询并删除重复的数据字段

第五行起(从第6行开始的)的5条数据:

按多个排序

按指定方向排序

 

使用where的子句:

范围检查:

组合where子句:and ,or(多逻辑表达式用括号括起来进行明确分组)

In 和 or 可以相互转换,但是in的操作比or效率高,而且in能够包含其他select的语句,能够动态地创建where子句。

Not的使用,否定跟在其后的条件。

用通配符进行过滤

% 代表任意字符出现任意次数。

_ 仅代表一个字符出现一次。

创建计算字段:

拼字段

MySQL或MariaDB的拼字段语法:

使用别名:

执行算数计算:

转换成大小写字母;upper,lower

左子串:

右子串:

去掉左右空格:

日期处理函数:

汇总数据

聚集函数

AVG()计算列的平均值

COUNT()计算总条数

对某一字段计数,如果为null将不会计数,如果使用*,则null也会被计数。

MAX指定列中的最大值:MIN指定列中的最小值,SUM列之和

组合聚集函数:

分组数据

涉及Select语句子句:GROUP BY 和 HAVING

创建分组:

分组过滤:having和分组连用,where过滤特定的行,换句话说前者分组后使用,后者分组前使用。

使用where先过滤然后分组再having过滤:

分组和排序:记住select子句的顺序

使用子查询进行过滤:

表名 +点+字段:进行列的限定

联结表

为什么使用联结?将数据分解为多个表更能有效地存储,更方便地处理,并且可伸缩性更好。

创建联结:第三列在第二个表中

Where的关键性保持表一和表二逻辑上的一致性。

内联结:inner join …  on,两个表的关系是以inner join指定的部分from子句。

与上面的例子完全相同。

联结多个表:where …and…and…

创建高级联结

使用表别名简化SQL书写:

子查询:

使用联结查询:

外联结:左外联结,右外联结。包含没有关联的行(left,right)从哪个表选取所有的行。

内联结:只包含有关联的行

全外联结:包含两个表的不相关行。

使用带聚类函数的联结:

组合查询:执行多个查询语句返回一个查询结果。

规则:两条或两条以上的select语句,查询语句之间用关键字UNION分隔。

Union会删除重复的查询结果。

Union ALL 会保存所有查询结果。(包括重复的行)

对组合查询进行排序:不允许使用多条order by

插入数据

可以在表后给出字段,这样当表结构次序变化时,插入SQL的语句仍能够使用也可以给某些字段插入表中。

插入检索出来的数据:假如想把另一表中的顾客合并到当前Customers表中,不需要每次读取一行再将它用insert插入

复制一张表(包括过滤部分后):select和子句都可以用,包括where和group by

更新和删除数据

更新表中特定的行,更新表中所有的行。

Update语句:要更新的表+列名和它们的新值+更新哪些行的过滤条件

更新单列:

更新多列;

删除数据

删除特定的行, 删除所有的行。

删除所有行:truncate 效率更高。Delete不做过滤也可以删除所有行。

连表也被删除了:

注意:在会用delete和update的SQL语句时,一定记得带使用where,防止误删数据。保证每个表中都有主键。

创建和操纵表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值