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. OSI、TCP、IP、UDP 这些都是啥??

    一个大大的问号首先抛出,计算机之间是如何进行通信的? 计算机网络是通过传输介质.通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统. 网络协议就是数据按照一定的 ...

  2. 在centOS使用systemctl配置启动多个tomcat

    公司服务器使用的是阿里云CentOS7,CentOS7和CentOS6目前最大区别就是service变成了现在的systemctl,简单的查了一下并结合使用,发现systemctl功能上等同于6上面的 ...

  3. Linux C函数库参考手册

    目录 第1章 字符测试函数 isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ascii码字符) isblank(测试字符是否为空 ...

  4. 安装部署VMware vSphere 5.5文档 (6-6) 集群和vMotion

    部署VMware vSphere 5.5 实施文档 ########################################################################## ...

  5. hdu 3397 线段树

    题意: Change operations:0 a b change all characters into '0's in [a , b]1 a b change all characters in ...

  6. 【HDU】3401:Trade【单调队列优化DP】

    Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

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

    想转职程序猿,还真不是说懂一门语言就够的了,想要继续进步,必须懂其相关实现原理,比如这些底层的构造.最近看的就是这一本计算机入门级的书,但是对我这个纯自学的人来说真是能学到很多. 这本书从最基本的Na ...

  8. 移动web开发经验总结(1)

    1.<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-sca ...

  9. 三个实例演示 Java Thread Dump 日志分析(转)

    原文链接:http://www.cnblogs.com/zhengyun_ustc/archive/2013/01/06/dumpanalysis.html 转来当笔记^_^ jstack Dump ...

  10. Git_删除文件

    在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ...