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

最新文章

  1. 关于mysql数据库的备份和还原
  2. spring-boot 热部署 intellij IDE
  3. 详解Js中文件读取机制
  4. centos 安装 svn
  5. 使用phpize增加php模块
  6. ZedBoard 引脚约束参考
  7. POJ 3067 Japan(树状数组)
  8. ASP.NET - 视图状态概述
  9. docker jenkins
  10. JAVA 继承 extends
  11. Appium技术点之解决屏幕无法点击的情况————Python版本
  12. jquery页面刷新reload
  13. 【贪心】HDU 5783 Divide the Sequence
  14. 04 - 替换vtkDataObject中的GetPipelineInformation 和GetExecutive 方法 VTK 6.0 迁移
  15. Hadoop shuffle与排序
  16. 非阻塞IO
  17. 获取调用者Class和method、反射获取get方法、获取注解信息
  18. COM组件转换为.NET元数据
  19. DriverStudio开发PCI设备DMA数据传输
  20. Spring 官网jar下载

热门文章

  1. Tomcat内存分析相关方法(jmap和mat)
  2. day002 计算机基础之 操作系统和编程语言的分类
  3. python项目开发:学员管理系统
  4. Bootstrap关于表格
  5. BZOJ 2956 模积和 (数学推导+数论分块)
  6. cnblogs正式启用
  7. CodeForces 396C On Changing Tree
  8. WinRTXamlToolkit在Win8.1实现统计图
  9. UDP bind() IP和prot
  10. [Linux]Apache配置虚拟主机