MySQL之数据定义语言(DDL)
写在前面
- 本文中
[ 内容 ]代表啊可选项,即可写可不写。
SQL语言的基本功能介绍
SQL是一种结构化查询语言,主要有如下几个功能:
- 数据定义语言(DDL):全称Data Definition Language
- 数据操纵语言(DML):全称Data Manipulation Language
- 数据控制语言(DCL):全称Data Control Language
- 事务控制语言(TCL):全称Transaction Control Language
其中最重要的是数据操纵语言(DML),里面包含了我们常用的功能(增、删、改、查)。对于数据定义语言(DDL)和数据控制语言(DCL),我们只需要了解,知道怎么用就行了。
数据定义语言的用途
DDL主要是对数据库对象(数据库、表、视图、索引)的操作。常用命令如下:
| 创建 | 修改 | 销毁 |
|---|---|---|
| create | alter | drop |
数据库的操作语句
显示当前所有库
-- 显示说有的库
show databases;
创建库
-- 创建库
-- creat database [if not exists] 数据库名 [charset=utf8];
-- 重复创建会报错, 可以加上if not exists
creat database if not exists student;
销毁库
-- 销毁库
-- drop database [if exists] 数据库名;
-- 如果不知道数据库是否存在,记得加if exists
drop database if exists student;
使用库
-- 使用库
-- use 数据库名;
-- 创建数据库后,当进行对表的操作之前,必须要先使用数据库。
use student;
其他
-- 查看当前所在的库
select database();
-- 修改数据库名
rename database 旧名 to 新名;
数据表的操作
查看当前库中都有哪些表
-- 查看当前库中都有哪些表
show tables;
创建表
-- 格式
-- 注意:表名 和 字段名 尽量使用 ` `(反引号)括起来
crate table [if not exists] `表名`(
`字段名` 字段类型 [属性] [索引] [注释],
`字段名` 字段类型 [属性] [索引] [注释],
......
`字段名` 字段类型 [属性] [索引] [注释]
)[表的搜索引擎] [字符编码] [注释];
简单示例:
creat table if not exists `table`(
`sid` int,
`sname` varchar(20),
`age` int
)charset=utf8;
注意:由于默认使用的engine就是InnoDB,这个建表时候可以不写。但是charset=utf8这个最好是加上,尤其是在CMD黑窗口中输入中文的时候,
不写这一句,会出现类似如下错误
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5' for column 'sname' at row 1
查看表结构和建表语句
-- 查看表结构
-- desc 表名;
desc student;
-- 查看建表语句
-- show creat table 表名;
show creat table stu;
修改表名
-- rename table 旧名 to 新名;
rename table student to stu;
修改表结构
修改表结构中包含给表添加某个新字段,修改表中某个字段,删除表中某个字段
给表添加某个新字段,使用
add关键字- 默认是追加,即在最后一列添加新字段
-- alter table 表名 add 字段名 字段类型;
alter table `stu` add `cid` int;
- 在首位添加新字段,使用
first关键字
-- alter table 表名 add 字段名 字段类型 first;
alter table `stu` add `cname` varchar(20) first;
修改表中某个字段,使用
change或modify关键字- 修改字段名称,使用
change关键字
-- alter table 表名 change 旧字段名 新字段名 字段类型;
-- 修改字段age的名称,为sage
alter table `stu` change `age` `sage` int;
- 修改字段类型,既可以使用
change,还可以使用modify
-- 修改sname字段的数据类型由varchar(20)为varchar(50)
-- 有以下两种方式
-- alter table 表名 change 字段名 字段名 字段类型;
alter table `stu` change `sname` `sname` varchar(50); -- alter table 表名 modify 字段名 字段类型;
alter table `stu` modify `sname` varchar(50);
- 修改字段位置,可以配合使用
first、after关键字
-- 将sname字段,放置到sage后面。可以使用如下两种方式:
alter table `stu` change `sname` `sname` varchar(50) after `sage`;
alter table `stu` modify `sname` varchar(50) after `sage`; -- 将sid字段,放置到首位
alter table `stu` change `sid` `sid` int first;
alter table `stu` modify `sid` int first;
modify不能直接修改字段名称,其余能用change的地方,就可以用modify。
- 修改字段名称,使用
删除表中某个字段,使用
drop关键字-- alter table 表名 drop 字段名; -- 删除cid这个字段
alter table `stu` drop `cid`;
清空表
truncate只删除数据但是不删除表结构
-- truncate table 表名;
truncate table `stu`;
销毁表
-- drop table 表名;
drop table `stu`;
注意:一般表结构有了,数据也有了,不要轻易修改表结构,增加、删除、修改列
MySQL之数据定义语言(DDL)的更多相关文章
- <MySQL>入门三 数据定义语言 DDL
-- DDL 数据定义语言 /* 库和表的管理 一.库的管理:创建.修改.删除 二.表的管理:创建.修改.删除 创建:create 修改:alter 删除:drop */ 1.库的管理 -- 库的管理 ...
- ODPS SQL <for 数据定义语言 DDL>
数据定义语言:(DDL) 建表语句: CREATE TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...
- 30441数据定义语言DDL
数据定义:指对数据库对象的定义.删除和修改操作. 数据库对象主要包括数据表.视图.索引等. 数据定义功能通过CREATE.ALTER.DROP语句来完成. 按照操作对象分类来介绍数据定义的SQL语法. ...
- mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)
0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...
- mysql数据定义语言DDL
库的管理 创建 create 语法:create database 库名 [character set 字符集] # 案例:创建库 create database if not exists book ...
- 【MySQL笔记】数据定义语言DDL
1.创建基本表 create table <表名> (<列名><数据类型>[列级完整性约束条件] ...
- oracle 数据定义语言(DDL)语法
DDL语言包括数据库对象的创建(create).删除(drop)和修改(alter)的操作 1.创建表语法 create table table_name( column_name datatype ...
- SQLite基础-4.数据定义语言(DDL)
目录 一.创建数据库 1. 创建方式 2. 数据库命名规范 二. 创建表 1. 基本用法 2. 数据表命名规范 3. 字段命名规范 三. 删除表 一.创建数据库 1. 创建方式 在第二章中我们讲了如何 ...
- SQL语句整理(二) 数据定义语言DDL
前言: 这是我学数据库时整理的学习资料,基本上包括了所以的SQL语句的知识点. 我的教材是人大王珊老师的<数据库系统概论>. 因为是手打的,所以会用一些细节打错了,但都挺明显也不多(考完试 ...
随机推荐
- 【LiteOS】LiteOS消息队列-实战
目录 前言 链接 参考 笔录草稿 创建测试任务 部分源码 前言 链接 LiteOS源码链接 常见问题 华为开发者社区 华为LiteOS官方教程 我的gitee-LiteOS-mcu 参考 上面链接 笔 ...
- Spring框架的介绍
1.Spring框架的结构 由持久层.表现层.中间模块和测试层组成. 持久层:和数据接触.事务管理 表现层:对数据进行处理 中间模块:核心功能 测试层:用来测试完整度 核心功能介绍 1.1 控制反转 ...
- 手机浏览器通过Scheme跳转APP,兼容各种手机浏览器
一个比较完整的产品线,必定有APP和网站,另外还有微信公众号网页和小程序.那么有一个比较常见的需求就是在手机浏览器内打开APP,实现起来也比较简单,只要APP配置的有URLScheme即可. 但是因为 ...
- 图像Resize方式对深度学习模型效果的影响
在基于卷积神经网络的应用过程中,图像Resize是必不可少的一个步骤.通常原始图像尺寸比较大,比如常见监控摄像机出来的是1080P高清或者720P准高清画面,而网络模型输入一般没有这么大,像Yolo系 ...
- PAT (Advanced Level) Practice 1008 Elevator (20 分) 凌宸1642
PAT (Advanced Level) Practice 1008 Elevator (20 分) 凌宸1642 题目描述: The highest building in our city has ...
- matlab mashgrid 函数
meshgrid 有三种语法,用来生成三维网格矩阵或二维网格矩阵 [X,Y] = meshgrid(x,y) , x和y 都是一维数组,如x=[1:3]; y= [4:5]; 则生成的 X 和 Y 都 ...
- 强大的工具(一):Capslock+ 2.x版本
2020.07.09 更新 作者更新了3.x版本,因此更新了3.x版本的博客,可以戳这里. 本篇文章介绍的是2.x版本. 1 Capslock+简介 Capslock+利用了键盘少用的Capslock ...
- 6. VUE 指令-概述
指令 (Directives) 是带有 v- 前缀的特殊特性.指令特性的值预期是单个 JavaScript 表达式 (v-for是例外情况,稍后我们再讨论).指令的职责是,当表达式的值改变时,将其产生 ...
- Day01_09_数据类型
数据类型 数据类型分类 *基本数据类型 *引用数据类型 基本数据类型 --第一类 整数型 byte short int long --第二类 浮点型 float double --第三类 布尔型 bo ...
- NumPy之:数据类型对象dtype
目录 简介 dtype的定义 可转换为dtype的对象 dtype对象 None 数组标量类型 通用类型 内置Python类型 带有.dtype属性的对象 一个字符的string对象 数组类型的Str ...