003 MySQL 表操作 增删改查
表数据操作
遵循SQL92标准
3、建表语句
CREATE TABLE `stone1` (
`id` int NOT NULL AUTO_INCREMENT conment 'ID 序号',
`user` varchar(255) NOT NULL conment '用户名信息',
`password` varchar(255) NOT NULL conment '用户密码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
desc stone1;
查询表的字段信息
4、查数据
awk 取列 grep 过滤
单表查询 查全表的单一字段
mysql> select id,user,password from user.stone1;
+----+------+----------+
| id | user | password |
+----+------+----------+
| 1 | 123 | 123 |
+----+------+----------+
1 row in set (0.02 sec)
等值查询
SELECT * FROM user.`stone1` WHERE USER='zhangshan' ;
模糊查询 %站位符 在最后面以什么结尾
SELECT * FROM user.`stone1` WHERE USER LIKE '66%' ;
模糊查询 %站位符 values包含特殊字符的
SELECT * FROM user.`stone1` where USER like '%1%' ;
_ 一个下滑线代表一个字符,select中模糊查询使用
模糊查询
使用 or 效率极低!!!!
SELECT * FROM user.`stone1` WHERE USER='123' OR USER = '6666';
等值
SELECT * FROM user.`stone1` where user in ('6666' ,'123');
使用多个条件 and
SELECT * FROM user.`stone1` where id>5 and user='123' ;
大小查询
SELECT * FROM user.`stone1` where id>5 ;
SELECT * FROM user.`stone1` where id<5 ;
SELECT * FROM user.`stone1` where id <=5 ;
SELECT * FROM user.`stone1` where id >=5 ;
SELECT * FROM user.`stone1` where id <>5 ;
范围查询,between
select id from stone1 not between 2 and 4; id值不在 2和4之间的。
排序 desc 默认从小到大,A-Z
SELECT * FROM user.`stone1` ORDER BY id ; 正序 asc 一般不加,默认就是正序
SELECT * FROM user.`stone1` ORDER BY id DESC; 反序
分页显示 limit
一页的数据是10个
SELECT * FROM user.`stone1` order by id limit 10; 只显示第一页
SELECT * FROM user.`stone1` order by id limit 10,10; 只显示第二页,第一个10,跳过10行,第二个10 显示10行
不同的写法
SELECT * FROM user.`stone1` order by id limit 10 offset 0; 也会显示10行的意思
SELECT * FROM user.`stone1` order by id limit 10 offset 10 ; 跳过10行显示10行,也就是说跳过1-10,显示11-20
5、增数据
规范插入:键值标准
mysql> insert into stone1(user,password) values('zhangsan','123');
Query OK, 1 row affected (0.01 sec)
多条插入
insert into stone1(user,password)
values('zhangsan','123');
6、更新数据
mysql> update stone1 set user='ooo';
Query OK, 2 rows affected (0.01 sec)
修改字段的的全部内容 (注: mysql有严格模式和非严格模式, 没有where条件就报错 注意规范)
UPDATE user.stone1 SET USER='6666 where 1=1'
修改字段中的 某一行的内容
UPDATE user.`stone1` SET USER='9999' WHERE id='5';
7、删除数据
删除全部行内容 (一行一行的删 极其慢)
DELETE FROM user.`stone1`; 或者 DELETE FROM user.`stone1` where 1=1;
# 场景是 zabbix的agent的状态,drop table,然后重建表,效率高。
指定删除
DELETE FROM user.`stone1` WHERE id='1';
业务上进行伪删除 添加状态列 stat ,enum类型,default是True ,更改为False 相当于删除
UPDATE stone1 SET stat='False' WHERE id=5;
查询显示的数据
SELECT * FROM user.`stone1` WHERE stat=TRUE ;
浙公网安备 33010602011771号