SQL语句2
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的更多相关文章
- mysql学习之 sql语句的技巧及优化
一.sql中使用正则表达式 select name,email from user where email Regexp "@163[.,]com$"; sql语句中使用Regex ...
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
- LINQ to SQL语句(7)之Exists/In/Any/All/Contains
适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式 ...
- Oracle ------ SQLDeveloper中SQL语句格式化快捷键
Oracle SQL Developer中SQL语句格式化快捷键: 每次sql复制到SQL Developer面板的时候,格式老不对,而且看起来很不舒服,所有的sql都挤在一行完成. 这时我们可以全选 ...
- SQL语句优化
(1) 选择最有效率的表名顺序 ( 只在基于规则的优化器中有效 ) : ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名, FROM 子句中写在最后的表 ( 基础表dri ...
- LinqToDB 源码分析——生成与执行SQL语句
生成SQL语句的功能可以算是LinqToDB框架的最后一步.从上一章中我们可以知道处理完表达式树之后,相关生成SQL信息会被保存在一个叫SelectQuery类的实例.有了这个实例我们就可以生成对应的 ...
- 年终巨献 史上最全 ——LINQ to SQL语句
LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操 ...
- LINQ to SQL语句(19)之ADO.NET与LINQ to SQL
它基于由 ADO.NET 提供程序模型提供的服务.因此,我们可以将 LINQ to SQL 代码与现有的 ADO.Net 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to S ...
- LINQ to SQL语句(17)之对象加载
对象加载 延迟加载 在查询某对象时,实际上你只查询该对象.不会同时自动获取这个对象.这就是延迟加载. 例如,您可能需要查看客户数据和订单数据.你最初不一定需要检索与每个客户有关的所有订单数据.其优点是 ...
- LINQ to SQL语句(6)之Group By/Having
适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group ...
随机推荐
- Papers of Word Embeddings
首先解释一下什么叫做embedding.举个例子:地图就是对于现实地理的embedding,现实的地理地形的信息其实远远超过三维 但是地图通过颜色和等高线等来最大化表现现实的地理信息. embeddi ...
- "回车"(carriage return)和"换行"(line feed)
“回车”(carriage return)和“换行”(line feed)这两个概念的来历: 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10 ...
- Flash AS 2.0右键菜单问题
这几天都在忙这个右键菜单,因为之前的右键菜单都不能用了,必须做新的. 可是又必须使用原来2.0的接口和方法,真是忙的焦头烂额. 之前2.0的东西太多又太杂. 我头一个右键菜单和二级菜单没有问题了,做第 ...
- 【VBA】制作散点图及打标签VBA
1.散点图的制作必须只选择xy轴对应的数据,不能选中标签. 2.调整xy轴交叉点,改为四个象限. 3.通过菜单移动散点图到新表. 4.运行宏,打上文本标签. VBA如下 Sub AttachLabel ...
- C#实现动态编译代码
/*------------------------------------------------------------------------------ * Copyright (C) 201 ...
- linux DNS服务
DNS服务器的安装和配置 首先在终端输入命令#vi /etc/apt/sources.list 输入更新源 # kali repos installed by TARDIS deb http://h ...
- Codeforces 678E(Another Sith Tournament)
题目链接:传送门 题目大意:有n个人决斗(n<=18),每两个人之间都有一定几率杀死对方,一次进行一次决斗,胜利者成为擂主继续接受决斗直到只剩下一个人,你是一号,问你最大有多大几率存活到最后. ...
- NEU710(wanghang走迷宫)
题目链接:传送门 题目大意:给你一个图,要从起点走到终点并且要吃够足够的金币才能出去,图上有金币(只能吃一次), 有传送门(用一次消耗1金币,必须有金币才能使用),问最少需要多少步才能出去.不能出去输 ...
- Oracle Database Documentation
Oracle数据库的发展简史 ORDBMS对象-关系数据库管理系统 Oracle Schema Objects Oracle Schema Objects——Tables——Overview of T ...
- 无NavigationBar到有NavigationBar视图切换时的一个坑
NavigationController在iOS App中是最常见不过了,可以说是每个App中必备的了.自iOS7开始,系统自带的右滑返回效果,也可以让有NavigationBar的视图切换很丝滑流畅 ...