mysql常用语句一: 数据定义语言DDL

标签: mysql  sql  

SQL语言中常用的语句可以分为四类:
数据定义语言DDL;
数据操纵语言DML;
数据查询语言DQL;
数据控制语言DCL。

这篇博文以mysql为例,记录下常用的DDL语句。

DDL用来创建数据库、表、视图等。

1 数据库的操作

1.1 创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名 
DEFAULT CHARACTER SET utf8;

需要说明的是:
if not exists是为了避免有已经存在的数据库而报错;
utf8是数据库编码,中间没有杠。

1.2 删除数据库

DROP DATABASE IF EXISTS 数据库名;

if exists是为了避免数据库不存在而报错;

1.3 修改数据库

ALTER DATABASE 数据库名 CHARACTER SET 字符编码;
# 例如:
alter database how2j character set gb2312;

一般对数据库的修改也就是改一下字符编码

1.4 查看数据库

# 查看已有数据库
show databases;
# 数据库的编码
SHOW CREATE DATABASE 数据库名;

如下图所示。
在这里插入图片描述

2 表的操作

2.1 创建表

CREATE TABLE hero (
  id int(11) AUTO_INCREMENT,
  name varchar(30) ,
  hp float ,
  damage int(11) ,
  PRIMARY KEY (id)
)  DEFAULT CHARSET=utf8;

说明:
创建表hero;
字段有:id, name, hp, damage;
id为主键,且自增;
编码为utf8。

2.2 删除表

DROP TABLE 表名;

数据表之间经常存在外键关联的情况,这时如果直接删除父表,会破坏数据表的完整性,也会删除失败。

删除父表有以下两种方法:

  • 先删除与它关联的子表,再删除父表;但是这样会同时删除两个表中的数据。
  • 将关联表的外键约束取消,再删除父表;适用于需要保留子表的数据,只删除父表的情况。

2.3 查看表结构

# 以表格的形式来展示表的字段信息,
# 包括字段名、字段数据类型、是否为主键、是否有默认值等
DESC 表名;

在这里插入图片描述

# SHOW CREATE TABLE 命令会以 SQL 语句的形式来展示表信息。
# 和 DESCRIBE 相比,SHOW CREATE TABLE 展示的内容更加丰富。
# 它可以查看表的存储引擎和字符编码。
# 另外,你还可以通过\g或者\G参数来控制展示格式。
SHOW CREATE TABLE 表名;

在这里插入图片描述

SHOW CREATE TABLE 表名 \G;

在这里插入图片描述

2.4 修改表结构

ALTER TABLE <表名> [修改选项]
# 修改选项的语法格式如下:
{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }

看一些例子:

# 修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;
# to可加可不加。

# 修改编码
ALTER TABLE 表名 [DEFAULT] CHARACTER SET 编码;

# 添加字段,以student表为例。
# 末尾添加字段
ALTER TABLE student ADD age INT(4);
# 开头添加字段
ALTER TABLE student ADD stuId INT(4) FIRST;
# 特定字段后添加,在name字段后添加stuno字段
ALTER TABLE student ADD stuno INT(11) AFTER name;

# 修改字段类型,将student表中name字段的类型改为VARCHAR(30)
ALTER TABLE student MODIFY name VARCHAR(30);

# 删除字段,删除student表中的name字段
ALTER TABLE student DROP name;
版权声明:本文为Awt_FuDongLai原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Awt_FuDongLai/article/details/107638694

智能推荐

Mysql常用语句

SQL语句分为三类:DDL、DML、DCL。 DDL:数据定义语句,是对数据库内部对象进行创建、删除、修改等操作的语言。关键字包括create、drop、alter DML:数据操纵语句,用于添加、删除、更新和查询数据库记录,关键字包括insert、delete、update、select等 DCL:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句 一般开发人员很少接触DCL语句,本文不...

MySQL常用语句

列:字段 行:一条记录 表中一行记录对应一个Java对象的数据 SQL:Structure Query Language。(结构化查询语言) SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。 各数据库厂商都支持ISO的SQL标准。普通话 各数据库厂商在标准的基础上做了自己的扩展。方言 DDL(Data Definit...

layer弹出层的简单使用

一、layer的icon样式 以上样式测试代码: [javascript] view plain copy layer.confirm(‘icon测试’, {icon: 1, title:‘提示’}, function(index){     //do...

Nginx 解析漏洞复现

漏洞环境搭建 时间有限,漏洞环境搭建教程简单,在此不再赘述。 具体项目地址:https://github.com/vulhub/vulhub 搭建教程及说明可参考:https://vulhub.org/ -还是挺简单的- Nginx 解析漏洞复现步骤如下: 靶机环境 由此可知,该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞。 启动环境 复现 1). 访问 http://IP/u...

ArrayList 源码解析(JDK1.7)

ArrayList 源码解析(JDK1.7) ps: 我思考了一下…想要不要发这篇博客… 感觉作为一个初学者…发这种源码解析… 尤其当做学习记录这样的东西来做…感觉没有任何的重点可言… 不过思考了一下…反正估计也没人看 (狗头) 就发了吧 纯属个人 … emmm 萌新的学习经历- - 大...

猜你喜欢

GDB随笔(一)

在编译的时候必须加上-g,生成的目标文件才能够进行调试。(我们调试的是目标文件) -g选项的作用是在目标文件中加入源代码的信息,保证gdb能找到源文件。 -o选项,相当于指定一个文件作为目标文件。 可以做一个实验:由main.c生成main(-g),然后将m**在目标文件中加入源代码的信息,保证gdb能找到源文件。ain.c改成其他名字,然后调用gdb main,就会发现对gdb使用命令(list...

tensorboard报No dashboards are active for the current data set

遇到这个错误,通过两步可以解决这个问题 一、检查所指定的目录下是否存在event文件 类似于上面箭头所指的文件,并不需要所指定的目录为event的上一级目录,比如像下面这种情况 在启动tensorboard的时候,指定到log目录就行了,命令如下 二、确定logdir的路径是否正确 我们在确定event文件确实存在之后,还需要确定logdir的路径是否正确,因为logdir的路径中不能包含中文、空...

struts2--动态方法调用的三种方式

一般情况下,我们是通过实现action中execute方法来实现请求处理,这样子一个action中就只能写一个方法,当我需要实现很多方法的时候写多个action显然是很不合理的,因此就需要使用动态调用来实现。 方式一:指定method属性 也就是说通过在struts.xml文件中通过配置action标签的method属性来设置即可。 但是这个方法有一个缺陷,当一个action中有很多方法的时候就需...

深度剖析HashMap(一)——基于JDK7

HashMap是每个Java/Android程序员必须掌握的一种容器。在这个专题下将分若干篇文章对其进行深度剖析。由于JDK版本的不同,HashMap的底层实现也有些许差别。本文先对基于JDK7的HashMap进行分析,之后会奉上JDK8中对HashMap实现改动的分析。 一、HashMap结构概览 在JDK7中,HashMap说白了就是用到两种数据结构——数组与链表。 数...

Faster R-CNN基于pytorch的原理

  相关资料以及下载 代码地址:https://github.com/ruotianluo/pytorch-faster-rcnn.git 原理参考:https://blog.csdn.net/zm147451753/article/details/88218619 代码编译和运行 代码使用方法,暂时没找到win系统下的方法,为此,我安装了unbuntu,还是蛮好用的。 代码的编译运行准...