MySQL — 关键字和增删改查

MySQL — 关键字和增删改查,第1张

来自MySQL的学习笔记,写的不对的地方大家多多指教哦

SELECT、DISTINCT、FROM、JOIN、ON、WHERE、GROUP BY、HAVING、SUM、COUNT、MAX、AVG、ORDER BY、LIMIT

SELECT->DISTINCT->FROM->JOIN->ON->WHERE->GROUP BY->HAVING->ORDER BY->LIMIT

必须字段:SELECT、FROM

可选字段:DISTINCT、JOIN、ON、WHERE、GROUP BY、HAVING、SUM、COUNT、MAX、AVG、ORDER BY、LIMIT

FROM->ON->JOIN->WHERE->GROUP BY(开始使用SELECT中的别名,后面的语句中都可以使用别名)->SUM、COUNT、MAX、AVG->HAVING->SELECT->DISTINCT->ORDER BY->LIMIT

FROM:从哪个表中检索数据

ON:关联条件,与join一起使用

JOIN:对需要关联的表进行关联

WHERE:过滤数据条件,执行顺序:自下而上、从右到左

GROUP BY:将过滤的数据进行分组,执行顺序:从左往右

SUM:求和

COUNT:数量统计

MAX:最大值

AVG:求平均值

HAVING:对分组的数据过滤条件,与group by一起使用

SELECT:查看结果集

DISTINCT:结果集去重

ORDER BY:排序,升序:ASC;降序:DESC

LIMIT:截取出目标页数据

详细用法会在后面进行补充

首先创建一张表,添加字段,表名字为:goodsmaster

添加数据的语法结构为:

添加数据可以是插入数据或插入查询的结果

1.1 插入数据

运行语句,查询结果:SELECT * FROM goodsmaster

部分字段有做非空约束,那么这边插入部分数据,验证下非空约束

上面的语句运行之后会报错,错误内容为“[Err] 1364 - Field 'barcode' doesn't have a default value”,即“barcode”这个字段有创建非空约束,表示这个字段不能为空,如果插入数据时不给这个字段赋值,那么就需要给它一个默认值。

部分字段没有默认值,可以为空,那么现在验证一下插入数据时,这些字段不进行赋值会有什么结果

运行语句,查询结果:SELECT * FROM goodsmaster

仔细看会发现,上面的语句中插入数据也没有插入“itemnumber”字段,这个字段有添加主键约束,不能为空,但由于设置了自增约束,所以没有赋值也会自动在当前字段最大值+1,这就是自增约束;

上面的语句显示没有进行赋值的字段会默认显示Null。

1.2 插入查询结果

MySQL 支持把查询的结果插入到数据表中,我们可以指定字段,甚至是数值,插入到数据表中。

语法结构为:

删除语句使用DELETE删除,语法结构为:

删除记录可以使用WHERE来筛选删除的数据,下面为删除“barcode”字段数据为006的记录

由于部分数据可以为空,所以再删除的时候,WHERE的过滤条件必须用到主键约束或者唯一性约束的字段。MySQL 的这种安全性设置,主要就是为了防止删除或者修改数据时出现误 *** 作,导致删除或修改了不相关的数据。

删除表中的全部数据

MySQL中用UPDATE来修改数据,语法结构为:

注意:不要修改主键字段的值。因为主键是数据记录的唯一标识,如果修改了主键的值,就有可能会破坏数据的完整性。

语法结构:

具体需要用到的关键字查看本文第一部分即可

别名有表别名和列别名

就是个表取名字和列取名字

列别名

表别名

(字句限定返回值)

—— 非(不是) 和 或

< >= <= =<>(!=)基本比较运算符 判断字符串 数字 日期的大小。

赋值运算符 :=

语句:**where 列名 between val1 and val2**是一个闭区间

语句: where 列名 in (值1, 值2, ...) 判断列的值是否在指定的集合中

判断列的值是否为空

语句:**where 列名 is null**

语句:**where 列名 is not null**

% 表示零或多个任意的字符

_ 表示一个任意的字符

语法:**where 列名 like '_%'**

语法: order by 列名

order by(升序)asc 可省略

order by desc 降序

注意:当 order by 子句中有使用了带引号的别名时,无法排序

如果数据量小则在内存中进行,如果数据量大则需要使用磁盘

Limit 显示数据个数

Limit 起始位置,显示数据个数

select 列表中的字段,

要么使用聚合函数或 group_concat() 包起来

**要么必须出现在 group by子句中 **

having 与group by结合使用,用于将分组后的结果进一步过滤

-count(*)可以获取查询的结果记录条数

-- max():获取最大值

-- min():获取最小值

-- avg():获取平均值

-- sum():指定字段求和

可以参考这里:

http://hi.baidu.com/netnova/blog/item/19ab753ee18bae3971cf6c27.html

另关键字转义:

insert into app(name,created,key,secret,masterSecret) values ('aa',null,null,null,null)

因为这里的key字段是mysql的关键字,所以一直插不进去。

修改如下:在key的头上加上两点(反引号,它在键盘的~这个键上)。即可搞定


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7382195.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存