mysql whrere 占位_【MySQL】(4)操作数据表中的记录

1. 插入记录INSERT

方法一:

INSERT [INTO] tbl_name [(clo_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...;

比如:

CREATE TABLE users(

id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

username VARCHAR(20) NOT NULL,

password VARCHAR(32) NOT NULL,

age TINYINT UNSIGNED NOT NULL DEFAULT 10,

sex BOOLEAN

);

# 插入记录,不指定列的数目时。必须全部的字段都要赋值

INSERT users VALUES(NULL, 'Tom', '123', 25, 1);

INSERT users VALUES(NULL, 'Tom2', '123', 28, 1);

INSERT users VALUES(DEFAULT, 'Tom3', '111', 28, 1);

# 使用数学表达式也能够加入值

INSERT users VALUES(DEFAULT, 'Tom4', '111', 3*7+2/3, 1);

# 给年龄DEFAULT。会採用默认值10

INSERT users VALUES(DEFAULT, 'Tom5', '111', DEFAULT, 1);

# 一次加入多条记录

INSERT users VALUES(DEFAULT, 'Tom6', '111', DEFAULT, 1), (NULL, 'Rose', md5('213'), DEFAULT, 0);

方法二:

INSERT [INTO] tbl_name SET col_name={exp | DEFAULT},...;

这种方法与第一种方式的差别在于,此方法能够使用子查询(SubQuery),此方法一次性仅仅能插入一条记录。

比如:

INSERT users SET username='Ben', password='456';方法三:

INSERT [INTO] tbl_name [(col_name, ...)] SELECT ...;

使用此方法能够将查询结果插入到指定数据表。

2. 单表更新记录UPDATE

UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1 | DEFAULT} [, col_name2={expr2 | DEFAULT}] ... [WHERE where_condition];

比如:

# 全部记录的年龄都加5

UPDATE users SET age=age+5;

# 更新多列

UPDATE users SET age=age-id, sex=0;

# 更新id为偶数的记录

UPDATE users SET age=age+10 WHERE id%2=0;

3. 单表删除记录DELETE

DELETE FROM tbl_name [WHERE where_condition];

比如:

DELETE FROM users WHERE id=6;

即使在删除后,id号不连续,那么新增的数据还是会在最大的id号加一。

4. 查询表达时解析

SELECT select_expr [, select_expr ...] [FROM table_references [WHERE whrere_condition] [GROUP BY {col_name | position} [ASC | DESC],...][HAVING where_condition][ORDER BY {col_name | expr | position} [ASC | DESC],

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

每个表达式表示想要的一列,必须至少有一个。多个烈之间以英文逗号分隔。

星号(*)表示全部列。

tbl_name.*能够表示命名表的全部列。查询表达式能够使用[AS] alias_name为其赋予别名。别名可用于GROUP BY,ORDER BY或HAVING字句。

比如:

# 查看MySQL版本号

SELECT VERSION();

# 查看当前时间

SELECT NOW();

# 仅仅查看前两列

SELECT id, username FROM users;

SELECT username, id FROM users;

SELECT users.id, users.username FROM users;

SELECT id AS userid, username AS uname FROM users;

# ASkeyword能够省略,可是尽量写上,避免不必要的错误

SELECT id username FROM users;字段的顺序和结果集都将影响查询出的结果集。

(1). WHERE

条件表达式

对记录进行过滤,假设没有指定WHERE字句,则显示全部记录。在WHERE表达式中,能够使用MySQL支持的函数或运算符。

(2). GROUP BY

查询结果分组

比如:

SELECT sex FROM users GROUP BY sex;

# 1表示依照SELECT语句中第一个出现的字段排序

SELECT sex FROM users GROUP BY 1;(3). HAVING

分组条件

比如:

# 当HAVING语句有age的条件时,前面的SELECT中必须出现这个age字段

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

# 或者是一个聚合函数

SELECT sex, age FROM users GROUP BY 1 HAVING count(id)>=2;(4). ORDER BY

对查询结果进行排序

比如:

# 依照id降序排列

SELECT * FROM users ORDER BY id DESC;

# 同一时候以两个字段排序age默认升序,id降序

SELECT * FROM users ORDER BY age, id DESC;(5). LIMIT

限制查询结果返回的数量

比如:

# 从第1条開始返回2条记录

SELECT * FROM users LIMIT 2;

# 从第1条開始,偏移2条后,查询2条记录

SELECT * FROM users LIMIT 2 OFFSET 2;

# 从第4条開始(从0開始计数),返回2条记录

SELECT * FROM users LIMIT 3, 2;

SELECT * FROM users ORDER BY id DESC LIMIT 2, 2;

CREATE TABLE test(id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20));

# 将users年龄大于30的数据插入test表

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值