1. SELECT * FROM Persons WHERE City NOT LIKE '%lon%'

2. SELECT * FROM Persons WHERE FirstName LIKE '_eorge' // _ 代表任意字符,且只代表一个

3. SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'

4. between * and * 和 not between * and *

    注:mysql的SQL语句中between * and * 语句中只能加数字,不能是字符串。

5. full join 列出两个表中的所有项,mysql不支持full join

6. UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列,列的类型可以不同。

    默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

7. CREATE DATABASE 用于创建数据库:CREATE DATABASE my_db

8. CREATE TABLE 语句用于创建数据库中的表:CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型,.... )

9. 下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:

CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255))

10. UNIQUE 约束唯一标识数据库表中的每条记录。

CREATE TABLE Persons ( Id_P int NOT NULL,UNIQUE (Id_P))

CREATE TABLE Persons ( Id_P int NOT NULL UNIQUE)

CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName))

当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD UNIQUE (Id_P)

如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

撤销 UNIQUE 约束,如需撤销 UNIQUE 约束,请使用下面的 SQL:

ALTER TABLE Persons DROP CONSTRAINT uc_PersonID

10. PRIMARY KEY 约束唯一标识数据库表中的每条记录。

11. 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY:

CREATE TABLE Orders ( O_Id int NOT NULL,Id_P int , CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P))

12. CHECK 约束用于限制列中的值的范围。如果对单个列定义 CHECK 约束,那么该列只允许特定的值。如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL,CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes'))

13. DEFAULT 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录

CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, City varchar(255) DEFAULT 'Sandnes')

14. 索引 : 您可以在表中创建索引,以便更加快速高效地查询数据。用户无法看到索引,它们只能被用来加速搜索/查询。

注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

SQL CREATE INDEX 语法在表上创建一个简单的索引。允许使用重复的值。CREATE INDEX index_name ON table_name (column_name)

15. 我们可以使用 DROP INDEX 命令删除表格中的索引。

用于 IBM DB2 和 Oracle 语法 : DROP INDEX index_name

用于 MySQL 的语法:ALTER TABLE table_name DROP INDEX index_name

16. DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除): DROP TABLE 表名称

DROP DATABASE 语句用于删除数据库:DROP DATABASE 数据库名称

TRUNCATE TABLE 命令(仅仅删除表格中的数据): TRUNCATE TABLE 表名称

17. ALTER TABLE 语句用于在已有的表中添加、修改或删除列:

如需在表中添加列,请使用下列语法: ALTER TABLE table_name ADD column_name datatype

要删除表中的列,请使用下列语法:ALTER TABLE table_name DROP COLUMN column_name

注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。

要改变表中列的数据类型,请使用下列语法:ALTER TABLE table_name ALTER COLUMN column_name datatype

18. 通过 sequence 对创建 auto-increment 字段(该对象生成数字序列):

CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10

INSERT INTO Persons (P_Id,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')

19. SQL CREATE VIEW 语法:CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition

  注释:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。

20. 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。

NULL 值的处理方式与其他值不同。NULL 用作未知的或不适用的值的占位符。注释:无法比较 NULL 和 0;它们是不等价的。

IS NULL              ;                    IS NOT NULL

21. oracle:nvl() ; mysql: ifnull

22. COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入)

23. 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。SQL HAVING 语法:

SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value

GROUP BY column_name HAVING aggregate_function(column_name) operator value

24. UCASE 函数把字段的值转换为大写:SELECT UCASE(column_name) FROM table_name        // oracle 用upper

25. LCASE 函数把字段的值转换为小写: SELECT LCASE(column_name) FROM table_name        // oralce 用lower

26. ROUND 函数用于把数值字段舍入为指定的小数位数 : SELECT ROUND(column_name,decimals) FROM table_name

27. NOW 函数返回当前的日期和时间。提示:如果您在使用 Sql Server 数据库,请使用 getdate() 函数来获得当前的日期时间。

SQL NOW() 语法 : SELECT NOW() FROM table_name          // oralce 使用 sysdate

SQL语句2的更多相关文章

  1. mysql学习之 sql语句的技巧及优化

    一.sql中使用正则表达式 select name,email from user where email Regexp "@163[.,]com$"; sql语句中使用Regex ...

  2. 一条Sql语句分组排序并且限制显示的数据条数

    如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...

  3. LINQ to SQL语句(7)之Exists/In/Any/All/Contains

    适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式 ...

  4. Oracle ------ SQLDeveloper中SQL语句格式化快捷键

    Oracle SQL Developer中SQL语句格式化快捷键: 每次sql复制到SQL Developer面板的时候,格式老不对,而且看起来很不舒服,所有的sql都挤在一行完成. 这时我们可以全选 ...

  5. SQL语句优化

    (1)      选择最有效率的表名顺序 ( 只在基于规则的优化器中有效 ) : ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名, FROM 子句中写在最后的表 ( 基础表dri ...

  6. LinqToDB 源码分析——生成与执行SQL语句

    生成SQL语句的功能可以算是LinqToDB框架的最后一步.从上一章中我们可以知道处理完表达式树之后,相关生成SQL信息会被保存在一个叫SelectQuery类的实例.有了这个实例我们就可以生成对应的 ...

  7. 年终巨献 史上最全 ——LINQ to SQL语句

    LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操 ...

  8. LINQ to SQL语句(19)之ADO.NET与LINQ to SQL

    它基于由 ADO.NET 提供程序模型提供的服务.因此,我们可以将 LINQ to SQL 代码与现有的 ADO.Net 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to S ...

  9. LINQ to SQL语句(17)之对象加载

    对象加载 延迟加载 在查询某对象时,实际上你只查询该对象.不会同时自动获取这个对象.这就是延迟加载. 例如,您可能需要查看客户数据和订单数据.你最初不一定需要检索与每个客户有关的所有订单数据.其优点是 ...

  10. LINQ to SQL语句(6)之Group By/Having

    适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group ...

随机推荐

  1. ubuntu14.04安装vmware workstation

    0) Do the basic system installation of Ubuntu 14.04 LTS (Server or Desktop) 1) wget the installer wg ...

  2. html input size maxlength

    最近做项目用到input的size和maxlength属性,以前只顾用没有用心去看看这2个标签的区别,今天周末baidu了一下,有所理解.特记录于此!   <p>Name: <inp ...

  3. windows下用Eclipse连接大数据环境得hbase

    1.解压hbase安装包 2.将大数据环境得hadoop安装包拷贝到windows(这里以d:/hadoop为例) 3.打开C:\Windows\System32\drivers\etc目录下的hos ...

  4. VC++ Debug产生异常时中断程序执行Break on Exception

    It is possible to instruct the debugger to break when an exception occurs, before a handler is invok ...

  5. ExtJs4学习(六)MVC中的Model

    Model定义的两种方式 第一种 Ext.define("User",{ extend:"Ext.data.Model", fields:[{ name:'us ...

  6. Kotlin教程——史上最全面、最详细的学习教程,持续更新中....

    关于这个系列教程,我是从最基础的开发环境搭建到项目进阶到后面的项目开发这个过程来写的.我一直秉承从实际项目开发以及源码解析的角度去写好这个教程,并让从未接触过编程的朋友能学好kotlin这门语言.所以 ...

  7. 【BZOJ4675】点对游戏 树分治+期望

    [BZOJ4675]点对游戏 Description 桑尼.露娜和斯塔在玩点对游戏,这个游戏在一棵节点数为n的树上进行. 桑尼.露娜和斯塔三人轮流从树上所有未被占有的节点中选取一点,归为己有,轮流顺序 ...

  8. Java 8 Lambda 表达式详解

    一.Java 8 Lambda 表达式了解 参考:Java 8 Lambda 表达式 | 菜鸟教程 1.1 介绍: Lambda 表达式,也可称为闭包,是推动 Java 8 发布的最重要新特性. La ...

  9. 微软MVP Round Table

    2017年7月7日,微软VS圈子的老大兼女神Julia(潘正磊)以及Peter Hu等人,和若干MVP一起在进行了一次Round Table讨论. 讨论过程中主要针对VS和TFS/VSTS相关的功能. ...

  10. 记录--常用的linux命令

    mysql event /*查询event是否开启(查询结果Off为关闭 On为开启)*/ show variables like '%sche%'; /*开启/关闭命令(1开启--0关闭)*/ se ...