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学习整理的更多相关文章

  1. SQL学习整理_1

    数据库是保存表和其他相关SQL结构的容器. 列是存储在表中的一块同类型数据. 行是一组能够描述某个事物的列的集合. SQL不区分大小写,但建议命令采用大写,表名采用小写,便于读写. 建立数据库 CRE ...

  2. SQL学习整理_2

    字符串处理,字符串函数不会改变存储在表中的数据内容,他们只是把函数结果当成查询结果返回. 1. SELECT right(name,2) FROM my_list   --从my_list列表中取出n ...

  3. 一个项目涉及到的50个Sql语句(整理版)

    /* 标题:一个项目涉及到的50个Sql语句(整理版) 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句. */ --1.学生表Student(S,Sname,Sage,Sse ...

  4. 基于实际项目的SQL学习总结

    青云   随笔 - 2, 文章 - 0, 评论 - 1, 引用 - 0 一个项目涉及到的50个Sql语句(整理版) /* 标题:一个项目涉及到的50个Sql语句(整理版) 说明:以下五十个语句都按照测 ...

  5. js数组学习整理

    原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...

  6. TweenMax学习整理--特有属性

    TweenMax学习整理--特有属性   构造函数:TweenMax(target:Object, duration:Number, vars:Object) target:Object -- 需要缓 ...

  7. HttpClient学习整理

    HttpClient简介HttpClient 功能介绍    1. 读取网页(HTTP/HTTPS)内容    2.使用POST方式提交数据(httpClient3)    3. 处理页面重定向    ...

  8. !!对python列表学习整理列表及数组详细介绍

    1.Python的数组分三种类型:(详细见 http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html) (1) list 普通的链表,初始化后可以通过特 ...

  9. Java设计模式(学习整理)---命令模式

    设计模式之Command(学习整理) 1.Command定义 不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作. 将这些命令封装 ...

随机推荐

  1. C# 共享页调用css

    @RenderSection("Styles", required: false) @section Styles{ }

  2. Having子句用法

    Having基础用法 集合结果指定条件 注:HAVING子句中能够使用三种要素:常数,聚合函数,GROUP BY子句中指定的列名(聚合建) HAVING子句: 用having就一定要和group by ...

  3. class path resource [processes/] cannot be resolved to URL because it does not exist

    springboot整合activiti时报以下错误,原因是项目启动时检查流程文件 nested exception is java.io.FileNotFoundException: class p ...

  4. nyoj51-管闲事的小明

    管闲事的小明 时间限制:4000 ms  |  内存限制:65535 KB 难度:2 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端 ...

  5. PHP 设计模式之工厂模式 (静态工厂模式)

    ### 工厂模式: 由工厂类根据参数来决定创建出哪一种产品类的实例.工厂类是指包含了一个专门用来创建其他对象的方法的类.所谓按需分配,传入参数进行选择,返回具体的类.工厂模式的最主要作用就是对象创建的 ...

  6. Travel Card

    Travel Card time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  7. (33)Spring Boot 监控和管理生产环境【从零开始学Spring Boot】

    [本文章是否对你有用以及是否有好的建议,请留言] spring-boot-actuator模块提供了一个监控和管理生产环境的模块,可以使用http.jmx.ssh.telnet等拉管理和监控应用.审计 ...

  8. C++ - 部分STL容器如何去除重复元素

    如果元素被保存在vector中,可先对vector里面的元素排序,然后调用unique函数去重,unique(起始迭代器,终止迭代器),返回的是去重以后vector中没有重复元素的下一个位置的迭代器. ...

  9. mysql 多个select需要放入一个事务吗?

    第一次写博客,还请大家多多支持 今天同事问了个问题:在多个select的时候,用不用放入同一个事务? 首先先看个例子: public class JDBCClient { public static  ...

  10. 0622 CentOS 6.4下编译安装MySQL 5.6.14

    转自http://www.cnblogs.com/xiongpq/p/3384681.html 概述: CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版 ...