SQL中的DDL(数据定义)语言:掌握数据定义语言的关键技巧!

YDYXCODE · · 911 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。 前面我们介绍了数据库及SQL语言的相关概念和基础知识,本篇文章我们来重点讲述DDL(数据定义语言的语法格式)的相关内容以及DDL的常用语句。 ## 一、DDL介绍 这里我们先回顾一下前面讲过的SQL语言的概念:SQL(Structured Query Language),即结构化查询语言,是在关系型数据库(诸如Mysql、SQL Server、Oracle等)里进行相关操作的标准化语言,可以根据sql的作用分为以下几种类型: ![image.png](http://static.itsharecircle.com/231103/0d3a491cee0ff9958f64051798e1e947.png) 下面再来看DDL语言是什么: DDL,全称为Data Definition Language,即数据定义语言。它是SQL语言的重要组成部分,主要用于定义和管理数据库的结构。 ## 二、DDL语言能做什么? 通过DDL,我们可以创建、修改和删除数据库、表、视图等对象。 - 创建数据库: 使用CREATE DATABASE语句,我们可以创建一个新的数据库。 - 删除数据库: 使用DROP DATABASE语句,我们可以删除一个已经存在的数据库。 - 创建表: 使用CREATE TABLE语句,我们可以在数据库中创建新的表。 - 删除表:使用DROP TABLE语句,我们可以删除一个已经存在的表。 - 修改表结构: 使用ALTER TABLE语句,我们可以修改已经存在的表的结构,如添加、删除或修改字段等。 ## 三、什么是数据库对象 数据库对象是数据库的组成部分,常见的有以下几种: #### 1、表(Table ) 数据库中的表与我们日常生活中使用的表格类似,它也是由行(Row) 和列(Column)组成的。 ![image.png](http://static.itsharecircle.com/231103/8a9ce8cc38a3dda8c3d53849048657df.png) 列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名。行包括了若干列信息项。一行数据称为一个或一条记录,它表达有一定意义的信息组合。一个数据库表由一条或多条记录组成,没有记录的表称为空表。每个表中通常都有一个主关键字,用于唯一确定一条记录。 >编程学习,从云端源想开始,课程视频、在线书籍、在线编程、一对一咨询……你想要的全部学习资源这里都有,重点是统统免费![点这里即可查看](https://www.ydcode.cn/?sourceId=166) #### 2、索引(Index) 索引是根据指定的数据库表列建立起来的顺序。它提供了快速访问数据的途径,并且可监督表的数据,使其索引所指向的列中的数据不重复。 ![image.png](http://static.itsharecircle.com/231103/7c58fdda32b48934a1132ea1f318843f.png) #### 3、视图(View) 视图看上去同表似乎一模一样,具有一组命名的字段和数据项,但它其实是一个虚拟的表,在数据库中并不实际存。视图是由查询数据库表产生的,它限制了用户能看到和修改的数据。 ![image.png](http://static.itsharecircle.com/231103/3d081e18d34b55b94efc30038316f20d.png) #### 4、图表(Diagram) 图表其实就是数据库表之间的关系示意图。利用它可以编辑表与表之间的关系。 ![image.png](http://static.itsharecircle.com/231103/83803fdd2a947cd9cf03713c9205ac6e.png) #### 5、缺省值(Default) 缺省值是当在表中创建列或插入数据时,对没有指定其具体值的列或列数据项赋予事先设定好的值。 ![image.png](http://static.itsharecircle.com/231103/5277d627eddaefff8f7128b6d0ef5926.png) #### 6、规则(Rule) 规则是对数据库表中数据信息的限制,它限定的是表的列。 #### 7、触发器(Trigger) 触发器是一个用户定义的SQL事务命令的集合。当对一个表进行插入、更改、删除时,这组命令就会自动执行。 ![image.png](http://static.itsharecircle.com/231103/ea06ed01cbca5d32c205773e90f1e91a.png) #### 8、存储过程(Stored Procedure) 存储过程是为完成特定的功能而汇集在一起的一组SQL 程序语句,经编译后存储在数据库中的SQL程序。 ![image.png](http://static.itsharecircle.com/231103/fada4cc9bd2e22c3d76d7bf9b1fb11b3.png) 9、用户(User) 所谓用户就是有权限访问数据库的人。 ## 四、DDL常用语句 ### 4.1 数据库相关 **1)查看所有数据库** 格式:show databases; **2)创建数据库** 格式:create database 数据库名 charset=utf8; 举例: ``` #创建一个名为test的数据库 #create database 库名; create database test; #创建一个名为test的数据库并指定字符集和编码格式 create database test default charset utf8 collate utf8_general_ci; ``` **3)查看数据库信息** 格式:show create database 库名; **4)删除数据库** 格式:drop database 数据库名; 举例: ``` #删除test数据库 drop database test; ``` **5)使用数据库** 执行表相关和数据库相关的SQL语句之前必须先使用了某个数据库 格式:use 数据库名; 举例: ``` use test; ``` ### 4.2 表相关 **1)创建表** 格式:create table 表名(字段1名 类型,字段2名 类型,…) 举例: ``` create table person(name varchar(50),age int); create table person(name varchar(50),age int); create table stydent(name varchar(50),chinese int ,math int, english int)charset=utf8; 创建一个员工表emp 保存名字,工资和工作 create table emp(name varchar(50),salary int,job varchar(20)); ``` **2)查询所有表** 格式:show tables; **3)查询表信息** 格式:show create table 表名; 举例: ``` show create table emp; ``` **4)查询表字段** 格式:desc 表名; (description) **5)修改表名** 格式:rename table 原名 to 新名; 举例: ``` rename table stydent to stu; ``` **6)删除表** 格式:drop table 表名; ### 4.3 alter表操作相关 **1)添加表字段** 格式(最后面添加):alter table 表名 add 字段名 类型; 格式(最前面添加):alter table 表名 add 字段名 类型 first; 在xxx字段后面添加:alter table 表名 add 字段名 类型 after 字段名; 举例: ``` alter table emp add gender gender varchar(5); alter table emp add id int first; alter table emp add dept varchar(20) after name; ``` 2)删除表字段 格式:alter table 表名 drop 字段名; 举例: ``` alter table emp drop dept; ``` 3)修改表字段 格式:alter table 表名 change 原名 新名 新类型; 举例: ``` alter table emp change job dept varchar(10); ``` 4)修改列属性 格式:alter table 表名 modify 列名 新列属性 举例(只有MySQL是这样写的): ``` alter table student modify age int; ``` 关于DDL常用语句就讲这么多了,尽管现在有许多图形化工具可以替代传统的SQL语句进行操作,同时在Java等语言中也可以使用数据库,但对于SQL各类语句的了解仍然非常重要。
911 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传