DDL数据库定义语言

说到数据库,我们就会想到SQL(结构化查询语言),目前我们学到的数据库有SQL Service数据库和MySQL数据库,这里主要讲解的是MySQL数据库,使用的是Navicat Premium 12软件来运行sql语句。

一、SQL分类

1、DDL(数据库定义语言),定义的数据库对象有:表、视图、数据库、用户、角色、函数,它主要用于在数据库中的创建或删除数据库对象等操作,如create、drop、alter等语句。

2、DCL(数据库控制语言),它主要用于控制数据库组件的存取许可、存取权限等,如revoke、grant等。

3、DML(数据库操作语言),它主要用于插入、修改和删除表中的数据,如insert、update、delete等。

4、DQL(数据库查询语言),它主要用来对数据库中的数据进行查询,指select语句。

在这里我们就来详细介绍一下DDL(数据库定义语言),其他的语言暂时忽略。

二、DDL(数据库定义语言)

1、create——创建

(1)创建数据库

语法:

create database 数据库名;
#我们可以添加一个判断条件,当此数据库不存在时就创建,否则不创建
create database if not exists 数据库名;

(2)创建表

语法:

#创建表时必须带字段列表,可以只有一个字段,但不能没有,多个字段用逗号隔开
create table 表名(字段名 字段数据类型 字段约束 字段注释,字段名 字段数据类型 字段约束 字段注释,……);#我们可以添加一个判断条件,当此表不存在时就创建,否则不创建
create table if not exists 表名(字段名 字段数据类型 字段约束 字段注释,字段名 字段数据类型 字段约束 字段注释,……)comment = "表注释";
表字段

(1)字段名命名规则:由英文单词、数字、普通符号组成,一般采用见名知意的规则,如果字段名由两个及以上单词组成,就以“_”区分它们,且字段名不区分大小写。

(2)字段类型:字段数据类型可分为数值、字符、日期、布尔四大类型,其中数值又包括了整数和小数。

整数类型有:int、bigint;

小数类型有:float、real、double、decimal;

字符类型有:char、varchar、blob(大字段数据类型);

日期类型有:date datetime timestamp;

因为MySQL不直接支持boolean,所以它的布尔类型用tinyint表示,它的值0表示false,1表示true。

(3)字段约束:

字段【域】完整性(约束字段):数据类型、默认值(default)、非空(not null);

实体完整性:索引、唯一键(unique key)、主键(primary key)、自动增长(primary key auto_increment);

表完整性:外键(foreign key);

自定义完整性:事务、视图、存储过程。

例如,我们创建一个名为test的数据库,并在此数据库下创建一个表txt,sql语句可以这样写:

create database if not exists test;   #创建数据库test
create table if not exists txt(name varchar(3) not null comment '姓名')comment="txt表";  #comment表示注释的意思

点击运行后,出现下图,证明创建成功,否则就需要检查一下是否是sql语句写错了,导致未成功:

右击连接名,点击刷新,然后我们就可以看到刚刚创建成功的数据库和表了。

        当我们在创建数据库或表的时候可能会需要指定它的编码格式,那我们就需要再多写一句代码了:

create database if not exists 数据库名 charset = utf8;
create table if not exists 表名(字段名 字段数据类型 字段约束 字段注释,字段名 字段数据类型 字段约束 字段注释,……)comment="表注释" charset = utf8;

charset还可以用character set代替,它们的效果都是一样的,由此可见charset是character set的简写。

2、drop——删除

(1)删除数据库

语法:

drop database 数据库名;
#我们可以添加一个判断条件,当此数据库存在时就删除,否则不删除
drop database if exists 数据库名;

(2)删除表

语法:

drop table 表名;
#我们可以添加一个判断条件,当此表存在时就删除,否则不删除
drop table if exists 表名;

3、alter——修改数据库对象

(1)修改表名

语法:

alter table 旧表名 rename 新表名;

(2)添加字段

语法:

#column可省略不写
alter table 表名 add [column] 字段名 数据类型 字段约束;

(3)修改字段

语法:

#column可省略不写#使用chanage:修改字段名、字段的数据类型以及字段约束
alter table 表名 change [column] 原字段类型 新字段名 类型 约束;#使用modify:修改字段数据类型和字段约束
alter table modify  [column] 字段名 类型 约束;

(4)删除字段

语法:

#column可省略不写
alter table 表名 drop [column] 字段名;

(5)添加主键约束

语法:

alter table 表名 add constraint 主键名 primary key 表名(主键字段名);

(6)添加外键约束

语法:

alter table 外键表名 表名 add constaint 外键名 foreign key (外键字段名) references 主键表名(主键字段名);

好啦,今天的知识点分享就到这里啦,下期再见!

DDL数据库定义语言相关推荐

  1. 数据库1:数据库、DDL数据库定义语言、DML操作数据库语言、DQL条件查询语句

    数据库 SQL(Structure Query Language)语言是数据库的核心语言. SQL语言共分为四大类:数据查询语言DQL,数据操做语言DML,数据定义语言DDL,数据控制语言DCL. 1 ...

  2. 数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)

    Mysql是一个非常典型的C/S结构的应用模型,所以Mysql连接必须依赖于一个客户端或者驱动. 在linux中支持两种连接模式:TCP/IP模式和socket SQL语句的四部分: DDL:数据定义 ...

  3. DDL(数据库定义语言)

    DDL(Data Definition Language) 数据定义语言 1. 基本操作 查看所有数据库名称:[语法:show databases;] 切换数据库:[语法:use test;],切换到 ...

  4. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制

    /*进阶 11 DDL 数据库定义语言库和表的管理一:库的管理:创建/修改/删除二:表的管理:创建/修改/删除创建: CREATE DATABASE [IF NOT EXISTS] 库名;修改: al ...

  5. 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库(一)

    1.DDL(Data Definition Language:数据库定义语言)概览 DDL(Data Definition Language:数据库定义语言) 2.DDL对数据库的操作 1)方法概览 ...

  6. 数据库DDL数据定义语言

    文章目录 DDL数据定义语言 1. 数据库相关操作 1.1 查看DBMS中已有的数据库 1.2 新建一个数据库 1.3 查看数据库信息 1.4 删除数据库 1.5 使用一个数据库(切换一个数据库) 2 ...

  7. 【数据库基础知识二】数据库DataBase(简称DB),数据库基本概念、DDL:数据定义语言,用来操作数据库对象、DML:数据操作语言,用来操作表中的数据

    14天阅读挑战赛 目录 数据库基本概念 数据库DataBase(简称DB) 数据库管理系统Database management system(简称DBMS) 如何操作DBMS? 连接数据库的方式: ...

  8. DDL语言(DataDefinelanguage 数据库定义语言)

    文章目录 1.说明: 2.分类 3.------------库的管理-------------- #一.创建数据库 #二.删除数据库 4.----------表的管理-------------- 一. ...

  9. mysql DDL数据定义语言

    DDL数据定义语言 本节涉及MySQL关键字:create.alter(rename,add,chang,modify,drop).drop.delete.truncate等. -- 创建表: -- ...

最新文章

  1. Visual Studio警告IDE0006的解决办法
  2. select2 ajax demo,Select2下拉框示例
  3. linux kill pid文件,从一次事故谈谈 pid 文件的作用
  4. python import request 不报错_爬虫学习路径整理及安装环境遇到的坑
  5. AndroidStudio使用入门
  6. java arraylist length,在Java中调整ArrayList的大小时,无法理解溢出的可能性
  7. 【深度学习】神经网络为何非激活函数不可?
  8. 在vs2005调试asp程序
  9. win10系统pyCharm安装及最新2018激活码
  10. 竞争型神经网络:自组织映射神经网络(SOM)
  11. linux给文件夹图标,Linux 如何在启动器中自定义图标
  12. termux python turtle_如何在termux上安装Python的turtle库?
  13. 我的前端成长之路-写给在迷茫路上的人
  14. 网站漏洞测试分析查找问题攻防演练
  15. HP elitebook 735 g5 笔记本电脑升级BIOS驱动后Type-C无法扩展显示屏的解决方案
  16. amd显卡跑人工神经网络,amd显卡能跑神经网络吗
  17. 2021年IT行业现状及就业前景怎样?
  18. Layui_00_03_ Layui图标的使用、新版本和旧版本(layui2.3.0之前)
  19. uniapp 图片缓存
  20. Fragment has not been attached yet Fragment 套 Fragment

热门文章

  1. JSP(机器调度问题)使用java调用cplex求解
  2. py4neo V4基操
  3. 大学计算机基础应用word,大学计算机基础(Word、Excel、PPT)复习题及答案
  4. A micro Lie theory for state estimation in robotics001
  5. 什么是标记化?令牌?
  6. 秒懂Kotlin之彻底弄懂属性(Property)Part2
  7. 生命游戏 第八届蓝桥杯
  8. Linux 解决userdel无法删除用户
  9. MySQL同一个表中批量刷数据
  10. 关于职位的解释---转CSDN的文章