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 ;
posted @ 2022-12-09 18:32  mmszxc  阅读(19)  评论(0)    收藏  举报