专栏首页葫芦sql sql 数据定义语言 (DDL)

sql sql 数据定义语言 (DDL)

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

1.CREATE DATABASE :

CREATE DATABASE my_db

2.ALTER DATABASE:

ALTERDATABASE name [ WITH CONNECTION LIMIT connlimit ]

ALTERDATABASE name SET parameter { TO | = } { value | DEFAULT }

ALTERDATABASE name RESET parameter

ALTERDATABASE name RENAME TO newname

ALTERDATABASE name OWNER TO new_owner

3.CREATE TABLE:

CREATE TABLE `handelalarm` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `area` varchar(255) DEFAULT NULL,
  `count` varchar(255) DEFAULT NULL,
  `time` varchar(255) NOT NULL,
  `begtime` varchar(255) DEFAULT NULL,
  `endtime` varchar(255) DEFAULT NULL,
  `important` varchar(255) DEFAULT NULL,
  `handelcontent` varchar(512) DEFAULT NULL,
  `aid` int(11) unsigned NOT NULL,
  `operator` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `aid` (`aid`),
  CONSTRAINT `handelalarm_ibfk_1` FOREIGN KEY (`aid`) REFERENCES `criticalalarms` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8

4.ALTER TABLE:DROP INDEX:

添加列
ALTER TABLE Persons ADD Birthday date
修改列数据类型
ALTER TABLE Persons ALTER COLUMN Birthday year
删除列
ALTER TABLE Person DROP COLUMN Birthday

5.DROP TABLE:

用于 Microsoft SQLJet (以及 Microsoft Access) 的语法:

DROP INDEX index_name ON table_name

用于 MS SQL Server 的语法:

DROP INDEX table_name.index_name

用于 IBM DB2 和 Oracle 语法:

DROP INDEX index_name

用于 MySQL 的语法:

ALTER TABLE table_name DROP INDEX index_name

SQL DROP TABLE 语句

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

DROP TABLE 表名称

SQL DROP DATABASE 语句

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

DROP DATABASE 数据库名称

SQL TRUNCATE TABLE 语句

如果我们仅仅需要除去表内的数据,但并不删除表本身,那么我们该如何做呢?

请使用 TRUNCATE TABLE 命令(仅仅删除表格中的数据):

TRUNCATE TABLE 表名称

5.CREATE INDEX:

CREATE INDEX 语句用于在表中创建索引。

在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。

索引
您可以在表中创建索引,以便更加快速高效地查询数据。

用户无法看到索引,它们只能被用来加速搜索/查询。

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

SQL CREATE INDEX 语法
在表上创建一个简单的索引。允许使用重复的值:

CREATE INDEX index_name
ON table_name (column_name)
注释:"column_name" 规定需要索引的列。

SQL CREATE UNIQUE INDEX 语法
在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。

CREATE UNIQUE INDEX index_name
ON table_name (column_name)
CREATE INDEX 实例
本例会创建一个简单的索引,名为 "PersonIndex",在 Person 表的 LastName 列:

CREATE INDEX PersonIndex
ON Person (LastName) 
如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:

CREATE INDEX PersonIndex
ON Person (LastName DESC) 
假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

CREATE INDEX PersonIndex
ON Person (LastName, FirstName)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • cssjshtml vue.js css作用域

    葫芦
  • cssjshtml css之display:inline-block布局

    1.解释一下display的几个常用的属性值,inline , block, inline-block

    葫芦
  • poetry 发光的人要能拿的起放的下 张志东

    1.创始人的敬畏感:在互联网世界,并不存在盛极一世的产品。即使你已经是行业中的第一名,也只是说明你在同行中领先,你的颠覆者会来自于跨界的家伙。他们用的是另外一个...

    葫芦
  • 《Monkey Java》课程4.2之面向对象基础3

    GitOPEN
  • Serverless 应用开发指南:serverless 的 hello, world

    在翻译了几篇 serverless 与物联网相关的文章之后,我开始想着好好掌握一下 serverless 的相关知识。 我对于 serverless 的第一认知...

    Phodal
  • Android 进阶解密笔记-插件化

    Android 完整生命周期: onCreate –> onContentChanged –> onStart –> onPostCreate –> onRe...

    Yif
  • 业界 | 抓捕美国“金州杀手”的新DNA匹配技术比你想象的强大

    今年4月,警方用一种以前未使用过的DNA技术解决了几十年前的谜团 ,金州杀手的身份。

    大数据文摘
  • 在PaaS上开发Web、移动应用(2)

    在PaaS上开发Web、移动应用(2) PaaS学习笔记目录 PaaS基础学习(1) 在PaaS上开发Web、移动应用(2) PaaS优点与限制(3) 6. 巨...

    王小雷
  • GhostDoc(注释生成工具)使用方法

    本文转载:http://www.cnblogs.com/scottckt/archive/2011/07/13/2105055.html

    跟着阿笨一起玩NET
  • oracle 11g install o

    oracle 11.2.0.4的官方文档认证了suse 12 sp1,但sp3并未做认证

    用户2398817

扫码关注云+社区

领取腾讯云代金券