mysql datatable_MySQL-数据表操作
1.打开数据库
语法:USE 数据库名称;
SELECT DATABASE();---查询当前使用的数据库
2.创建数据表
语法:CREATE TABLE [IF NOT EXITS] table_name(
column_name data_type,
...
)
3.查看数据表
语法:SHOW TABLES;
4.查看数据表结构
语法:SHOW COLUMNS FROM tbl_name;---查询表的列结构
4.数据表插入记录
语法:
INSERT [INTO] tbl_name [(col_name,...)] VALUES (VAL,...)
说明:.如果省略列名,则需要给每列都要赋值!
.可以只给部分字段插入值,通过指定要插入的字段即可。
.对float型,如果插入值的小数点位数大于实际定义位数,可以插入成功,只是截取定义的位数。
查看数据表内容:
SELECT expr FROM tbl_name;
注意:常用的SELECT * FROM tbl_name,不是查询所有记录,而是指查询所有字段。
5.数据表数据的更新
UPDATE TABLE tableName SET field1=newValue1,field2=newValue2,...
[WHERE clause]
6.数据表数据的删除
DELETE FROM TABLE tableName [WHERE Clause]
说明:DML语句即是对数据表中数据的操作语句,是指INSERT,UPDATE,DELETE
7.SELECT *与SELECT 所有字段差异
.特别注意:两者的查询效率是一样的;
.建议使用后者,主要是考虑到数据库代码的可阅读性,特别是其他人来维护代码时,后者更容易让其他人了解数据表的字段!
8.幂等性
8.1概念
一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。
幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。
8.2实际的幂等技术方法
1.查询操作 查询一次和查询多次,在数据不变的情况下,查询结果是一样的。select是天然的幂等操作。
删除操作 删除操作也是幂等的,删除一次和多次删除都是把数据删除。(注意可能返回结果不一样,删除的数据不存在,返回0,删除的数据多条,返回结果多个)
3.唯一索引,防止新增脏数据 比如:支付宝的资金账户,支付宝也有用户账户,每个用户只能有一个资金账户,怎么防止给用户创建资金账户多个,那么给资金账户表中的用户ID加唯一索引,所以一个用户新增成功一个资金账户记录
要点: 唯一索引或唯一组合索引来防止新增数据存在脏数据 (当表存在唯一索引,并发时新增报错时,再查询一次就可以了,数据应该已经存在了,返回结果即可)
token机制,防止页面重复提交
业务要求:页面的数据只能被点击提交一次
发生原因:由于重复点击或者网络重发,或者nginx重发等情况会导致数据被重复提交
解决办法:集群环境:采用token加redis(redis单线程的,处理需要排队) 单JVM环境:采用token加redis或token加jvm内存。
处理流程:
数据提交前要向服务的申请token,token放到redis或jvm内存,token有效时间
提交后后台校验token,同时删除token,生成新的token返回
token特点:要申请,一次有效性,可以限流
注意:redis要用删除操作来判断token,删除成功代表token校验通过,如果用select+delete来校验token,存在并发问题,不建议使用。
5. 悲观锁 获取数据的时候加锁获取
select * from table_xxx where id='xxx' for update;
注意:id字段一定是主键或者唯一索引,不然是锁表,会死人的
悲观锁使用时一般伴随事务一起使用,数据锁定时间可能会很长,根据实际情况选用
乐观锁 乐观锁只是在更新数据那一刻锁表,其他时间不锁表,所以相对于悲观锁,效率更高。
乐观锁的实现方式多种多样可以通过version或者其他状态条件:
1、通过版本号实现
update table_xxx set name=#name#,version=version+1 where version=#version#
2、通过条件限制
update tablexxx set name=#name#,version=version+1 where id=#id# and version=#version#
update tablexxx set avaiamount=avaiamount-#subAmount# where id=#id# and avai_amount-#subAmount# >= 0
注意:乐观锁的更新操作,最好用主键或者唯一索引来更新,这样是行锁,否则更新时会锁表
mysql datatable_MySQL-数据表操作相关推荐
- mysql的数据表操作
1.创建数据表 在创建数据表之前,要用use <数据库名>指定在哪个数据库中操作. 1.1创建表的语法格式 创建数据表语句为,其中[]中的表示可选 create table <表名& ...
- mysql 字段操作_Mysql:数据库操作、数据表操作、字段操作整理
mysql 登录本机 mysql -u root -p password 数据库操作 创建数据库 命令:create database 例如:mysql> create database xhk ...
- mysql创建表设置数值范围,MySQL创建数据表时设定引擎MyISAM/InnoDB操作
我在配置mysql时将配置文件中的默认存储引擎设定为了innodb.今天查看了myisam与innodb的区别,在该文中的第七条"myisam支持gis数据,innodb不支持.即myisa ...
- mysql数据表操作_MySQL数据表基本操作实例详解
本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...
- 从零开始学 MySQL —数据库和数据表操作
前言 今天我们学习下核心的内容,学习并实践如何对数据库表和表中的内容做修改,删除,重命名等操作.(想看看周末还有多少爱学习的小伙伴,你们在哪里呀,O(∩_∩)O哈哈~) 1.目录 数据库操作:删除数 ...
- MySQL入门指南1(进入命令行,数据库,数据表操作)
目录 进入mysql命令行步骤: 常用MySQL命令 一.数据库操作 二.数据表操作 三.最后的话 进入mysql命令行步骤: 1.以管理员身份进入命令提示符 2.通过命令: net start my ...
- 【MySQL系统学习专栏】- 数据表操作 - 表定义选项 - 索引
文章目录 前言 一.索引概述 (一)什么是索引 (二)索引优点 (三)索引缺点 二.索引类型及对应操作 (一)主键索引 (二)普通索引 (三)唯一索引 (四)全文索引 (五)多列索引(组合.复合.联合 ...
- MySQL 创建数据表
MySQL 创建数据表 创建MySQL数据表的SQL语法: CREATE TABLE table_name (column_name column_type); 例如,我们在 PENGKE 数据库中创 ...
- MySQL查询数据表中数据记录(包括多表查询)
MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...
- MySQL对数据表进行分组查询(GROUP BY)
MySQL对数据表进行分组查询(GROUP BY) GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组.字段中值相等的为一组.基本的语法格式如下: GROUP BY 属性名 [HAVI ...
最新文章
- Linux内存中的 buffer 和 cache
- CentOS学习笔记--目录配置
- Centos7 安装 opencv
- lambda 高并发_玩Java 8 – Lambda和并发
- iphone在jsp显示时间会NAN解决办法
- Java渐变进度条_很好看的java进度条
- OneNET协议之LWM2M+CoAP
- error LNK2005: _sprintf 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
- 咪咕音乐客户端免费版
- web木马检测系统的设计与实现
- 《富爸爸穷爸爸》--读书笔记(5)-2020
- 全栈学习的知识点梳理(一)
- 自动化失败的6种原因
- 大端模式和小端模式的判别!
- python supper代码详解
- Pycharm专业版2016-2023历史版本官方下载地址
- git stash命令之暂存的操作
- Minecraft Skin
- Servlet 3.0 @WebFilter注解过滤器Filter使用(如何设置多个参数的方法)
- 推进重大改革塑造韧性 吉林银行不良率大降近六成