MySQL(四):操作数据表中的记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/include_ice/article/details/80466016

添加记录

语句:INSERT  [INTO(可省略)]  表名   [(可省略)列名1,列名2,..]   {VALUES | VALUE} (列1的值,列2的值,列3...)

如果不写列名则默认为所有列添加记录

如果有自动编号约束的列,可以填空值:null ,也可以使用DEFAULT

也可以使用表达式,至于表达式内容,可以自由发挥,可以调用其他表的值

添加多条记录,用逗号隔开就行,例子如下:

调用md5算法:

第二种方法:

第三种方法:

该方法为将查询结果插入指定表中,其实就是复制其他表的记录到指定表

更新记录

批量修改记录

当写入记录时,有部分字段出错,或者想修改某字段记录,可以使用表更新语句

UPDATE  LOW_PRIORITY(翻译:低优先级) IGNORE(翻译:忽略)  参考表  SET  列名1=值或表达式 ,列名2=..,WHERE 条件值;

下面例子为更新users表中的age列所有的字段值,注意,没加条件,所以所有age列的字段都被修改了

其实可以将该命令理解为用于修改多个字段的值.

UPDATE users SET age=age+5;

使用条件语句,编号为偶数的记录所有age字段+10;

删除记录(单表删除)

也就是批量删除记录

如果不写条件,则删除表内所有记录

删除id为6的记录例子:

查找记录

SELECT [表达式1],[表达式2],...

[WHERE 条件表达式]

[GROUP BY  {列名 | 列位置} [ASC(从小到大排序) | DESC(与ASC相反) ],]

[HAVING(与where效果相同,原理不同) 条件表达式]

[ORDER BY(排序){列名 | 表达式 |position(翻译:列位置)}[ASC | DESC ]]

[LIMIT(翻译:极限) {[偏移值,] row_count | row_count OFFSET(偏移) 偏移值}]

可以简化为这样:

SELECT 表达式;

查询例子:

该例子也说明语句执行顺序是以列的填写顺序为准

如果要同时查两个表的同名列,可以用表调用列的方式书写,比如下面例子:

与Java对象调用方法一模一样的写法

其实还可以给查询结果起别名,例子如下:

但并不会影响原本的列名:

使用别名时,不一定要用AS关键词,但是不用AS关键词容易出现以下情况:

usersname作为id的别名,这里查询的实际是id列的值.

容易导致查询列a时,列名却是b,也就是,容易混淆.

分组查询

 SELECT 查询列 FROM 表名 GROUP BY 指定列

其实也就是将每种结果都列出一个,具体看例子:

比如查询性别


分组条件

还可以设置分组条件,用HAVING语句,但条件值必须为查询的列之一或聚合函数(某些计算公式,比如最大值最小值)

例子如下:

SELECT 列名 FROM 表名 GROUP BY 列名 HAVING 列名 | 表达式  运算符 值;

图中命令意译为:查询users表中的sex,age列,并只显示age>35的值

查询结果排序

对查询结果进行排序,使用order by语句

ORDER BY  列名 | 表达式  | 位置     ASC | DESC ;       /ASC为升序   DESC 为降序

以ID降序为例子如下:

类似于功能组合,可以用于分组查询中

如果有相同数值的记录出现,可以指定按照两个列来排序,同时检查两个字段的值是否符合规则

如下:

限制查询结果的返回数量

如果只填一个数字,则默认从1开始返回例子如下

返回2条记录,例子:

但如果填写了两个数字则要从0开始数

返回第4-5条记录

例子如下:

其实当填写一个数值的时候相当于填 LIMIT 0,x

格式: LIMIT 索引起始位置,显示数量;

配合升降排序

例子如下:

之前写的第三种插入记录方法

INSERT  被添加记录的表 (要添加记录的列)   SELECT 查询的列  FROM 来自哪个表  条件  条件值(公式) ;

要注意的是查询的字段与被插入记录的表的字段要相同

例子如下:

创建一个只有2个字段的表,注意这里id设为自动编号了,就算设置为自动编号,添加查询结果时也要指定添加到哪列,否则会默认为给所有列添加记录

现在从users表中将字段添加进test2表

本章节到此结束,下面为另一个听讲师讲课的笔记.

本章讲的是对于表的查询,也就是查询数据_表内的列

最简单的查询列

要查询多个列,用逗号将列名隔开就行.

先写查询哪列,再填哪个表

之前也讲过数据库的结构:列在表下面,表在库下面

类似于报家里地址时,先说门牌号,再说哪个地区

去重查询

去掉重复的查询结果

具体例子:现在有5样商品,有2件属于同一品牌,另外三件也属于同一品牌

现在要查有多少个牌子,如果不去重,那会将所有商品都打印出来

数学运算查询

SELECT该命令有计算器的作用...可以将查询结果进行数学运算

具体使用方法为 SELECT 列名1,列名2,列名1*列名2 FROM 表名

例子:

顺便讲一个别名的知识点

加AS可以改变显示列的名称,这叫起别名

起别名的规则

猜你喜欢

转载自blog.csdn.net/include_ice/article/details/80466016