首页 > 数据库技术 > 详细

SQL数据库的使用:增删改查

时间:2016-01-01 20:53:26      阅读:1079      评论:0      收藏:0      [点我收藏+]
一、向数据库插入 修改 删除数据(DML)
语法:insert into 表名称(字段1,字段2,... 字段n) values(值1,值2,... 值n);
  1. 例:insert into user(id,username,password,gender,age,email,salary,state,dept,registTime)values(1,‘张三‘,‘123‘,‘男‘,28,‘zhangsan@163.com‘,5000,1,‘技术部‘,‘2015-12-12 12:12:12‘);//自增长的主键在插入的时候值可以为null
技术分享

特殊插入方式,如果插入全部值有精简的写法(注意:如果是全字段插入的话 字段名可以省略)
语法:insert into 表名称 values(值1,值2,值3........值n);
  1. insert into user values(null,‘王五‘,‘123‘,‘男‘,28,‘wangwyu@163.com‘,5000,1,‘技术部‘,‘2015-12-12 12:12:12‘);
技术分享

插入数据的时候只要字段没有设置no null属性就可以不插入
  1. insert into user(username,password,email) values(‘zhaoliu‘,‘12345‘,‘zhaoliu@itcast.cn‘);
技术分享

如果有默认约束的字段不插入的时候 显示默认值 如果插入是null 就是null
  1. insert into user(username,password,email,age) values(‘tianqi‘,‘12345‘,‘tianqi@itcast.cn‘,null);
技术分享
二、修改数据
语法:update 表名称 set 字段=值,字段=值.....   [where 条件]
  1. 示例:update user set password = ‘abc‘,gender=‘女‘ where id=3;
技术分享
在执行修改语句的时候一定要加上修改条件(where=?)否则就会进行全数据库内容的修改
三、删除数据
语法:delete from 表名称 [where 条件]
  1. 示例:delete from user where username=‘tianqi‘;
技术分享
注意:如果不写where条件 表中的数据会全部删除掉
问题:drop table user;与delete from user;的区别?
前者将表的数据和结构都删除掉 后者只删除表的数据表的结构还在
问题:delete from user; 与 truncate user;的区别?
前者是逐条删除表中的数据的 并且受事务的控制 ,后者先将表摧毁,然后在重建表的结构,并且不受事务的控制。
四、什么是事物:一个过程中存在n个动作(事件) 要不这些动作同时成功 要不同时失败
  1. start transaction;//开启一个事务
  2. rollback;//回滚 从开启事务到回滚之间做的所有操作都无效
    技术分享
  3. commit;//提交 从开启事务到提交之间做的所有操作有效
    技术分享

五、查询数据(DQL)
  1. 查询全部:select * from user;   //* 代表所有的字段
    技术分享
  2. 查询部分字段:select 字段1,字段2 from 表;
    技术分享
  3. 去重查询: select distinct  字段 from user;
    技术分享
    select distinct 字段1,字段2from 表;
    注意:上面的语句代表dept和username都重复才算是一条重复数据
  4. 运算查询:select 字段1,字段2+1000 from 表;
    技术分享
    注意:null+任何数值都是null,运算查询只能是int类型运算,字符串相加结果为0
    ifnull函数  
    技术分享
    起一个别名 as 别名   as可以省略
    技术分享
  5. 聚合查询(聚合函数):注意:聚合函数忽略null值
    1. count(字段)  计数函数:语法:select count(字段) from 表;
      技术分享
    2. sum()    求和函数:语法:select sum(字段) from 表;
      技术分享
      注意:聚合函数聚合的某一个字段下的所有值
    3. avg()    平均数:
      1. 第一张方式:
        语法:select sum(字段)/count(字段) from 表;(2个字段值相同)
        技术分享
      2. 第二种方式:
        语法:select avg(字段) from 表;
        技术分享
    4. max()   求最大值:
      语法:select max(字段) from 表;
      技术分享
    5. min()    求最小值:
      语法:select min(字段) from 表;
      技术分享
      注意:聚合值不要轻易与某个字段进行搭配,比如这种:select username,sum(salary) from user
  6. 排序查询  :order by 字段,语法:select *from 表 order by 字段1 参数,字段2 参数;
    1. 升序:asc(默认)
    2. 降序:desc
      技术分享
      多个字段查询
      技术分享
  7. 条件查询
    1. 单条件查询
      语法:select * from 表 where 字段>值;
      技术分享
      注意:涉及的符号>  <   !=  .......
    2. 多条件查询
      and 条件。语法:select * from 表 where 字段<值 and 字段=值;
      技术分享
      or条件:语法:select * from 表 where 字段<值 or 字段>值;
      技术分享
      注意:and优先级大于or
    3.  范围查询  between  and
      1. 第一种方式:select * from 表 where 字段>值1 and 字段 <值2;
        技术分享
      2. 第二种方式:select * from 表 here 字段 between 值1 and 值2;(包含值1和值2)
        技术分享
    4. 枚举查询:语法:select * from 表 where id 字段(值1,值2,值3);
      技术分享

    5.  空查询:语法:select * from 表 where 字段 is null;     
      非空查询:语法:select * from 表 where 字段 is not null;     
    6. 模糊查询:语法:select * from 表 where 字段 like ‘%(某个内容)%‘;      %代表任意0个或多个字符
      技术分享
      查询指定模糊:语法:select * from 表 where 字段 like ‘(某个内容)_‘;     注意:_代表任意一个字符
      技术分享
    7. 分组查询:需求:求各个部门每个月的薪资支出总和
      语法:select 字段,sum(字段) from 字段 group by 字段;
      例子:select dept,sum(salary) from user group by dept;
      技术分享
      having:代表对分组后的数据进行筛选
      例子:select dept,sum(salary) from user group by dept having sum(salary)>15000;
      技术分享
    8. 分页查询:limit
      语法:select  * from 表 limit 0,5; (第0个开始,向下5个)
      例子:select  * from user limit 2,2; 
      技术分享




SQL数据库的使用:增删改查

原文:http://www.cnblogs.com/didixyy/p/c093f09baa67c15e8e25d87ba757d23c.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!