【MySQL】(4)操作数据表中的记录
2017-05-04 10:06
260 查看
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;
相关文章推荐
- 在mysql 安装后可以启动 bin-log 功能,以记录数据库的数据操作的记录,必要时候恢复数据,
- MySQL数据记录基本操作——单表查询
- MySQL学习记录--操作时间数据
- MySQL--操作数据表1:插入记录
- MySQL学习笔记 2:约束、修改数据表和操作数据表中的记录
- MySQL数据表中记录不存在则插入,存在则更新/不操作
- mysql命令(三)--操作数据表中的记录
- Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录
- MYSQL操作数据表中的记录
- MySQL学习笔记-操作数据表中的记录
- mysql的jdbc大量数据操作记录
- MySQL学习14:操作数据表中的记录(二)
- MySQL数据记录基本操作——添加数据、更新数据和删除数据
- 基于Linux的MySQL操作实例之数据导入/导出,新增/查询表记录
- 随笔记录 MYSQL 数据库操作数据表崩溃
- MySQL基本操作(六):建表,插入多条记录,更新表中特定数据
- MySQL(四) —— 操作数据表中的记录
- MySQL学习13:操作数据表中的记录(一)
- MYSQL——操作数据表中的记录
- MySQL 数据类型和数据表操作:查找插入记录