码迷,mamicode.com
首页 > 数据库 > 详细

SQL学习整理

时间:2018-02-09 14:51:50      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:sele   去重   数据   分类   between   cat   sum   空间   drop   

SQL整理

SQL 对大小写不敏感!

一、对数据的操作

实现功能分类:

  1. 增:

    1.1 表存在,插入栏位:

            //插入新的行(按栏位的顺序插入)

      INSERT INTO Table_1 VALUES (‘bly‘,23,‘girl‘)

      //指定栏位插入

      INSERT INTO Table_1 (name,address) VALUES (‘bbbb‘,‘cccc‘) 

      //将表2表中的数据都复制新增至表1中

                INSERT INTO Table_1  SELECT * FROM Table_2

    1.2 表不存在

      //先建立表3,再将表1中的指定栏位插入新表

               SELECT name,address INTO Table_3 FROM Table_1

  2.  删

    2.1 DELETE FROM Table_1  //删除表1表中所有数据(逐条删除,速度慢)

    2.2 TRUNCATE TABLE Table_1  //清空表1表的数据(一次性删除所有,速度快)

      注:delete、truncate、drop区别

 

删除XXX

应用范围

格式

表和索引所占空间

delete

数据

table&&view

DELETE  FROM  table

不会减少

truncate

数据

table

TRUNCATE  TABLE  table

恢复初始大小

drop

 

DROP  TABLE  table

表占空间全部释放

 3           改

3.1 UPDATE Table_1 SET gender=‘boy‘ WHERE name=‘bbbb‘

4           查

4.1          SELECT * FROM Table_1 WHERE gender=‘boy‘

4.2          SELECT * FROM Table_1

4.3          SELECT TOP 50 PERCENT name,SUM(price) FROM Table_1

GROUP BY name

Having SUM(price)>100

ORDER BY SUM(price)执行顺序:

  1. FROM
  2. WHERE
  3. GROUP  BY  分组。一般和聚合函数一起用。
  4. HAVING              查询条件。WHERE 关键字无法与合计函数一起使用
  5. SELECT                查询
  6. DISTINCT           去重
  7. ORDER                排序
  8. TOP 10 (PERCENT) 前10(%)

4.4          模糊查询

‘%’多字符模糊匹配。如:’周%’,’%超’

‘_’一个字符模糊匹配。如:’周_’,’_超’

                  SELECT * FROM Table_1 WHERE name LIKE ‘%小%‘

                  SELECT * FROM Table_1 WHERE name NOT LIKE ‘_超‘

其他操作符

1          AND

SELECT * FROM Table_1 WHERE (name=‘bly‘ AND gender=‘girl‘)

2          OR

SELECT * FROM Table_1 WHERE (name=‘bly‘ OR name=‘zxl‘)

3          IN

IN 操作符允许我们在 WHERE 子句中规定多个值。

SELECT * FROM Table_1 WHERE name IN (‘bly‘,‘zxl‘)  //结果同上OR的结果

4          BETWEEN…AND…

包括前,不包括后

     SELECT * FROM Table_1 WHERE price BETWEEN 50 AND 100 (50<=X<100)

5          JOIN

A B 为例

A                                                                                              B

                     

5.1         内连接 INNER JOIN 则为交集AB

   SELECT * FROM Table_1

   INNER JOIN Table_2

   ON Table_1.name = Table_2.name

  

 

5.2         外连接 FULL OUTER JOIN则为并集AB

   SELECT * FROM Table_1

   FULL OUTER JOIN Table_2

   ON Table_1.name = Table_2.name

  

 

5.3         左连           LEFT JOIN则为A表全显示,B表没数据的NULL显示

   SELECT * FROM Table_1

   LEFT OUTER JOIN Table_2

   ON Table_1.name = Table_2.name

    

 

5.4         右连           RIGHT JOIN 则为 B表全显示,A表没数据的NULL显示

   SELECT * FROM Table_1

   RIGHT JOIN Table_2

   ON Table_1.name = Table_2.name

  

5.5         CROSS JOIN  为A表和B表的数据N*M

   SELECT * FROM Table_1

   CROSS JOIN Table_2

  

添:

A.   A表有,B表没有

 

                  SELECT * FROM Table_1

                  FULL OUTER JOIN Table_2

                  ON Table_1.name = Table_2.name

                  WHERE Table_2.name IS NULL

                 

B.   A表、B表共有以外的

 

                  SELECT * FROM Table_1

                  FULL OUTER JOIN Table_2

                  ON Table_1.name = Table_2.name

WHERE Table_1.name IS NULL OR Table_2.name IS NULL

 

6          UNION

     合并两个或多个 SELECT 语句的结果集。

      UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

SELECT * FROM Table_3 WHERE name=‘123‘

UNION

SELECT * FROM Table_1 WHERE name=‘paulinka‘

 

6.1          选取不同的值

   SELECT name FROM Table_3

            UNION

   SELECT name FROM Table_1

  

6.2   允许重复的值

   SELECT name FROM Table_3

   UNION ALL

   SELECT name FROM Table_1

 

函数:

  1.  AVG()平均值
  2. SUM()和
  3. COUNT()总数
  4. LEN()长度
  5. UCASE()大写
  6. LCASE()小写
  7. ROUNDAX)显示A栏位数据小数点后X
  8. GETDATE()获取时间
  9. MIN()最小值
  10. MAX()最大值

二、对表的操作

 1    新建表

     1.1       插入数据同时创建表

           SELECT * INTO Table_3 FROM Table_1

      1.2    新建空表

            CREATE TABLE Table_4 (

                  name nvarchar(30),

                  age int

            )

2          删除表

            DROP TABLE Table_3

3          修改表

            3.1       添加栏位

                        ALTER TABLE Table_1 ADD price int

            3.2       删除栏位

                        ALTER TABLE Table_2 DROP COLUMN name

 

 

 

 

SQL学习整理

标签:sele   去重   数据   分类   between   cat   sum   空间   drop   

原文地址:https://www.cnblogs.com/paulinka/p/7772483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!