MySQL教程数据定义语言DDL示例详解

目录
  • 1.SQL语言的基本功能介绍
  • 2.数据定义语言的用途
  • 3.数据库的创建和销毁
  • 4.数据库表的操作(所有演示都以student表为例)
    • 1)创建表
    • 2)修改表
    • 3)销毁表

如果你是刚刚学习MySQL的小白,在你看这篇文章之前,请先看看下面这些文章。有些知识你可能掌握起来有点困难,但请相信我,按照我提供的这个学习流程,反复去看,肯定可以看明白的,这样就不至于到了最后某些知识不懂却不知道从哪里下手去查。

《MySQL详细安装教程》
《MySQL完整卸载教程》
《这点基础都不懂,怎么入门MySQL?》
《charset=utf8的原理,你真的弄明白了吗?》
《MySQL数据类型详解》

1.SQL语言的基本功能介绍

SQL是一种结构化查询语言,主要有如下几个功能:

数据定义语言:全称是Data Definition Language,简称是DDL;数据操纵语言:全称是Data Manipulation Language,建成时DML;数据控制语言:全称是Data Control Language,建成时DCL

其中最重要的是数据操纵语言(DML),里面包含了我们常用的功能(增、删、改、查)。对于数据定义语言(DDL)和数据控制语言(DCL),作为一名数据分析师,我们只需要了解,知道怎么用就行了。今天就从DDL语言开始,带着大家学习。

2.数据定义语言的用途

主要是对数据库对象(数据库、表、视图、索引)的操作。

DDL常用命名如下:

创建 修改 销毁
create alter drop

3.数据库的创建和销毁

-- 创建数据库:创建student数据库
create database if not exists student;
-- 销毁数据库(少用)
drop database if exists student;

-- 创建数据库后,当进行对表的操作之前,必须要先使用数据库。
use student;

4.数据库表的操作(所有演示都以student表为例)

1)创建表

1)创建表:创建student表
-- 创建表结构时需要描述的字段信息
create table student(
     sid int,
     sname varchar(20),
     age int
)charset=utf8;

2)"完整的建表语句"应该这样写
create table student(
     sid int,
     sname varchar(20),
     age int
)engine=InnoDB default charset=utf8;
注:由于默认使用的engine就是InnoDB,这个见表时候可以不写。因为对于学习的你,使用这个
默认引擎就够了。但是charset=utf8这个最好是加上,尤其是在CMD黑窗口中输入中文的时候,
不写这一句,会出现类似如下错误:
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5' for column 'sname' at row 1

查看完整建表的SQL语句如下:

2)修改表

① 修改表名

-- 将表名student改为stu。
rename table student to stu;
-- 修改数据库名。
rename database 旧名 to 新名;

② 修改表结构 修改表结构中包含给表添加某个新字段,修改表中某个字段,删除表中某个字段;

Ⅰ 给表添加某个新字段

"添加字段:给student表,添加一个新的字段。"
1)默认是追加,即在最后一列添加新的字段。
alter table student add sex varchar(20);

2)在首位添加新的字段,使用first关键字。
alter table student add classid int first;

3)在指定位置添加新的字段,使用after关键字(在指定字段后面添加新字段)。
alter table student add birthday date after age;

"查看表结构:可以帮助我们了解表的结构信息"
desc student;

Ⅱ 修改表中某个字段

1)"修改字段名称":change
-- 修改字段age的名称,为sage。
-- modify不能直接修改字段名称,其余能用change的地方,就可以用modify。
alter table student change age sage int;

2)"修改字段类型":既可以使用change,还可以使用modify。
"还可以修改varchar(m)中这个m的长度"。
-- 修改sname字段的数据类型由varchar(20)为varchar(50)。
-- 可以使用如下两种方式:
alter table student change sname sname varchar(50);
alter table student modify sname varchar(50);

3)"修改字段位置":可以配合使用first、after关键字。
-- 将sname字段,放置到age后面。可以使用如下两种方式:
alter table student change sname sname varchar(50) after age;
alter table student modify sname varchar(50) after age;

Ⅲ 删除表中某个字段

-- 删除classid这个字段
alter table student drop classid;

③ 清空表:清空表中所有数据。

truncate只删除数据但是不删除表结构;

注意truncate与delete的区别,都用于删除表中数据,区别在哪里呢?可以自行查看。

truncate table stu;

3)销毁表

drop table stu;

以上就是MySQL教程数据定义语言DDL示例详解的详细内容,更多关于MySQL数据定义语言DDL的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解MySQL8.0原子DDL语法

    01 原子DDL介绍 原子DDL语句将数据字典更新.存储引擎操作和与DDL操作相关联的二进制日志写入合并到单个原子操作中.该操作要么提交,对数据字典.存储引擎和二进制日志保留适用的更改,要么回滚. 在MySQL8.0中,原子DDL操作这一特性,支持表相关操作,例如create table.drop table等,也支持非表相关操作,例如create routine.drop trigger等. 其中: 支持的表操作包含: drop.create.alter(操作对象是databases, tab

  • Mysql DDL常见操作汇总

    库的管理 创建库 create database [if not exists] 库名; 删除库 drop databases [if exists] 库名; 建库通用的写法 drop database if exists 旧库名; create database 新库名; 示例 mysql> show databases like 'javacode2018'; +-------------------------+ | Database (javacode2018) | +---------

  • 详解SQL四种语言:DDL DML DCL TCL

    看到很多人讨论SQL还分为四种类型,在这里知识普及一下,并总结下他们的区别吧. 1. DDL – Data Definition Language 数据库定义语言:定义数据库的结构. 其主要命令有CREATE,ALTER,DROP等,下面用例子详解.该语言不需要commit,因此慎重. CREATE – to create objects in the database   在数据库创建对象 例: CREATE DATABASE test; // 创建一个名为test的数据库 ALTER – a

  • MySQL ddl语句的使用

    前言 SQL的语言分类主要包含如下几种: DDL 数据定义语言 create.drop.alter 数据定义语言 create.drop.alter 语句 . DML 数据操纵语言 insert.delete.update 定义对数据库记录的增.删.改操作. DQL 数据库查询语言 select 定义对数据库记录的查询操作. DCL 数据库控制语言 grant.remove 定义对数据库.表.字段.用户的访问权限和安全级别. (授权grant,收回权限revoke等). TCL 事务控制语言 s

  • MySQL数据定义语言DDL的基础语句

    MySQL DDL 语句 什么是DDL,DML. DDL 是数据定义语言,就是对数据库,表层面的操作,如 CREATE,ALTER,DROP.DML 是数据操作语言,也就是对表中数据的增删改查,如 SELECT,UPDATE,INSERT,DELETE. 假设现在有数据库 lian_xi 里面有表 user 和 orders; 1.1登陆MySQL环境 在cmd窗口中输入mysql -u root -p登录MySQL环境 1.2查看数据库 Show databases; 1.3使用数据库 Use

  • MySQL教程数据定义语言DDL示例详解

    目录 1.SQL语言的基本功能介绍 2.数据定义语言的用途 3.数据库的创建和销毁 4.数据库表的操作(所有演示都以student表为例) 1)创建表 2)修改表 3)销毁表 如果你是刚刚学习MySQL的小白,在你看这篇文章之前,请先看看下面这些文章.有些知识你可能掌握起来有点困难,但请相信我,按照我提供的这个学习流程,反复去看,肯定可以看明白的,这样就不至于到了最后某些知识不懂却不知道从哪里下手去查. <MySQL详细安装教程> <MySQL完整卸载教程> <这点基础都不懂

  • MySQL实现数据插入操作的示例详解

    目录 一.方法分类 二.具体方法 三.实例 (1)常规插入 (2)从另一个表导入 (3)插入时数据重复 四.注意事项 (1)不写字段名,需要填充自增ID (2)按字段名填充,可以不录入id 其余注意事项 使用MySQL插入数据时,可以根据需求场景选择合适的插入语句,例如当数据重复时如何插入数据,如何从另一个表导入数据,如何批量插入数据等场景.本文通过给出每个使用场景下的实例来说明数据插入的实现过程和方法. 一.方法分类 二.具体方法 使用场景 作用 语句 注意 常规插入 忽略字段名 insert

  • Go语言学习教程之结构体的示例详解

    目录 前言 可导出的标识符 嵌入字段 提升 标签 结构体与JSON相互转换 结构体转JSON JSON转结构体 练习代码步骤 前言 结构体是一个序列,包含一些被命名的元素,这些被命名的元素称为字段(field),每个字段有一个名字和一个类型. 结构体用得比较多的地方是声明与数据库交互时需要用到的Model类型,以及与JSON数据进行相互转换.(当然,项目中任何需要多种数据结构组合在一起使用的地方,都可以选择用结构体) 代码段1:声明一个待办事项的Model类型: type Todo struct

  • TensorFlow人工智能学习数据合并分割统计示例详解

    目录 一.数据合并与分割 1.tf.concat() 2.tf.split() 3.tf.stack() 二.数据统计 1.tf.norm() 2.reduce_min/max/mean() 3.tf.argmax/argmin() 4.tf.equal() 5.tf.unique() 一.数据合并与分割 1.tf.concat() 填入两个tensor, 指定某维度,在指定的维度合并.除了合并的维度之外,其他的维度必须相等. 2.tf.split() 填入tensor,指定维度,指定分割的数量

  • python神经网络学习数据增强及预处理示例详解

    目录 学习前言 处理长宽不同的图片 数据增强 1.在数据集内进行数据增强 2.在读取图片的时候数据增强 3.目标检测中的数据增强 学习前言 进行训练的话,如果直接用原图进行训练,也是可以的(就如我们最喜欢Mnist手写体),但是大部分图片长和宽不一样,直接resize的话容易出问题. 除去resize的问题外,有些时候数据不足该怎么办呢,当然要用到数据增强啦. 这篇文章就是记录我最近收集的一些数据预处理的方式 处理长宽不同的图片 对于很多分类.目标检测算法,输入的图片长宽是一样的,如224,22

  • Go微服务项目配置文件的定义和读取示例详解

    目录 前言 场景 定义配置 配置文件 加载配置文件 实现原理 总结 项目地址 前言 我们在写应用时,基本都会用到配置文件,从各种 shell 到 nginx 等,都有自己的配置文件.虽然这没有太多难度,但是配置项一般相对比较繁杂,解析.校验也会比较麻烦.本文就给大家讲讲我们是怎么简化配置文件的定义和解析的. 场景 如果我们要写一个 Restful API 的服务,配置项大概有如下内容: Host,侦听的 IP,如果不填,默认用 0.0.0.0 Port,侦听的端口,必填,只能是数字,大于等于80

  • Go 语言单例模式示例详解

    目录 简单单例模式 加锁的单例模式 双check 的单例模式 sync.Once 的单例模式 简单单例模式 单例模式是创建类型的模式,它是为了保证执行期间内只有一个实例.使用 Golang 指针可以很容易的实现单例模式,通过指针保持相同的引用. package singleton type singleton struct{} var instance = &singleton{} func getSingleton() *singleton { return instance } 可以看到整个

  • MySQL中执行计划explain命令示例详解

    前言 explain命令是查看查询优化器如何决定执行查询的主要方法. 这个功能有局限性,并不总会说出真相,但它的输出是可以获取的最好信息,值得花时间去了解,因为可以学习到查询是如何执行的. 调用EXPLAIN 在select之前添加explain,mysql会在查询上设置一个标记,当执行查询计划时,这个标记会使其返回关于执行计划中每一步的信息,而不是执行它. 它会返回一行或多行信息,显示出执行计划中的每一部分和执行次序. 这是一个简单的explain效果: 在查询中每个表在输出只有一行,如果查询

  • mysql查看死锁与去除死锁示例详解

    1.查询进程 show processlist 2. 查询到相对应的进程,然后 kill id 验证(kill后再看是否还有锁) 2.查询是否锁表 show OPEN TABLES where In_use > 0; 示例: 新建一个会话执行如下的显示锁示例 LOCK TABLES account_data.account READ; SELECT SLEEP(160); UNLOCK TABLES account_data.account; 另开启一个会话检查锁表情况: mysql> sho

随机推荐