1、CREATE INDEX 语句

  CREATE INDEX 语句用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。

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

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

//SQL CREATE INDEX 语法
//在表上创建一个简单的索引。允许使用重复的值:
CREATE INDEX index_name
ON table_name (column_name)
//SQL CREATE UNIQUE INDEX 语法
//在表上创建一个唯一的索引。不允许使用重复的值:唯一的索引意味着两个行不能拥有相同的索引值。
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
//注释:用于创建索引的语法在不同的数据库中不一样。因此,检查您的数据库中创建索引的语法。
//在 "Persons" 表的 "LastName" 列上创建一个名为 "PIndex" 的索引:
CREATE INDEX PIndex
ON Persons (LastName)
//如果希望索引不止一个列,可以在括号中列出这些列的名称,用逗号隔开:
CREATE INDEX PIndex
ON Persons (LastName, FirstName)

2、 DROP 语句

  DROP语句可以轻松地删除索引、表和数据库。

  DROP INDEX 语句用于删除表中的索引。

//用于 MS Access 的 DROP INDEX 语法:
DROP INDEX index_name ON table_name
//用于 MS SQL Server 的 DROP INDEX 语法:
DROP INDEX table_name.index_name
//用于 DB2/Oracle 的 DROP INDEX 语法:
DROP INDEX index_name
//用于 MySQL 的 DROP INDEX 语法:
ALTER TABLE table_name DROP INDEX index_name

  DROP TABLE 语句用于删除表。语法:DROP TABLE table_name

  DROP DATABASE 语句用于删除数据库。语法:DROP DATABASE database_name

  TRUNCATE TABLE 语句:仅仅需要删除表内的数据,但并不删除表本身。语法:TRUNCATE TABLE table_name

3、ALTER TABLE 语句

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

  语法:

//如需在表中添加列,请使用下面的语法:
ALTER TABLE table_name
ADD column_name datatype
//如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
ALTER TABLE table_name
DROP COLUMN column_name
//要改变表中列的数据类型,请使用下面的语法:
//SQL Server / MS Access:
ALTER TABLE table_name
ALTER COLUMN column_name datatype
//My SQL / Oracle:
ALTER TABLE table_name
MODIFY COLUMN column_name datatype
//Oracle 10G 之后版本:
ALTER TABLE table_name
MODIFY column_name datatype;

  请看 "Persons" 表:

  现在,我们想在 "Persons" 表中添加一个名为 "DateOfBirth" 的列。我们使用下面的 SQL 语句:ALTER TABLE Persons ADD DateOfBirth date。新列 "DateOfBirth" 的类型是 date,可以存放日期。数据类型规定列中可以存放的数据的类型。

  现在,"Persons" 表将如下所示:

  现在,我们想要改变 "Persons" 表中 "DateOfBirth" 列的数据类型。我们使用下面的 SQL 语句:ALTER TABLE Persons ALTER COLUMN DateOfBirth year。现在 "DateOfBirth" 列的类型是 year,可以存放 2 位或 4 位格式的年份。

  接下来,我们想要删除 "Person" 表中的 "DateOfBirth" 列。我们使用下面的 SQL 语句:ALTER TABLE Persons DROP COLUMN DateOfBirth。现在加的DateOfBirth列就被删除了。

4、SQL NULL 值

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

  NULL 值的处理方式与其他值不同。NULL 用作未知的或不适用的值的占位符。

  注意:无法比较 NULL 和 0;它们是不等价的。

  那么我们如何测试 NULL 值呢?无法使用比较运算符来测试 NULL 值,比如 =、< 或 <>。我们必须使用 IS NULL 和 IS NOT NULL 操作符

  SQL IS NULL:我们如何仅仅选取在 "Address" 列中带有 NULL 值的记录呢?我们必须使用 IS NULL 操作符:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL
//请始终使用 IS NULL 来查找 NULL 值。

  SQL IS NOT NULL:我们如何仅仅选取在 "Address" 列中不带有 NULL 值的记录呢?我们必须使用 IS NOT NULL 操作符:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

5、SQL NULL 函数

  ISNULL() 函数用于规定如何处理 NULL 值。

  NVL()、IFNULL() 和 COALESCE() 函数也可以达到相同的结果。

//在这里,我们希望 NULL 值为 0。
//下面,如果 "UnitsOnOrder" 是 NULL,则不会影响计算,因为如果值是 NULL 则 ISNULL() 返回 0:
//SQL Server / MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,))
FROM Products
//Oracle:Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,))
FROM Products
//MySQL:MySQL 也拥有类似 ISNULL() 的函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。在 MySQL 中,我们可以使用 IFNULL() 函数,如下所示:
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,))
FROM Products
//或者我们可以使用 COALESCE() 函数,如下所示:
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,))
FROM Products
//如果alexa列为null值,则赋予0,否则,取原值
select id,name,url,ifnull(alexa,)from websites;
select id,name,url,COALESCE(alexa,) from websites;

6、数据类型

  查检查文档

SQL基础(四):SQL命令的更多相关文章

  1. (大数据工程师学习路径)第四步 SQL基础课程----SQL介绍及mysql的安装

    一.数据库和SQL介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它的产生距今已有六十多年.随着信息技术和市场的发展,数据库变得无处不在:它在电子商务.银行系统等众多领域都 ...

  2. SQL基础四(例子)

    ------------------------------------------------ --分别创建student/course/score表 Create table student ( ...

  3. 数据库学习---SQL基础(一)

     数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) SQL(struct query language)结构化查询语言:一种专门与数据库通信的语言, ...

  4. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  5. (大数据工程师学习路径)第四步 SQL基础课程----select详解

    准备 在正式开始本内容之前,需要先从github下载相关代码,搭建好一个名为mysql_shiyan的数据库(有三张表:department,employee,project),并向其中插入数据. 具 ...

  6. SQL基础(三):SQL命令

    下面2个表用于实例演示: 1.SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列.列 ...

  7. Oracle实战笔记(第六天)之PL/SQL基础

    一.PL/SQL介绍 1.概念 PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/SQL是Oracle数据库对SQL语句的扩展.在普通SQL语 ...

  8. 基础篇 - SQL 的约束

    基础篇 - SQL 的约束       约束 一.实验简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验将在实践操作中熟悉 MySQL 中的几种约束. 二 ...

  9. Sql基础(零基础学数据库_SqlServer版)

    刚开始学C#时候的笔记,只是些基础的语句如有错误请批评指正,谢谢,(使用SqlServer2012以上) 一.  数据库概述 SQI全称 structrued Query Language 1.数据: ...

  10. 第87节:Java中的Bootstrap基础与SQL入门

    第87节:Java中的Bootstrap基础与SQL入门 前言复习 什么是JQ? : write less do more 写更少的代码,做更多的事 找出所有兄弟: $("div" ...

随机推荐

  1. jQuery事件和动画

    1.toggle事件 <!DOCTYPE html>   <html>   <head lang="en">   <meta charse ...

  2. 九大工具助你玩转Java性能优化

    在这篇文章中,我会带着大家一起看一下9个可以帮助我们优化Java性能的工具.有一些我们已经在IDR Solutions中使用了,而另外一些有可能在个人项目中使用. NetBeans Profiler ...

  3. hdu1527下沙小面的(二)

    B - 下沙小面的(2) Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  4. laya IDE 初始化设置

    切换到 编辑模式(显示UI的界面)--按F9--- 修改 资源发布目录为  bin/

  5. LOJ.2587.[APIO2018]铁人两项Duathlon(圆方树)

    题目链接 LOJ 洛谷P4630 先对这张图建圆方树. 对于S->T这条(些)路径,其对答案的贡献为可能经过的所有点数,那么我们把方点权值设为联通分量的大小,可以直接去求树上路径权值和. 因为两 ...

  6. 【ZOJ】3740:Water Level【DP】

    Water Level Time Limit: 2 Seconds      Memory Limit: 65536 KB Hangzhou is a beautiful city, especial ...

  7. the elements of computing systems 的读书笔记2

    懒癌发作,本来计划是两到三天就一个unit的,没想到一直拖到今天才完成第二部分(6-8章). 第6章,介绍了hack汇编到二进制,也就是用翻译到01来表示.从课后习题来看,这一章目的就是设计一个程序( ...

  8. 解决CIFilter滤镜后图片大小和方向发生变化

    调用contextWithOptions:和createCGImage: fromRect:方法创建CIContext.与以往不同的地方是CIImage没有frame与bounds属性:只有exten ...

  9. .NET面试宝典-高级2

    http://blog.csdn.net/shanyongxu/article/category/6023593 对于 Web 性能优化,您有哪些了解和经验吗? 1.前端优化 (1)减少 HTTP 请 ...

  10. SlickSafe.NET 开源权限框架开发指南

    前言:本文适用于快速搭建权限系统的用户,尤其适用于希望有良好定义的权限模型建立:系统解决方案是在基于角色访问控制(RBAC)策略基础上的权限访问模型实现,主要完成了后台权限验证逻辑和前端权限数据验证的 ...