mysql表操作_MySQL表操作语句用法百科
本文采用MySQL5.7.26版本
1 建表语句
建表语句create语法如下:
1.1 设置unsigned
unsigned设置数值类型是否为无符号数,可以为空,如下举例:
1.2 设置默认值
default设置默认值,如下:
1.3 设置非空
not null设置列值不可为空,注意一般设置为not null的时候需要设置一个默认值(1.2那样),这样在插入时如果未指定非空字段就会用默认值代替。如果不指定默认值,那么插入时不指定值会报没有默认值的错误,如下:
1.4 设置备注
comment可以设置表的备注和字段的备注,如下所示:
1.5 设置键值
1.5.1 设置主键(聚簇索引)
1> 设置主键用primary key,当唯一主键时可以在列声明时指定,也可以在列声明后指定如下:
2> 当设置联合主键时,只能在列声明之后指定,如下:
1.5.2 设置唯一键(唯一索引)
设置唯一键规则与1.5.1中相同,要把其中关键字改为unique key。
1.5.3 普通键(普通索引)
在列声明完后添加普通索引的列即可,如下:
1.6 设置默认字符
设置表的默认字符集,使用default character set 'codeset',如下设置utf8,如下:
1.7 设置引擎
建表是设置引擎使用engine='engine'即可,可选择值有innodb,myisam,memory。如下:
1.8 auto_increment的用法
1.8.1 auto_increament知识
如果给某个数据表中的一个整数数据列定义可选的auto_increment属性,那么当用户向这个数据表插入一条新记录时,mysql 就会自动地把这个整数数据列的当前最大取值加上1之后赋值给新纪录中的这个整数字段。auto_increment属性的常见用法是定义数据表的主键字段。
使用 auto_increment 属性需要注意的问题:
1> 必须与 not null、primary key 或者 unique 属性同时使用且表中最多只能有一个 auto_increment 数据列。
2> 值自动生成机制只在用户使用insert命令插入新纪录,并且没有为ID字段明确地给出一个值或null时才起作用。如果用户给出了一个具体的值并且这个值还没有在ID列里出现过,MySQL就将使用这个ID值生成一条新数据记录。
3> 如果想知道MySQL在刚插入数据记录里生成的auto_increment值是多少,在执行完insert命令后(但还是在本次连接或本个事务里),立刻执行select last_insert_id() 命令。
4> 如果auto_increment计算器到达了它的最大值(不同的整数数据类型有不同的最大值),将不再继续递增,数据记录的插入操作也将随之无法继续进行。对 insert和delete 操作非常频繁的数据表来说,哪怕数据记录远少于20亿条,也有可能出现32位整数类型的auto_increment计算器被耗尽的情况。在定义这种数据表的时候,最好使用bigint数据列。
1.8.2 应用
1> 设置普通的自增,如下:
首次创建后使用show create table,不会出现AUTO_INCREAMENT=?,表中插入数据后会出现AUTO_INCREATE=?,?代表下一个自增的值。
2> 设置自增的步长
数据库的默认设置可以用如下命令查看:
如果要单独设置表自增的起始值和步长,如下所示:
这种set的方式不是全局生效的,如果想要全局生效,需要对mysql进行配置。
在创建表时可以通过auto_increment=?来设置其初始值,如下:
注意“?”必须是符合数据库设置的auto_increment_increment和auto_increment_offset规则的,如果不合规则那么不生效,其生成的第一个数字是比设置值大的符合按偏移量和步长的第一个数字。如下举例:
上例子中设置偏移量为4,步长为3.但是第一个插入的数据时8,打破了该规则,然后向表中插入默认值,其生成的是10,并不是8+3,因为8打破了偏移量与步长的规则,下一个生成的数字是大于8并且符合改规则的第一个数字10,再向其中插入的话,生成的数字就是13。
2 修改表
2.1 修改表名
2.2 修改字符集
2.3 修改引擎
2.4 修改列
1> 修改列名列类型(可以附带上其他信息):
2>修改列的位置到第一列:
3> 修改列的位置到某列的后面:
2.4.1 增加列
1> 将列增加到表的第一列,如下:
2> 在列id后增加age列,如下:
2.4.2 删除列
3 删除表
3.1 删除1个表
使用drop table命令,如下
3.2 删除多个表
使用drop tables命令,表名之间用","分割,如下:
该命令遇坏则坏,但是能清除所有已存在的表,如下创建test1,test2,test3,test5四个表:
使用命令drop tables test1, test2, test3, test4, test5进行测试,如下:
4 查看所有表
查看当前所在的数据库中的所有表,如下:
mysql表操作_MySQL表操作语句用法百科相关推荐
- mysql查看表描述_MySQL表记录操作介绍(重点介绍查询操作)
MySQL表记录操作指的是对数据库表中数据进行CRUD增删改查操作,一下将一一给大家介绍,重点介绍查询操作. 一.插入数据(INSERT) 二.删除数据(DELETE) 三.修改数据(UPDATE) ...
- mysql表的级联操作_mysql表之间的关系及级联操作
表之间的关系 foreign key 外键约束,用于指向另一个表的主键字段 # 创建表的时候添加外键 create table teacher( id int primary key auto_inc ...
- mysql设备台账_mysql数据库操作语句大全.pdf
mysql数据库操作语句大全.pdf mysql数据库操作语句大全(常用操作指令)一 . 常用mysql命令行命令1.启动MYSQL服务 netstartmysql停止MYSQL服务 stat na| ...
- mysql中表联结_MySQL -- 表联结
创建联结:(使用WHERE联结)SELECTvend_name,prod_name,prod_priceFROMvendors,productsWHEREvendors.vend_id=product ...
- mysql存储过程时间_mysql时间操作函数和存储过程
因为业务须要统计一批数据.用到关于mysql的时间操作函数和存储过程,问题已经基本解决.把过程记录下: 1. mysql的语句中不支持直接用循环.循环仅仅能在存储过程中使用. 2. 写为文件时,注意一 ...
- mysql表类型_MySQL表类型的选择
P131)创建表时的默认引擎是InnoDB,如果要修改默认的存储引擎,可以在参数文件中设置default-table-type.查看当前的默认存储引擎,可以使用一下命令: 创建新表的时候可以通过增加E ...
- mysql 表 类型_mysql表类型
MySQL支持6种不同的表类型:BDB.InnoDB.HEAP.ISAM.MERGE以及MyISAM.其中 BDB,InnoDB单独属于一类,称为"事务安全型"(transacti ...
- MySQL笔记创建表结构_MySQL表结构笔记9
本篇大纲 MySQL数据表 创建表 创建主键 AUTO_INCREATE 指定默认值 更新表结构 删除表,重命名表 01:表 MySQL 数据库的表是一个二维表,由一个或多个数据列构成 每个数据列都有 ...
- mysql行锁表怎么办_mysql - 表锁,行锁
MyISAM存储引擎:开销小,加锁快,无死锁.锁定粒度大,并发度低,容易发生锁冲突. 不支持事务. 采用表锁 (操作时对操作的表上锁) 基本不用了 innoDB存储引擎:开销 ...
- mysql 去空格_MySQL基本命令操作
MySQL通常情况下操作的时候都有图形客户端,但是在某些环境下,是没有提供客户端的,这个时候就需要使用基本的命令行去操作.本篇文章主要介绍MySQL的常用基本操作之"建库,建表,删库,删表& ...
最新文章
- LintCode 249. 统计前面比自己小的数的个数
- Scala Implicit
- 20_集合_第20天(Map、可变参数、Collections)
- 现代微波滤波器结构与设计_高功率射频及微波无源器件中的考虑和限制
- 阿里云centos7安装和卸载图形化操作界面
- 强化学习《基于价值 - Dueling Q-Learning》
- Django--模板语言
- Android设置Textview字体样式
- 什么是驱动程序 在计算机中有何用途,电脑的驱动程序有什么作用
- 达摩院提出时序预测新模型 有效提升预测精准度
- SQL45 将titles_test表名修改为titles_2017
- windows 平台下curl使用报错: (3) [globbing] unmatched close brace/bracket in column 13
- C语言程序设计(第三版)何钦铭著 习题5-3
- Mac 安装第三方来源软件
- The Shawshank Redemption-13
- x64 可变参数原理完全解析
- 工厂(Factory)模式
- ENVI学习之0001
- 卡巴斯基导致SVN不能正常工作
- 计算机主机干什么,电脑硬盘是干什么用的