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 后的语法,在其他数据库上并不能通用。

 

posted @ 2016-10-20 20:56  下雨天MJ  阅读(128)  评论(0)    收藏  举报