测试必备的Mysql常用sql语句系列

https://www.cnblogs.com/poloyy/category/1683347.html

前言

针对数据表的操作语句叫做数据定义语言(DDL)  

数据表有哪些操作?

  • 创建数据表
  • 查看表结构
  • 查看数据表的创建语句
  • 复制数据表
  • 修改数据表
  • 删除数据表

简称“增删改查“,点击右边目录即可跳转哦! -------------->>>>>>>>>> 

创建数据表

语法格式

CREATE TABLE <表名> ( [表定义选项] )[表选项][分区选项];

知识点

  • 表名:两种写法,可以直接写数据表的名字 tbl_name ,也可以  db_name.tbl_name ,先指定数据库再指定数据表名;后者写法是为了:无论是否在当前数据库,也能通过这种方式在指定数据库下创建表
  • 表定义选项:一般都是 列名、列定义、默认值、约束、索引组成

实际栗子

# 创建数据表
CREATE TABLE yytest (
id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY,
uname VARCHAR ( 20 ) NOT NULL,
sex VARCHAR ( 4 ),
birth YEAR,
department VARCHAR ( 20 ),
address VARCHAR ( 50 ),
yypolo VARCHAR ( 20 )
); # 指定数据库,创建数据表
CREATE TABLE yytest.polotest (
id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,
stu_id INT ( 10 ) NOT NULL,
c_name VARCHAR ( 20 ),
istester VARCHAR ( 50 ),
grade INT ( 10 )
);

查看表结构

desc yytest.yytest;

执行结果

知识点

  • Null:表示该字段是否可以存储 NULL 值
  • Key:表示该字段是否已编制索引。PRI 表示主键,UNI 表示UNIQUE 索引,MUL 表示某个给定值允许出现多次
  • Default:表示该字段是否有默认值,如果有,值是多少
  • Extra:表示该字段的附加信息,如 AUTO_INCREMENT 等

查看数据表的创建语句

show create table yytest;

执行结果

知识点

不仅可以查看创建表时的详细语句,而且可以查看存储引擎和字符编码

复制数据表

# 仅复制表结构
create table yytest2 like yytest; # 复制表结构和数据
create table yytest3 as select * from yytest; # 仅复制表的指定字段结构
create table yytest4 as select id,uname,sex from yytest where 1<>1; # 复制表的指定字段结构和数据
create table yytest5 as select id,uname,sex from yytest; # 查看表创建语句:没有包含主键和自增
show create table yytest5;

知识点

  • 仅复制全部字段的结构直接加 like
  • 复制表不包含主键、索引、自增等

修改数据表

语法格式

ALTER TABLE <表名> [修改操作];

知识点

常用的修改表的操作

  • 修改表名
  • 修改字段数据类型或字段名
  • 增加和删除字段
  • 修改字段的排列位置
  • add、drop、change、modify、rename

修改表名

语法格式

ALTER TABLE <旧表名> RENAME [TO] <新表名>;

注意

  • [TO] 加不加都行,不影响结果
  • 修改表名不影响表结构

实际栗子

alter table yytest2 rename to yytest22;
alter table yytest22 rename yytest22;

修改字段排列顺序

语法格式

ALTER TABLE <表名> MODIFY <字段名> <数据类型> [FIRST|AFTER 已存在的字段名];

实际栗子

# 放在首位
alter table yytest22 modify sex int(2) first; # 放在birth字段后面
alter table yytest22 modify sex int(2) after birth;

修改字段数据类型

语法格式

ALTER TABLE <表名> MODIFY <字段名> <数据类型>;

实际栗子

# 修改字段数据类型
alter table yytest22 modify sex int(2);

修改字段名字

语法格式

ALTER TABLE <表名> CHANGE <旧字段> <新字段> <数据类型>;

实际栗子

# 修改字段名
alter table yytest22 change sex sexs int(2); # 修改字段数据类型和字段名
alter table yytest22 change sexs sex varchar(4);

知识点

change不仅可以改字段名,也可以改字段数据类型

添加字段

语法格式

ALTER TABLE <表名> ADD <字段名> <数据类型>  [约束条件] [FIRST|AFTER 已存在的字段名];

实际栗子

# 添加字段
alter table yytest22 add phone varchar(11); # 添加字段到首位
alter table yytest22 add phone varchar(11) not null default 2 first; # 添加字段到某个字段后面
alter table yytest22 add phone varchar(11) after sex;

删除字段

语法格式

ALTER TABLE <表名> DROP <字段名>;

实际栗子

# 删除字段
alter table yytest22 drop phone;

删除数据表

语法格式

DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]

可以看到跟删除库差不多

实际栗子

# 删除表如果存在
drop table if exists yytest,polotest

谨慎操作吧!!数据会清空哦!!

Mysql常用sql语句(二)- 操作数据表的更多相关文章

  1. mysql 常用sql语句 二

    mysql 查询 基本查询 select * from users; 去重 select distinct(name),high from users order by high desc; ## 注 ...

  2. Mysql常用sql语句(14)- 多表查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  3. mysql 常用 sql 语句 - 快速查询

    Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互         1.1.1 mysql 连接             mysql.exe -hPup    ...

  4. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  5. Mysql常用sql语句(21)- regexp 正则表达式查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 正则的强大不言而喻,Mysql中也提供了 reg ...

  6. Mysql常用sql语句(22)- insert 插入数据

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 终于讲完基础的查询语句了...这篇讲的就是插入数 ...

  7. Mysql常用sql语句(3)- select 查询语句基础使用

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 针对数据表里面的每条记录,select查询语句叫 ...

  8. Mysql常用sql语句(4)- distinct 去重数据

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 我们使用select进行数据查询时是会返回所有匹 ...

  9. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

随机推荐

  1. 给文本中的url加超级链接,同时滤过已加过链接的url

    /** * 给文本中的url加超级链接,同时滤过已有链接的url * @param string $str [description] * @return [type] [description] * ...

  2. Nginx设置目录浏览并配置验证

    Nginx默认是不允许进行列目录的,如果需要使某个目录可以进行浏览,可如下设置:如: 让/var/www/soft 这个目录在浏览器中完成列出. 一.设置目录浏览1.打开/usr/local/ngin ...

  3. Ftp Centos · GitBook

    これよくない pyftpdlibをつかおう sudo easy_install pyftpdlib nohup python -m pyftpdlib > pyftpdlib.log 2> ...

  4. 这有一管信息量很大的DNA

    题图:华盛顿大学副教授Luis Henrique Ceze(照片中的男士)和研究科学家Lee Organick正将数字数据保存进DNA测序,以供"读取"并追溯原始文件. 来自微软和 ...

  5. 不要忽视Managed code stripping的副作用

    0x00 前言 Unity 2018.3之后,新的“Managed Stripping Level”选项将替换 player settings 中原有的“Stripping Level”选项. 这个新 ...

  6. 使用QT绘制一个多边形

    目录 1. 概述 2. 实现 2.1. 代码 2.2. 解析 3. 结果 1. 概述 可以通过QT的重绘事件和鼠标事件来绘制多边形,最简单的办法就是在继承QWidget的窗体中重写paintEvent ...

  7. 解决Hexo博客模板hexo-theme-next的翻页按钮不正常显示问题

    用Hexo搭了个Gitpage的博客,兴冲冲的发了11篇博文后发现翻页按钮不正常显示,显示为<i class="fa fa-angle-right"></i> ...

  8. Node的require和module.exports

    node编程中最重要的思想之一就是模块,在 Node.js 模块系统中,每个文件都被视为独立的模块.这是这个思想,让javascript的大规模工程成为可能.模块化编程在前端大肆盛行,在node中导出 ...

  9. IEEE1588 PTP对时系统原理及特点

    IEEE1588 PTP对时系统原理及特点 随着网络技术的快速发展,以太网的定时同步精度也在不断入提高,为了适应网络技术的变化,人们开发出了NTP网络时间协议来提高各网络设备的定时同步功能,但在一些对 ...

  10. Core + Vue 后台管理基础框架0——开篇

    1.背景 最近,打算新开个项目,鉴于团队技术栈,选型.net core + vue,前后端分离.本打算捡现成的轮子的,github上大致逛了逛,总发现这样那样的不太适合心中那些“完美实践”,例如:Ab ...