DDL数据库定义语言
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:数据库、DDL数据库定义语言、DML操作数据库语言、DQL条件查询语句
数据库 SQL(Structure Query Language)语言是数据库的核心语言. SQL语言共分为四大类:数据查询语言DQL,数据操做语言DML,数据定义语言DDL,数据控制语言DCL. 1 ...
- 数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)
Mysql是一个非常典型的C/S结构的应用模型,所以Mysql连接必须依赖于一个客户端或者驱动. 在linux中支持两种连接模式:TCP/IP模式和socket SQL语句的四部分: DDL:数据定义 ...
- DDL(数据库定义语言)
DDL(Data Definition Language) 数据定义语言 1. 基本操作 查看所有数据库名称:[语法:show databases;] 切换数据库:[语法:use test;],切换到 ...
- MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
/*进阶 11 DDL 数据库定义语言库和表的管理一:库的管理:创建/修改/删除二:表的管理:创建/修改/删除创建: CREATE DATABASE [IF NOT EXISTS] 库名;修改: al ...
- 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库(一)
1.DDL(Data Definition Language:数据库定义语言)概览 DDL(Data Definition Language:数据库定义语言) 2.DDL对数据库的操作 1)方法概览 ...
- 数据库DDL数据定义语言
文章目录 DDL数据定义语言 1. 数据库相关操作 1.1 查看DBMS中已有的数据库 1.2 新建一个数据库 1.3 查看数据库信息 1.4 删除数据库 1.5 使用一个数据库(切换一个数据库) 2 ...
- 【数据库基础知识二】数据库DataBase(简称DB),数据库基本概念、DDL:数据定义语言,用来操作数据库对象、DML:数据操作语言,用来操作表中的数据
14天阅读挑战赛 目录 数据库基本概念 数据库DataBase(简称DB) 数据库管理系统Database management system(简称DBMS) 如何操作DBMS? 连接数据库的方式: ...
- DDL语言(DataDefinelanguage 数据库定义语言)
文章目录 1.说明: 2.分类 3.------------库的管理-------------- #一.创建数据库 #二.删除数据库 4.----------表的管理-------------- 一. ...
- mysql DDL数据定义语言
DDL数据定义语言 本节涉及MySQL关键字:create.alter(rename,add,chang,modify,drop).drop.delete.truncate等. -- 创建表: -- ...
最新文章
- Visual Studio警告IDE0006的解决办法
- select2 ajax demo,Select2下拉框示例
- linux kill pid文件,从一次事故谈谈 pid 文件的作用
- python import request 不报错_爬虫学习路径整理及安装环境遇到的坑
- AndroidStudio使用入门
- java arraylist length,在Java中调整ArrayList的大小时,无法理解溢出的可能性
- 【深度学习】神经网络为何非激活函数不可?
- 在vs2005调试asp程序
- win10系统pyCharm安装及最新2018激活码
- 竞争型神经网络:自组织映射神经网络(SOM)
- linux给文件夹图标,Linux 如何在启动器中自定义图标
- termux python turtle_如何在termux上安装Python的turtle库?
- 我的前端成长之路-写给在迷茫路上的人
- 网站漏洞测试分析查找问题攻防演练
- HP elitebook 735 g5 笔记本电脑升级BIOS驱动后Type-C无法扩展显示屏的解决方案
- amd显卡跑人工神经网络,amd显卡能跑神经网络吗
- 2021年IT行业现状及就业前景怎样?
- Layui_00_03_ Layui图标的使用、新版本和旧版本(layui2.3.0之前)
- uniapp 图片缓存
- Fragment has not been attached yet Fragment 套 Fragment