Mysql增删改查
insert
insert into 表名 values(信息) 添加字符和日期类型时要用单引号
- 指定某个字段添加:INSERT INTO 表名 (字段名) values (数据)
在MySQL 中,insert 语句还有一个很好的特性,可以一次性插入多条记录,语法如下:insert into 表名 values(数据,数据....),(数据,数据....),(数据,数据....)......;
对于含可空字段、非空但是含有默认值的字段、自增字段,可以不用在insert 后的字段列表里面出现,values 后面只写对应字段名称的value,这些没写的字段可以自动设置为NULL、默认值、自增的下一个数字,这样在某些情况下可以大大缩短SQL 语句的复杂性。
update
修改表的数据 update 表名 set 字段名=??? where.... 如果没有where字句 则修改所有行
多表更新字段方法:update 表名,表名,表名.... set 表1.字段=???,表2.字段=???,表3.字段=???.... where 条件1 and 条件2 or 条件3...
注意:多表更新的语法更多地用在了根据一个表的字段,来动态的更新另外一个表的字段
delete
delete from 表名 where 条件 不加where则删除所有记录 delete语句不能删除某一列的值(可用update)
删除多表记录:delete 表名,表名,表名.... from 表名,表名,表名.... where 条件1 and 条件2 or 条件3... 某个表的字段要表示成表名.字段
另一种删除方法 truncate table 表名 where 条件 可以删除记录 速度快 不能回滚
注意:不管是单表还是多表,不加where 条件将会把表的所有记录删除,所以操作时一定要小心。
同insert和update语句一样 从一个表中删除记录将引起其他表的参照完整性问题 在修改数据库数据时 不要忘记这个问题
select
附带条件查询
- select distinct 列名,列名 from 表名 where 条件 加上distinct 指显示结果时 过滤重复数据
- select 列的条件(比如列+列+10) from 表名
- 使用别名查询 select 列名 别名 from 表名
where字句中经常使用的运算符
- > < <= >= = 不等于的两种写法(<> !=) and, not, or
- between..and..显示在某一区间的值
- in(set)显示在in列表中的值 例如:in(100,200)
- is null, is not null 判读是否为空
- like"参数一+参数二+查询字段" 模糊查询
- 参数 %和_ %代表零个或多个任意字符 _代表一个字符
- 例:查询name 执行 like'_a%';
- 参数 %和_ %代表零个或多个任意字符 _代表一个字符
排序语句
-
- SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC] , field2 [DESC|ASC],……fieldn [DESC|ASC]]
- DESC 和ASC 是排序顺序关键字,DESC 表示按照字段进行降序排列,ASC 则表示升序,默认是升序
- ORDER BY 后面可以跟多个不同的排序字段,并且每个排序字段可以有不同的排序顺序如果排序字段的值一样,则值相同的字段按照第二个排序字段进行排序,以此类推。如果只有一个排序字段,则这些字段相同的记录将会无序排列。
- 对于排序后的记录,如果希望只显示一部分,而不是全部,这时,就可以使用LIMIT 关键字来实现
- LIMIT 的语法如下:SELECT ……[LIMIT offset_start,row_count] 其中offset_start 表示记录的起始偏移量,row_count 表示显示的行数。
- 注意:limit 属于MySQL 扩展SQL92 后的语法,在其他数据库上并不能通用。

浙公网安备 33010602011771号