mysql insert操作 查看_MySQL 记录基本操作

插入记录 INSERT

语法1:

INSERT [INTO] 表名 [(列名1,列名2,...)] VALUES(列值1,列值2,...),(...),...;

对于自动编号的字段,插入NULL或DEFAULT,系统将自动依次递增编号;

对于有默认约束的字段,可以插入“DEFAULT”表示使用默认值;

列值可传入数值、表达式或函数,如密码可以用md5()函数进行加密(如md5('123'));

可同时插入多条记录,多条记录括号间用逗号“,”隔开

语法2:

INSERT [INTO] 表名 SET 列名1=列值1, 列名2=列值2,...;

这种方法一次只能插入一条记录;

列值中有自动编号、默认值或Boolean类型均可以不赋值(使用子查询)

语法3:

INSERT [INTO] 表名(列名1,...) SELECT 列名1,... FROM 表名 [GROUP BY/HAVING/ORDER BY/LIMIT...];

--示例

INSERT test SELECT username FROM users WHERE age >=30;

--上面会有字段不匹配提示,改为

INSERT test(username) SELECT username FROM users WHERE age >=30;

一般用于将其他表的数据插入到指定表,注意字段对应

单表更新 UPDATE

UPDATE 表名 SET 列名1=列值1 [,列名2=列值2, ...] [WHERE 条件];

--(如条件为 列名=列值 修改某一字段的值)

省略条件则更新所有记录该列的值

单表删除 DELETE

DELETE FROM 表名 [WHERE 条件];

省略条件则默认删除该表所有记录(仅删除所有记录,不删除数据表);

删除一个自动编号的中间字段如id=100后,新插入字段时,id为已有的最大号数+1,如最后一条id=123,插入记录的id=124.

查询表达式 SELECT

SELECT select_expr [,select expr2...] --只查找某一个函数或表达式

[

FROM table_references --查询表名

[WHERE where_conditon] --查询条件

[GROUP BY {col_name|position} [ASC|DESC],...] --按某个字段进行分组,相同的只显示第一个

[HAVING where_conditon] --分组时,给出显示条件

[ORDER BY {col_name|expr|position} [ASC|DESC],...] --排序

[LIMIT {[offset,]row_count | row_count OFFSET offset}] --限制返回数量

]

查询表达式可以使用[As]alias_name为其赋予别名

别名可用于GROUP BY,ORDRE BY或HAVING子句

使用tbl_name.col_name来表示列记录,这在多表查询时可以区别同名的列

条件表达式 WHERE

WHERE 关键字后根据

条件>、=、<=、!=、<>、IS NOT NULL

逻辑and,or

结合方式left join、right join

模式匹配IN、NOT IN、like、not like、regexp

等各种MySQL函数和表达式,从表集合中筛选记录。

查询结果分组 GROUP BY

GROUP BY 只能显示每组第一条,所以一般用来统计每组的条数,某个值的和等等,要显示全部数据的话最好用 ORDER BY

[GROUP BY {col_name|position} [ASC|DESC],...]

ASC:升序,默认

DESC:降序

position:SELECT语句中列的序号

如果存在相同的值(例如age可能有多个相同的值),只会保留一个。但使用ORDER BY就不会省略。

示例:

SELECT sex FROM users GROUP BY sex;

对users中的sex按sex进行分组

SELECT * FROM users GROUP BY 1;

这里查询所有字段,1表示SELECT语句中第一个出现的字段,即位置。 建议GROUP BY后写列名称,不写位置,因为位置容易数错.

指定分组条件 HAVING

[HAVING 聚合函数()]

[HAVING where_condition]

用在GROUP BY后面追加条件,HAVING后面可以跟聚合函数(如count(),max()等等),或者跟判断式.

注意where_condition中的字段必须出现在前面SELECT中,否则缺少字段没法进行筛选.

示例:

SELECT sex FROM users GROUP BY 1 HAVING age > 35;

有错,应该改为:

SELECT sex, age FROM users GROUP BY 1 HAVING age > 35;

SELECT sex FROM users GROUP BY 1 HAVING count(id) >= 2;

这条指令按照sex分组,分成了两组sex=0和sex=NULL,条件id个数大于2的留下显示,显然sex=0个数有8>2故留下,而sex=NULL个数为1,不满足条件,故不显示。如果条件改成count(id)>=1,则会显示sex为0和NULL两个分组。

聚合函数永远只有一个返回结果.

查询结果排序 ORDER BY

ORDER BY { col_name | expr | position } [ASC|DESC],...

对查询结果进行排序,默认是升序

可以同时按多条字段进行排序,规则是先按前面的字段排,在基础上再按后面字段排。

--对一个字段排序

SELECT * FROM users ORDER BY id DESC;

--先按照age排序,如果age有重复的,重复的字段里按id排序

SELECT * FROM users ORDER BY age,id DESC;

限制结果数量 LIMIT

LIMIT {[offset,]row_count | row_count OFFSET offset}

限制查询结果返回的行数

-- 从第一条开始(第一个为0),返回两条

SELECT * FROM users LIMIT 2;

--从第三条开始(第一个为0),返回三条

SELECT * FROM users LIMIT 2,3 ;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值