SQL 语法知识

SQL DML 和 DDL

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

SQL (结构化查询语言)是用于执行查询的

语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。

查询和更新指令构成了 SQL 的 DML 部分:

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

使用 DISTINCT 关键词

    如需从 Company" 列中仅选取唯一不同的值,我们需要使用 select  distinct 语句:(也就是去重)

    select distinct Company from  Orders

WHERE 子句

    SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

    下面的运算符可在 WHERE 子句中使用:

操作符描述
=等于
<>不等于                                      在某些版本的 SQL 中,操作符 <> 可以写为 !=。
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式  

AND 和 OR 运算符

      AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

     如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

     如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录

    出现在where后面

ORDER BY 语句用于对结果集进行排序。

     order by 语句用于根据指定的列对结果集进行排序。

     order by 语句默认按照升序对记录进行排序。

     如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

     select Company, OrderNumber from Orders order by Company  (以字母顺序显示公司名称

     以逆字母顺序显示公司名称,并以数字顺序显示顺序号: 

     select Company, OrderNumber from Orders order by Company DESC, OrderNumber ASC

INSERT INTO 语句

    insert into 语句用于向表格中插入新的行。

    insert into table_name (列1, 列2,...) values(值1, 值2,....)

Update 语句

Update 语句用于修改表中的数据。

 update Person set FirstName = 'Fred' WHERE LastName = 'Wilson' (为 lastname 是 "Wilson" 的人添加 firstname)

DELETE 语句

    delete from  表名称 where 列名称 = 值

SQL TOP 子句

Persons 表:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing

    TOP 子句用于规定要返回的记录的数目。

    对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。

  SQL Server 的语法:

     select top  number|percent column_name(s) from   table_name  

          select   top 2 *    from  Persons

 MySQL 和 Oracle 中的 SQL SELECT TOP 是等价的

     select  * from Persons limit   5  (MySql的语句)

    select * from Persons where rownum <= 5    (Oracle的语句)

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

    从 "Persons" 表中选取居住在以 "N" 开始的城市里的人:

   select * from  Persons where City like 'N%'

SQL 通配符

   SQL 通配符可以替代一个或多个字符。

   SQL 通配符必须与 LIKE 运算符一起使用。

   select * from Persons where City like 'Ne%'

  从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:

   select * from Persons where City like '%lond%'

IN 操作符

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

   select * from  Persons where  LastName in ('Adams','Carter')  (从上表中选取姓氏为 Adams 和 Carter 的人)

BETWEEN 操作符

  操作符 between... and会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

    select * from  Persons where  LastName  between  'Adams' and'Carter' 

   例子显示范围之外的人,请使用 NOT 操作符:

   select * from  Persons where  LastName not between  'Adams' and 'Carter'

SQL Alias

    通过使用 SQL,可以为列名称和表名称指定别名(Alias)。

      表的 SQL Alias 语法

    select column_name(s)    FROM table_name as alias_name

    列的 SQL Alias 语法

    select column_name as alias_name from table_name

SQL JOIN

      SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

     Join 和 Key   

    有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。

    数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每       个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起

    1、可以通过引用两个表的方式,从两个表中获取数据

    select Persons.LastName, Persons.FirstName, Orders.OrderNo FROM

               Persons, Orders where Persons.Id_P = Orders.Id_P

    2、也可以使用关键词 JOIN 来从两个表中获取数据。 http://www.w3school.com.cn/sql/sql_join_inner.asp

select Persons.LastName, Persons.FirstName, Orders.OrderNo from

                        Persons INNER join Orders on Persons.Id_P = Orders.Id_P order by  Persons.LastName

   1、是笛卡尔积的形式,

不同的 SQL JOIN

除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。

下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

SQL UNION 和 UNION ALL 操作符

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

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

select column_name(s)   from  table_name1 union  select    column_name(s)   from   table_name2

   UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

select column_name(s)   from  table_name1 union all  select     column_name(s)  from   table_name2

SQL SELECT INTO 语句可用于创建表的备份复件。

      SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。

      常用于创建表的备份复件或者用于对记录进行存档。

SQL CREATE DATABASE 语法

CREATE DATABASE database_name(创建数据库)

 

 

SqlServer的安装。https://jingyan.baidu.com/article/48206aeaf98b2e216ad6b3d2.html

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值