SQL基础(四):SQL命令

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,0))
FROM Products
//Oracle:Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products
//MySQL:MySQL 也拥有类似 ISNULL() 的函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。在 MySQL 中,我们可以使用 IFNULL() 函数,如下所示:
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products
//或者我们可以使用 COALESCE() 函数,如下所示:
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products
//如果alexa列为null值,则赋予0,否则,取原值
select id,name,url,ifnull(alexa,0)from websites;
select id,name,url,COALESCE(alexa,0) from websites;

6、数据类型

  查检查文档

时间: 2024-10-24 23:08:13

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

SQL基础四

INSERT INTO<表明>(列名1,列名2,.....,列名n) VALUES(列表表达式1,列表表达式2,.....,列表表达式n); UPDATE<表名> SET<列名1>=<列表表达式1> <列表2>=<列表表达式2> ,...... ,....<列表n>=<列表表达式n> WHERE<条件字句> SELECT<列表1,列表2,....,列表n> FROM <表名>

SQL基础术语和单行函数

1.SQL基础术语 Sql语言:结构化查询语言(Structured Query Language) 查询语句 SELECT DML数据操作语言 INSERT ,UPDATE,DELETE DDL数据定义语句 CREATE,ALTER,DROP,RENAME,TRUNCATE 事务控制语句 COMMIT,ROLLBACK 数据控制语句 GRANT,REVOKE Dual空表任何含有空值的数据表达式计算出的结果都是空 例如: SQL> select 3*2 from dual; 3*2 -----

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

SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 目录 一.插入数据 1.INSERT 语句的基本语法 --语法: --INSERT INTO <表名>(列1, 列2, ...) VALUES (值1, 值2, ...) INSERT INTO dbo.Shohin ( shohin_id , shohin_mei , shohin_bunrui , hanbai_tanka , s

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

准备 在正式开始本内容之前,需要先从github下载相关代码,搭建好一个名为mysql_shiyan的数据库(有三张表:department,employee,project),并向其中插入数据. 具体操作如下,首先输入命令进入Desktop: cd Desktop 然后再输入命令,下载代码: git clone http://git.shiyanlou.com/shiyanlou/SQL4 下载完成后,输入“cd ~”(注意有空格)退回到原先目录,然后输入命令开启MySQL服务并使用root用

基础篇 - SQL 的约束

基础篇 - SQL 的约束 约束 一.实验简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验将在实践操作中熟悉 MySQL 中的几种约束. 二.实验内容 1.约束分类 听名字就知道,约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性. 在MySQL中,通常有这几种约束: 约束类型: 主键 默认值 唯一 外键 非空 关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL 2

Oracle实践--PL/SQL基础之表分区

PL/SQL基础入门之表分区 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. ---------------------------------------------

sql基础语法大全 转载过来的,出处忘了!

一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4.说明:创建新表create

SQL基础语句(2)

sqlserver sql语句|经典sql语句|实用sql语句 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE

常见SQL语句和SQL基础知识

引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name   kecheng   fenshu张三    语文       81张三     数学       75李四     语文       76李四     数学       90王五     语文       81王五     数学       100王五     英语       90 A: selec

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

一.PL/SQL介绍 1.概念 PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/SQL是Oracle数据库对SQL语句的扩展.在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL可以用来编写存储过程.存储函数.触发器等等. PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE... For....等控制过程的SQL. 2.学习必要性 提高程序的运行性能传统的使用程序操作数据库的方式需要获得connection