zoukankan      html  css  js  c++  java
  • 常用SQL语句(增删查改、合并统计、模糊搜索)

    转自:http://www.cnblogs.com/ljianhui/archive/2012/08/13/2695906.html

    常用SQL语句

    首行当然是最基本的增删查改啦,其中最重要的是查。



    还有就是一些要注意的地方,就是SQL语句对大小写不敏感,语句中列名对应的值要用单引号''括起来不是双引号。
    SQL 使用单引号来环绕文本值。如果是数值,请不要使用引号。
    特别是C/C++程序员要注意,通常错误都是在用字符串进行拼接SQL语句时,由于双引号和单引号混用,特别容易出错。




    一、查:1、SELECT 列名称 FROM 表名称,其中列名可以是多个,中间用豆号分开,如SELECT LastName,FirstName FROM Persons;
        2、SELECT * FROM 表名称,表示查找表中所有的内容,星号(*)是选取所有列的快捷方式;
        3、用where 限定搜索范围,SELECT 列名称 FROM 表名称 WHERE 列 运算符 值,其中,运算符包括
            操作符 描述
             = 等于
             <> 不等于
             > 大于
             < 小于
             >= 大于等于
            <= 小于等于
    BETWEEN     在某个范围内
            LIKE 搜索某种模式
       注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。
       如:SELECT * FROM Persons WHERE City='Beijing'


         4、以下说说上面的一个运算符like
    LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。SELECT column_name(s)FROM table_name WHERE column_name LIKE pattern
    例如:
    SELECT * FROM Persons WHERE City LIKE 'N%'
    SELECT * FROM Persons WHERE City LIKE '%g'
    SELECT * FROM Persons WHERE City LIKE '%lon%'

    在以上的三个例子中,都有一个符号“%”,"%" 可用于定义通配符(模式中缺少的字母)。对于第一个例子,可以理解为查找City列中的名字中一定要以N开头的,后面的字母是什么,不用管;同理,第二个例子,是搜索City列中的名字中一定要以g结尾的城市,第三个例子,则是查找City列中的名字中名字存在lon的城市。

    简单点来说,这是一种模糊搜索,而“%”可以代表任何字符。

        5、and,or
    and 即条件交集,or 即条件并集;


    二、改:Update 语句用于修改表中的数据。语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;
        列名可以是多个,多个列名之间用豆号分开;
        例如:UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
     UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'


    三、删:DELETE 语句用于删除表中的行。语法:DELETE FROM 表名称 WHERE 列名称 = 值,如:DELETE FROM Person WHERE LastName = 'Wilson' 
        删除所有行,DELETE FROM table_name或DELETE * FROM table_name(注意,并不删除表);


         
    四、增:INSERT INTO 语句用于向表格中插入新的行。语句:INSERT INTO 表名称 VALUES (值1, 值2,....)
    或INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
        例如:INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')或
     INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees‘)


    五、sum()函数
    SUM 函数返回数值列的总数(总额)。注意,只能统计数值。语法:SELECT SUM(column_name) FROM table_name
    例如:SELECT SUM(OrderPrice) AS OrderTotal FROM Orders;as表示生成的数据的列名是OrderTotal


    六、count()函数
    1、COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入),即column_name中有多少个不同的值:
    SELECT COUNT(column_name) FROM table_name
    如:SELECT COUNT(Customer) AS CustomerNilsen FROM Orders WHERE Customer='Carter'


    2、COUNT(*) 函数返回表中的记录数,即表中有多少条记录:SELECT COUNT(*) FROM table_name
    如:SELECT COUNT(*) AS NumberOfOrders FROM Orders


    3、COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:SELECT COUNT(DISTINCT column_name) FROM table_name
    如:SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders


    注:count()函数可以统计出一个列中某一值的出现次数,而不限于列的值的数据类型,而sum()函数限定操作的值的类型一定要是数值类型;

    七、group by
    1、GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。通常与sum()、count()等函数一起用。
    2、语法:SELECT column_name0, aggregate_function(column_name1) FROM table_name WHERE column_name operator value GROUP BY column_name2
    3、与sum()的结合使用,可以根据column_name2列中的值的不同而对column_name1的值进行分组并合计;
    例如:SELECT City, sum(input) FROM Person  GROUP BY City ;就能按把收入统计并按城市分组,即表中有多少个不同的City就有多少行数据。
    4、与count()结合使用,可以统计出某表中某列中的某值出现的次数.
    select a as xm,count(a) as cs from table1 group by a
    如某表table1,
    ... a ...
    ... 0 ...
    ... 1 ...
    ... 2 ...
    ... 1 ...
    ... 0 ...
    其中a列只有0,1,2三种值,如何统计各值出现的次数,最好弄成这样的
    XM CS
    0 (0出现的次数)   
    1 (1出现的次数)
    2 (2出现的次数)
    5、我们也可以对一个以上的列应用 GROUP BY 语句,就像这样:

    SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders GROUP BY Customer,OrderDate

     

    八、把两个表中的相关内容进行搜索合并

    例如:select column1,column2,column3 from table_name1,talbe_name2 where table_name1.column = table_name2.column

    注意:两个表中就有一个记录相同信息的列 column。

  • 相关阅读:
    (转)Java并发包:AtomicBoolean和AtomicReference
    (转)maven怎么 引入(或引用/使用) 自定义(或本地/第三方) jar的三种方式 图文教程 方法二最简单
    servlet3.0 异步处理
    (转)Groovy简介
    (转)springboot应用启动原理(一) 将启动脚本嵌入jar
    (转)springboot应用启动原理(二) 扩展URLClassLoader实现嵌套jar加载
    (转)运行jar应用程序引用其他jar包的四种方法 -- ClassLoader应用
    (转)二层网络结构和三层网络结构的对比
    Java语法糖4:内部类
    Java语法糖3:泛型
  • 原文地址:https://www.cnblogs.com/cugwx/p/3586735.html
Copyright © 2011-2022 走看看