MySQL入门(4)——操作数据表

创建数据库

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据库名
[(create_definition,...)] [table_options] [select_statement]
关键词 说明
TEMPORARY 如果使用该关键字,表示创建一个临时表
IF NOT EXISTS 该关键字用于避免表存在时MySQL报告的错误
create_definition 表的一些特性参数,其中大多数选项涉及的是表数据如何存储及存储在何处,如ENGINE选项用于定义表的存储引擎;多数情况下用户不必指定表选项
select_statement SELECT语句描述部分,快速创建表

列属性create_definition定义的具体格式为:

col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[PRIMARY KEY] [reference_definition]
参数 说明
col_name 字段名
type 字段类型
NOT NULL|NULL 指出该列是否允许空值(系统一般默认允许为空值)
DEFAULT default_value 表示默认值
AUTO_INCREMENT 表示是否自动编号,每个表只能有一个AUTO_INCREMENT列,并且必须被索引
PRIMARY KEY 表示是否为主键,一个表只能有一个PRIMARY KEY;如果表中没有一个PRIMARY KEY,而某些应用程序需要PRIMARY KEY,MySQL将返回第一个没有任何NULL列的UNIQUE键作为PRIMARY KEY
reference_definition 为字段添加注释

查看表结构

SHOW COLUMNS语句

SHOW [FULL] COLUMNS FROM 数据表名 [FROM 数据库名];

SHOW [FULL] COLUMNS FROM 数据表名.数据库名;

DESCRIBE语句

DESCRIBE 数据表名;

其中,DESCRIBE可以简写为DESC。在查看数据表结构时,也可只列出某一列的信息:

DESCRIBE 数据表名 列名;

修改表结构

修改表结构使用ALTER TABLE语句。修改表的结构指增加或删除字段、修改字段名称或类型、设置取消主键外键、设置取消索引以及修改表的注释等。语法如下:

ALTER [IGNORE] TABLE 数据表名 alter_spec[,alter_spec]...| table_options

参数说明:

  • [IGNORE]:可选项,表示如果出现重复的关键行,则只执行一行,其它重复行被删除;
  • 数据表名:用于指定要修改的数据表的名称;
  • alter_spec子句:用于定义修改的内容;
  • table_options:用于指定表的一些特性参数,其中大多数选项涉及的是表数据如何存储及存储在何处,如ENGINE选项用于定义表的存储引擎,多数情况下用户不必指定表选项。

alter_spec定义项众多:

ADD [COLUMN] create_definition [FIRST | AFTER column_name] //添加新字段
| ADD INDEX [index_name] (index_col_name,...) //添加索引名称
| ADD PRIMARY KEY (index_col_name,...) //添加主键名称
| ADD UNIQUE [index_name] (index_col_name,...) //添加唯一索引
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} //修改字段默认值
| CHANGE [COLUMN] old_col_name create_definition //修改字段名/类型
| MODIFY [COLUMN] create_definition //修改子句定义字段
| DROP [COLUMN] col_name //删除字段名称
| DROP PRIMARY KEY //删除主键名称
| DROP INDEX index_name //删除索引名称
| RENAME [AS] new_tbl_name //更改表名

上述定义项各参数说明:

  • create_definition:用于定义列的数据类型和属性,上文提及;
  • [FIRST | AFTER column_name]:用于指定位于哪个字段的前面或后面;
  • [index_name]:可选项,用于指定索引名;
  • (index_col_name,...):用于指定索引列名;
  • {SET DEFAULT literal | DROP DEFAULT}子句:为字段设置或删除默认值,literal参数为要设置的默认值;
  • old_col_name:用于指定要修改的字段名;
  • new_tbl_name:用于指定新的表名。

重命名表

RENAME TABLE 数据表名1 TO 数据表名2

该语句可以同时对多个数据表进行重命名,多个表之间以逗号“,”分隔。

复制表

CREATE TABLE [IF NOT EXISTS] 数据表名
{LIKE 源数据表名 | (LIKE 源数据表名)}

参数说明:

  • [IF NOT EXISTS]:可选项,表示当要创建的数据表不存在时才会创建,以避免错误;
  • 数据表名:表示新创建的数据表名存在时,将出现错误;
  • {LIKE 源数据表名 | (LIKE 源数据表名)}:必选项,用于指定依照哪个数据表来创建新表。

使用该语法复制数据表时,将创建与源数据表结构相同的新表,该数据表的列名、数据类型、空指定、索引都会被复制,但内容不会被复制。如果需要复制内容,可通过AS(查询表达式)子句来实现:

CREATE TABLE 新表名
AS SELECT * FROM 旧表名;

删除表

DROP TABLE [IF EXISTS] 数据表名;

参数说明:

  • [IF EXISTS]:可选项,用于删除表前判断是否存在要删除的表,以避免错误;
  • 数据表名:用于指定要删除的数据表名,可以同时删除多张数据表,表名之间用半角逗号“,”分隔。

MySQL入门(4)——操作数据表的更多相关文章

  1. 【MySQL】(4)操作数据表中的记录

    1. 插入记录INSERT 方法一: INSERT [INTO] tbl_name [(clo_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),( ...

  2. nodejs+mysql入门实例(表的查询)

    //连接数据库 var mysql = require('mysql'); var connection = mysql.createConnection({ host: '******', //数据 ...

  3. mySQL入门之多表操作

    外键 初识外键 外键:引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束.(外键用于建立和加强两个表数据之间的连接,保证数据的完整和统一性) 主表:被引用的表 从表:引用外键的表 -- ...

  4. 【授课录屏】JavaScript高级(IIFE、js中的作用域、闭包、回调函数和递归等)、MySQL入门(单表查询和多表联查)、React(hooks、json-server等) 【可以收藏】

    一.JavaScript授课视频(适合有JS基础的) 1.IIFE 2.js中的作用域 3.闭包 4.表达式形式函数 5.回调函数和递归 资源地址:链接:https://pan.baidu.com/s ...

  5. MySQL使用SQL操作数据表的增加、修改和删除

    表的修改和删除 修改 -- 修改表名称 -- ALTER TABLE 旧表名 RENAME AS 新表名 ALTER TABLE test RENAME AS test1 -- 增加表字段 -- AL ...

  6. MYSQL操作数据表中的记录

    36:操作数据表中的记录插入记录   INSERT INTO 表名  VALUES();   或者INSERT 表名  VALUES();  UPDATE更新记录(单表更新)  DELETE删除记录( ...

  7. MySQL 命令操作数据表

    MySQL 命令操作数据表 1.查看表信息 desc hs_user_credit_info; 2.新增表字段 alter table hs_credit_order add search_relat ...

  8. MySQL学习之路(二)——数据类型和操作数据表

    数据类型和操作数据表 2.1 MySQL类型之整型 2.2 MySQL数据类型之浮点型 2.3 日期时间型 DATE 1支持时间:1000年1月1日~9999年12月31日 DATETIME 3 支持 ...

  9. MySQL入门第一天——概述、数据表与约束操作

    一.概述 1.安装 初学MySQL,我们下载msi的安装版:http://dev.mysql.com/downloads/file.php?id=457403 安装的过程文字简述可以参考之前随笔:ht ...

随机推荐

  1. Leetcode(9)-回文数

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...

  2. 牛客多校第八场E Explorer(左开右闭线段树+可撤回并查集)题解

    题意: 传送门 有\(n\)个点构成一个无向图,每条边有\(L_i,R_i\)表示这条边只能允许编号为\(L_i\dots R_i\)的人通过,现在问你最多有几个人能从\(1\)走到\(n\). 思路 ...

  3. Lenet车牌号字符识别+保存模型

    # 部分函数请参考前一篇或后一篇文章 import tensorflow as tf import tfrecords2array import numpy as np import matplotl ...

  4. TypeScript TSConfig All In One

    TypeScript TSConfig All In One tsconfig.json https://www.typescriptlang.org/tsconfig https://www.typ ...

  5. svg-path-to-polygons & svg-path-parser

    svg-path-to-polygons & svg-path-parser svg-path-to-polygons https://www.npmjs.com/package/svg-pa ...

  6. vscode Paste Image插件使用

    Paste Image 在编写md需要插入图片,这个插件可以将粘贴板的图片保存到本地资源 假如我在/readme.md中编写文档,我需要将粘贴板的图片放在/images/下面,配置两个关键配置即可: ...

  7. sql server 局域网与公网上的发布与订阅

    一台局域网的服务器,可以访问公网. 一台云端的服务器. 要求:将局域网中的服务器部分数据库同步到云端的服务器上. 配置情况: win server 2012 是发布服务器. win server 20 ...

  8. 验证销售部门的数据查看权限-脚本demo

    1 # coding:utf-8 2 ''' 3 @file: run_old.py 4 @author: jingsheng hong 5 @ide: PyCharm 6 @createTime: ...

  9. 关于Java中的对象、类、抽象类、接口、继承之间的联系

    关于Java中的对象.类.抽象类.接口.继承之间的联系: 导读: 寒假学习JavaSE基础,其中的概念属实比较多,关联性也比较大,再次将相关的知识点复习一些,并理顺其中的关系. 正文: 举个例子:如果 ...

  10. C#关于panle重叠

    当多个panle重叠不显示不出来的时候  选择视图---------------其它窗口----------------文档大纲  然后拖动进行调整