前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sql sql 数据定义语言 (DDL)

sql sql 数据定义语言 (DDL)

作者头像
葫芦
发布2019-04-17 16:20:13
1.1K0
发布2019-04-17 16:20:13
举报
文章被收录于专栏:葫芦葫芦

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

SQL 中最重要的 DDL 语句:

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

1.CREATE DATABASE :

代码语言:javascript
复制
CREATE DATABASE my_db

2.ALTER DATABASE:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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:

代码语言:javascript
复制
添加列
ALTER TABLE Persons ADD Birthday date
修改列数据类型
ALTER TABLE Persons ALTER COLUMN Birthday year
删除列
ALTER TABLE Person DROP COLUMN Birthday

5.DROP TABLE:

代码语言:javascript
复制
用于 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:

代码语言:javascript
复制
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)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011/02/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.CREATE DATABASE :
  • 2.ALTER DATABASE:
  • 3.CREATE TABLE:
  • 4.ALTER TABLE:DROP INDEX:
  • 5.DROP TABLE:
  • 5.CREATE INDEX:
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档