zoukankan      html  css  js  c++  java
  • 简单的增 删 改 查

    一:insert语句
    into 关键字是可选的
    values关键字前面的()是可选的,这里是要接收数据的列
    values后面,有两种方式提供值
    1:显式的给出值  2:从select语句中导出值

    insert语句注意几点
    1:不要理标志列,系统会给你插入的
    2:给出实际的值,如果没有,那就null
    3:给出默认的值,default关键字,告诉数据库取默认值

    insert into ... select
    什么时候会这么用,当成批的数据来自
    1:数据库中的另一个表
    2:同一台服务器完全不同的数据库
    3:另一个SQLSERVER的数据库
    4:来自同一个表中的数据
    说实在的2和3我从来没用过

    好,看一个例子
    declare @mytable table
    (
     id int,
     sortid int
    );
    insert into @mytable  (id,sortid)  select id,classid from product;
    select * from @mytable;
    注意我定义了一个表的对象
    每一句之间是用分号隔开的
    (id,sortid)  是可以忽略的


    二:update语句
    看例子
    update e set e.flag = 'm'   from  employee  e  join contact ce on e.id = ce.employeeid where ce.name = 'jo'
    这里用到了join子句,当然是可以用的
    如果修改不止一列  只要加一个逗号
    set   num = num * 1.2当然可以写表达式

    三:delete语句
    delete from actors from actors a  left join film f on a.filmid = f.filmid where f.filmid is null
    outer连接将在没有匹配的一端返回null,
    这里也就是film表没有匹配的行是null
    注意   is null  的写法

    四: select语句
    这里还是不说了,还是多说说子句吧

    五:where子句
    1:
    =    >     <    >=  <=    <>  !=  !>  !<
    其中<>  与 !=都是不相等的意思
    !>与!<不怎么常见,但仔细想想也没什么用处 

    2:
    and   or   not  
    如果一个where子句中同时出现这三个操作符
    最先评估not   然后是and  然后是or 

    3:
    between 例子 between 1 and 5   这个就不多说了 

    4:
    like   例子:like "xland%"
    %和_是通配符
    %代表零个或多个任意字符
    _表示单个任意字符
    把字符包括在方括号中
    [a-c]表示a b c都可行
    [ab]表示a或b
    ^与not表示下一个字符将被排除掉 

    5:
    in  例子  in ( 1,2,3)   这个也不多说了

    六:order by子句
    order by由于比较常用  我这里就不多说了
    1:order by username  是可以识别中文的(sql先把中文转换成拼音再进行排序)
    2:可以对 查询到的表中的任何列 进行排序  无论该列是否包含在select列表中
    3:基于多个列的order by  
          例如:order by addtime,id
          先按时间排序,再在这个基础上根据id排序,你也看到了,性能是有很大幅度的降低的

    七:distinct关键字
    select  count(distinct  column) from table
    检索某一列不重复的记录数

    八:group by  聚集函数  和 having子句
    先看例子:
    select   orderid sum(orderMoney) from sales where orderid between 3 and 123 group by orderid
    注意这里的orderid在表里是有可能重复的
    这个语句的作用是检索出orderid从3到123的记录,
    然后在这个记录集合上  以orderid分组
    把orderid相同的数据分到一组  (这一组就是最终结果的一条记录)
    然后通过sum函数把各组的orderMoney数据相加,
    结果是最终结果的第二个字段

    我发现用group  by子句基本上都是和聚集函数一起用的
    举几个聚集函数的例子
    sum 求和
    avg求平均数
    min/max求最大和最小值
    count(表达式|*)获取一个查询中的行数
    只说说count吧:
    count(coloum)如果这一列有null,那么这些null的行将不会计算在内 
    count(*)将得到表里的所有行的数目
    聚集函数不一定非和group by一起使用不可
    (另外avg基本上都是和group by一起使用的)

    having子句是在组上放置条件的
    看例子
    select   orderid sum(orderMoney) from sales where orderid between 3 and 123 group by orderid  having sum(orderMoney)>5
    group by得到了一个记录的集合
    然后通过having子句,再在这个集合上做筛选

  • 相关阅读:
    A Bug's Life(削弱版食物链)
    The Suspects
    Find The Multiple
    Lake Counting(dfs)
    经典dfs(depth-first search)
    喝啤酒(预防老年痴呆的深度搜索)
    C语言的位运算的优势 !
    Oil Deposits
    Catch That Cow
    HTML 003 元素
  • 原文地址:https://www.cnblogs.com/liulun/p/1343417.html
Copyright © 2011-2022 走看看