MySQL(五)DDL(数据定义语言)
SHOW CREATE TABLE 表名\G前言
前面在数据库的讲解中,其实很多东西都非常的细节,在以前的学习过程中我都是没有注意到的。可能在以后的工作中会碰到所以都是做了记录的。
接下来,我将分享的是MySQL的DDL用来对数据库及表进行操作的。
mysql中保存了很多数据库、一个数据库中可以保存很多表。
对数据表的增(创建表)删(删除表)改(修改表字段)查(查询表结构)。 注意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)
前提:表是在数据库下的,所以要先确实使用哪个数据库。
一、create
1.1、创建数据库
create database db_name[character set=utf8]
1.2、创建数据表
create table tbl_name [engine=innodb character set=UTF8];
1)格式
CREATE TABLE 数据表名(
字段名1 数据类型[列级别约束条件],
字段名2 数据类型[列级别约束条件],
字段名3 数据类型[列级别约束条件]
); 注意:格式不一定需要这样隔着写,完全可以全部写成一行。但是那样写可观性非常差。我这样写只是为了可以看的更清晰。
解释:1、[]中括号中的内容表示可以有可以没有,2、列级别这个“列”一定要搞清楚说的是什么,一张表中有行有列,列表示竖,行表示横
2)创建一个没有约束的表

3)对数据表进行查询
3.1)查看表结构
DESCRIBE 表名/DESC 表名 这两个的功能是一样的,简写了单词describe

3.2)查看创建表的语句
SHOW CREATE TABLE 表名;

这样显示的格式很不好,看不清楚,所以有了下面这个语句
SHOW CREATE TABLE 表名\G

二、alter
修改数据表包括:对表中字段的增加、删除、修改。 在这个里面用的关键字为 ALTER
2.1、修改数据表中的修改
1)修改表名
格式:ALTER TABLE<旧表名> RENAME[TO]<新表名>;
alter table student rename to student1;

2)修改表中的字段
格式:ALTER TABLE<表名> CHANGE<旧字段名><新字段名><新数据类型>
alter table student change name sname varchar(30);

3)修改表中的数据类型
格式:ALTER TABLE<表名> MODIFY<字段名><数据类型>
alter table student modify sname varchar(50);
解释:只能修改字段名的数据类型,但是其原理跟上面change做的事情一样,这里也有修改字段名的过程,只不过修改后的字段名和修改前的字段名相同,但是数据类型不一样。
3)修改字段的排列顺序
方式1:ALTER TABLE<表名> MODIFY<字段1><数据类型> FIRST|AFTER<字段2>
解释:将字段1的位置放到第一,或者放到指定字段2的后面
alter table student modify sname varchar(50) after address;
方式2:ALTER TABLE<表名> CHANGE<字段1><字段2><数据类型> FIRST|AFTER<字段3>
解释:其实是一样的,将是字段2覆盖字段1,然后在进行排序
alter table student change sname sname varchar(50) after address;
CHANGE和MODIFY的区别?
原理都是一样的,MODIFY只能修改数据类型,但是CHANGE能够修改数据类型和字段名,也就是说MODIFY是CHANGE的更具体化的一个操作。
可能觉得用CHANGE只改变一个数据类型不太爽,就增加了一个能直接改数据类型的使用关键字MODIFY来操作。
4)更改表中的引擎
格式:ALTER TABLE<表名> ENGINE=<更改后的存储引擎名>
2.2、修改数据表的添加与删除
1)添加字段
格式:ALTER TABLE<表名称> ADD<新字段名><数据类型>[约束条件][FIRST|AFTER<已存在的表名>]
解释:在一个特定位置增加一个新的字段,如果不指定位置,默认是最后一个。
alter table student add age int;

2)删除字段
格式:ALTER TABLE<表名称> DROP<字段名>;

3)删除表的外检约束
格式:ALTER TABLE<表名称> DROP FOREIGN KEY<外键约束名>
注意:外键约束名 指的不是被外键约束修饰的字段名,切记,而是我们在创建外键约束关系时取的名字。
三、drop
3.1、删除无关联的表
格式:DROP TABLE<表名>;
3.2、删除被其他表关联的主表
这个是比较重要的一点,在有外键关联关系的两张表中,如果删除主表,那么是删不掉的,并且会报错。因为有张表依赖于他。那怎么办呢?针对这种情况,总共有两种方法
1)先删除你子表,然后在删除父表,这样就达到了删除父表的目的,但是子表也要被删除
2)先解除外键关系,然后在删除父表,这样也能达到目的,并且保留了子表,只删除我们不需要的父表。在3.7中就讲解了如何删除外键关系。
MySQL(五)DDL(数据定义语言)的更多相关文章
- 【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)
DDL 的基础语法 文章目录 DDL 的基础语法 对数据库进行定义 对数据表进行定义 创建表结构(数据表) 设计工具 修改表结构 小结 参考资料 简单复习一波 SQL必知必会 DDL 的英文全称是 D ...
- MySQL之DDL数据定义语言:库、表的管理
库的管理 常用命令 #创建库 create database if not exists 库名 [ character set 字符集名]; create database if not exists ...
- <MySQL>入门三 数据定义语言 DDL
-- DDL 数据定义语言 /* 库和表的管理 一.库的管理:创建.修改.删除 二.表的管理:创建.修改.删除 创建:create 修改:alter 删除:drop */ 1.库的管理 -- 库的管理 ...
- mysql DDL数据定义语言
DDL数据定义语言 本节涉及MySQL关键字:create.alter(rename,add,chang,modify,drop).drop.delete.truncate等. -- 创建表:-- 数 ...
- Hive 官方手册翻译 -- Hive DDL(数据定义语言)
Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...
- DDL数据定义语言
DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...
- oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言
DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...
- sql 两大类 DDL数据定义语言 和DCL数据控制语言
SQL分为五大类: DDL:数据定义语言 DCL:数据控制语言 DML:数据的操纵语言 DTL:数据事务语言 DQL:数据查询语言. DDL (date definition lang ...
- Oracle language types(语言种类) 表的相关操作 DDL数据定义语言
数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...
- 【MySQL笔记】数据定义语言DDL
1.创建基本表 create table <表名> (<列名><数据类型>[列级完整性约束条件] ...
随机推荐
- jdk配置java_home的两种方式
在开发java项目的时候,要先安装jdk,安装完jdk之后我们要配置环境变量.今天说一下java home环境变量. 配置环境变量有两种方式,一种就是在计算机的环境变量里面配置.这个是很简单的.如果你 ...
- HDU-4787 GRE Words Revenge 解题报告
这是我之前博客里提到的一道AC自动机的练手题,但是要完成这道题,我之前博客里提到的东西还不够,这里总结一下这道题. 这道题不是一般的裸的AC自动机,它的询问和插入是交叉出现的所以用我之前写的板子不大合 ...
- css层叠样式表
css的三种声明方式 1.行内样式 通过每个标签都有的style属性 <div style="color:red;">黄卫星说没有内容 ...
- 51nod 1008 N的阶乘 mod P
输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %) 例如:n = 10, P = 11,10! = 3628800 3628800 % 11 = 10 Input 两 ...
- 21. leetcode 492
492: 给定一个面积值,求它的长l和宽w.长和宽需满足:长大于等于宽,长和宽的差值尽可能小,长乘宽等于面积. 思路:先将l和w初始化为sqrt(area),然后看l*w是否等于面积,如果等于则返回l ...
- VPS安装中文语言
在CentOS VPS下修改语言编码: localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 export LC_ALL=zh_CN.utf8 上面第一步是用来产生编码文 ...
- 超超超简单的bfs——POJ-1915
Knight Moves Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 26102 Accepted: 12305 De ...
- bootstrap模态框远程加载网页的正确处理方式
bootstrap模态框远程加载网页的方法 在bootsrap模态框文档里给出了这个方法: 使用链接模式 <a data-toggle="modal" href=" ...
- vue学习笔记(1)—— 组件化实现todoList
一.环境搭建 1.npm 大型应用时推荐用npm安装,npm能很好的和webpack等模块打包器配合使用.具体安装步骤请参考网上的诸多教程.完成后使用如下命令安装vue. $ npm install ...
- HTML 贝塞尔曲线
1.二次贝塞尔曲线 <canvas id="myCanvas" width="300" height="150" style=&quo ...