MySQL(四):操作数据表中的记录
添加记录
语句: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,也就是,容易混淆.
本章讲的是对于表的查询,也就是查询数据_表内的列
最简单的查询列
要查询多个列,用逗号将列名隔开就行.
先写查询哪列,再填哪个表
之前也讲过数据库的结构:列在表下面,表在库下面
类似于报家里地址时,先说门牌号,再说哪个地区
去重查询
去掉重复的查询结果
具体例子:现在有5样商品,有2件属于同一品牌,另外三件也属于同一品牌
现在要查有多少个牌子,如果不去重,那会将所有商品都打印出来
数学运算查询
SELECT该命令有计算器的作用...可以将查询结果进行数学运算
具体使用方法为 SELECT 列名1,列名2,列名1*列名2 FROM 表名
例子:
顺便讲一个别名的知识点
加AS可以改变显示列的名称,这叫起别名
起别名的规则