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

添加记录

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

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

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

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

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

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

 

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

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

调用md5算法:

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

第二种方法:

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

 

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

第三种方法:

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

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

更新记录

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

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

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

 

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

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

UPDATE users SET age=age+5;

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

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

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

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

删除记录(单表删除)

也就是批量删除记录

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

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

删除id为6的记录例子:

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

查找记录

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

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

[WHERE 条件表达式]

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

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

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

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

 

可以简化为这样:

SELECT 表达式;

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

查询例子:

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

 

 

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

 

最简单的查询列

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

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

 

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

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

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

 

去重查询

 

去掉重复的查询结果

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

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

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

数学运算查询

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

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

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

例子:

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

顺便讲一个别名的知识点

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

起别名的规则

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