首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

粗聊Mysql——你会表么?

本文中说到的“”,并非单纯的一个,或是一张表,而是你建好的和表在项目的运营中,是否能应付各种事件,下面我说说几个我在项目中遇到的问题以及处理的方法,算是一个小小的心得,给大家分享下。...这样就会造成一种情况,如果那天对数据进行优化,把主键进行了重新排序(暂时没有找到mysql优化软件会优化主键,但是可以通过代码删除主键,然后从新建立自增主键来实现主键重新排序),那就彻底杯具了,栏目和文章完全对不上号了...所以我建议两表之间关联不用主键,而是单独一个编号的字段,我们这里可以用mysql的uuid()函数做为编号,相关文献可以参考《UUID做主键好还是不好》,只所以一张表要2个主键,一个物理主键(自增id...至于性能,我本地测了下基本上没差异,网上也有人做了10W条数据的测试——《实测MYSQL UUID性能》。...所以我建议,既然定义为varchar,就代表不会涉及到计算,何不干脆定义一个通用的长度,比如varchar(50),如果真要限制长度,用程序去判断,不要让数据来限制,不然用户输了一长串,结果mysql

5.2K10

MySQL 系列教程之(五)DDL 操作:

MySQL 数据 创建数据 使用root登录后,可以使用 create database if not exists user default charset utf8 创建数据,该命令的作用:...创建RUNOOB数据,并设定编码集为utf8 删除数据有风险,动手需谨慎 drop database 名; MySQL 数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段...public/img/pic.jpg' )engine=innodb default charset=utf8; 实例解析: 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据如果输入该字段的数据为...查看表结构 desc stu; 查看表语句 show create table stu\G 修改表结构 格式: alter table 表名 action(更改选项); 添加字段: 添加字段:alter...删除表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作要非常小心,因为执行删除命令后所有数据都会消失。 DROP TABLE table_name ;

7.6K73
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL数据字符集与校对集

    ‍ 哈喽大家好,本次是MySQL数据原理系列第九期 ⭐本期内容:字符集与校对集 系列专栏:MySQL数据 还请大家多多指教呀~ 欢迎大佬指正,一起学习,一起加油!...---- 文章目录 字符集与校对集概述 字符集 常用字符集 校对集 字符集与校对集的设置 MySQL环境 数据 数据表 字段 总结 ---- 字符集与校对集概述 字符集 字符指计算机中保存的各种文字和符号...字符集与校对集的设置 MySQL环境 输入如下命令可以查看与字符集相关的变量。...数据 在创建数据设定字符集和校对集的语法如下: [default] character set [=] charset_name [default] collate [=] collation_name...如果没有为数据表指定字符集,则自动使用数据字符集

    4.5K20

    使用 Laravel 制定 MySQL 数据备份计划任务

    背景 几天前,我登录到错误的数据中然后干掉了 18 000 行线上数据记录。更糟糕的是,我们没有对这个数据进行备份。然后,我决定编写一个能够自动完成数据导出并保存到 SQL 文件的脚本。...这样我们就无需关注更多的数据备份细节而仅需将焦点放到数据导出和导出计划上。 导出命令 使用这个单行 snippet,你可以快速的将数据导出到 SQL 文件。...'), config('database.connections.mysql.password'), config('database.connections.mysql.database...但现在的问题,如何管理调度器自身。这个有点像鸡生蛋蛋生鸡的问题,但是相信我,没有这么复杂。...原文 Scheduling MySQL Backups with Laravel

    2.9K10

    MySQL、表、增删改查语句Demo

    本页目录 语句 修改字符集 指定排序规则 当前状态的表语句 删除 Navicat编辑数据执行的SQL 表语句 表 添加字段 修改表 修改字段 修改表字符集、排序规则 截断表 删除表...添加索引 一直都是用MySQL可视化工具,几乎没碰过、表等语句了。...我们无法人为控制,只能完毕后执行修改字符集或者前修改MySQL配置 CREATE DATABASE IF NOT EXISTS `school` DEFAULT CHARACTER SET...utf8 COLLATE utf8_general_ci; 修改字符集 -- 指定字符集 ALTER DATABASE `school` CHARACTER SET utf8mb4 指定排序规则...`school` 删除 -- 删除数据 DROP DATABASE `school表名错误就无法删除了`; Navicat编辑数据执行的SQL -- 查看字符集,这是Navicat点击"编辑数据

    5.1K40

    修改及查看mysql数据字符集

    1.MySQL默认字符集 MySQL对于字符集的指定可以细化到一个数据,一张表,一列,应该用什么字符集。...(1)编译MySQL ,指定了一个默认的字符集,这个字符集是 latin1; (2)安装MySQL ,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译指定的...; (3)启动mysqld ,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集; (4)当创建一个新的数据...,除非明确指定,这个数据字符集被缺省设定为character_set_server; (5)当选定了一个数据,character_set_database 被设定为这个数据默认的字符集; (6...)在这个数据库里创建一张表,表默认的字符集被设定为 character_set_database,也就是这个数据默认的字符集; (7)当在表内设置一栏,除非明确指定,否则此栏缺省的字符集就是表默认的字符集

    4K90

    MySQL从删到跑路(二)——MySQL字符集与乱码解析

    MySQL数据的环境变量查看使用SQL语句show variables like '%char%'; character_set_client:客户端使用的字符集,当客户端向服务器发送请求,请求以客户端字符集进行编码...character_set_results:数据给客户端返回字符集MySQL数据把结果集和错误信息转换为character_set_results指定的字符集,并发送给客户端。...创建数据如果不指定数据字符集,默认会使用character_set_server字符集。 创建表如果不指定表的字符集,默认使用当前数据字符集。...创建列如果不指定字符集,默认使用当前表的字符集。 3、MySQL字符集的设置 A、MySQL服务器级字符集 修改MySQL服务器配置文件/etc/my.cnf文件。...B、MySQL数据字符集: 创建数据指定: CREATE DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE

    81320

    7.Mysql数据表引擎与字符集

    7.Mysql数据表引擎与字符集 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送 一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本...MySQL 支持非常多种存储引擎: ARCHIVE 用于数据存档(行被插入后不能再修改) BLACKHOLE 丢弃写操作,读操作会返回空内容 CSV 在存储数据,以逗号分隔各个数据项 FEDERATED...事务:访问并更新数据中数据的执行单元。事物操作中,要么都执行要么都不执行 2) 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件。 .frm文件存储表结构。 .MYD文件存储数据。...而在 MySQL 中字符集表示一个字符所用最大字节长度在某些方面会影响系统的存储和性能,所以设计 MySQL的大叔偷偷的定义了两个概念: utf8mb3 :阉割过的 utf8 字符集,只使用1~3个字节表示字符...字符集的查看 MySQL 支持好多好多种字符集,查看当前 MySQL 中支持的字符集可以用下边这个语句: show charset;

    1.5K10

    mysql数据(一):表与新增数据建议收藏

    创建表 思考:如何把下面excel的数据保存到数据表里面 表语法: create table ( , , ......表声明字段的时候,最后一个字段后面需不需要逗号? 不需要 3). 主键的特征是什么? 唯一性 4). 如果表需要支持中文数据存储和显示,需要怎么做?...只对部分字段进行初始化,则需要声明要插入的字段 在mysql中,字符串的数据是用英文的''括起来的 创建一个grade表 create table grade( id int not null PRIMARY...表的时候每一个字段的后面用什么符号分隔?最后一个字段后面需要分隔符吗? 逗号,不需要 2. 插入数据,只初始化部分字段与初始化所有字段sql的不同点体现在哪里?...赋值,对于varchar类型的字段,赋的值必须用什么符号括起来? 英文状态下的单引号'' 4. 字段声明了长度,赋值的时候应该注意什么? 插入数据的长度必须小于等于声明的长度 5.

    6K20

    Python数据操作 Mysql数据表引擎与字符集#学习猿地

    # Mysql数据表引擎与字符集 ![](....| `ARCHIVE` | 用于数据存档(行被插入后不能再修改) | | `BLACKHOLE` | 丢弃写操作,读操作会返回空内容 | | `CSV` | 在存储数据,...> 事物:访问并更新数据中数据的执行单元。事物操作中,要么都执行要么都不执行 #### 2) 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件。 + .frm文件存储表结构。...而在`MySQL`中字符集表示一个字符所用最大字节长度在某些方面会影响系统的存储和性能,所以设计`MySQL`的大叔偷偷的定义了两个概念: - `utf8mb3`:阉割过的`utf8`字符集,只使用1~...#### 字符集的查看 `MySQL`支持好多好多种字符集,查看当前`MySQL`中支持的字符集可以用下边这个语句: ```mysql show charset; ```

    62810

    Python数据操作 Mysql数据表引擎与字符集#学习猿地

    # Mysql数据表引擎与字符集 ![](....|  `ARCHIVE`  | 用于数据存档(行被插入后不能再修改) | | `BLACKHOLE` |    丢弃写操作,读操作会返回空内容    | |    `CSV`    |  在存储数据,...> 事物:访问并更新数据中数据的执行单元。事物操作中,要么都执行要么都不执行 #### 2) 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件。 +  .frm文件存储表结构。...而在`MySQL`中字符集表示一个字符所用最大字节长度在某些方面会影响系统的存储和性能,所以设计`MySQL`的大叔偷偷的定义了两个概念: - `utf8mb3`:阉割过的`utf8`字符集,只使用1~...#### 字符集的查看 `MySQL`支持好多好多种字符集,查看当前`MySQL`中支持的字符集可以用下边这个语句: ```mysql show charset; ```

    64710

    Python导出MySQL数据中表的表语句到文件

    为了做数据对象的版本控制,需要将MySQL数据中的表结构导出成文件进行版本化管理,试写了一下,可以完整导出数据中的表结构信息 # -*- coding: utf-8 -*- import os import...self.cursor.close()             self.conn.close()         except pymysql.Error as e:             print("mysql...= 'D:\mysqlscript'     if not os.path.exists(mysql_file_path):         os.mkdir(mysql_file_path)    ...export ok')             else:                 print('export fail') if __name__ == '__main__':     main() 测试...导出表语句会根据表的数据情况编号自增列,这是mysqldump的问题而不是导出的问题,如果有必要可以需求做相应的修改 去掉mysqldump导出表结构中备注信息 import os filepath

    3.3K20
    领券