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

粗聊Mysql——你会么?

本文中说到的“”,并非单纯的一个,或是一张,而是你建好的在项目的运营中,是否能应付各种事件,下面我说说几个我在项目中遇到的问题以及处理的方法,算是一个小小的心得,给大家分享下。...比如现在有2张,一张新闻栏目,一张新闻,现在两张需要进行关联,我想大多数人的做法肯定是在新闻表里一个新闻栏目id,然后把新闻栏目表里的主键ID(自增)写到这个字段里,通过这样进行两关联。   ...所以我建议两之间关联不用主键,而是单独一个编号的字段,我们这里可以用mysql的uuid()函数做为编号,相关文献可以参考《UUID做主键好还是不好》,只所以一张要2个主键,一个物理主键(自增id...三、不要把varchar长度设太“死”   这也是我之前经常犯得一个毛病,比如手机,我就设置为varchar(11),邮编设置成varchar(6),姓名设置成varchar(10)等等等等,看似每个字段设置得很严谨...所以我建议,既然定义为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, 在操作数据如果输入该字段的数据为...ENGINE 设置存储引擎,CHARSET 设置编码。...删除 MySQL中删除数据是非常容易操作的, 但是你再进行删除操作要非常小心,因为执行删除命令所有数据都会消失。 DROP TABLE table_name ;

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

    MySQL、增删改查语句Demo

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

    5.1K40

    MySQL数据、优化、算法、分区分库分总结

    一、主键设置 主键为什么不推荐有业务含义? 1、因为任何有业务含义的列都有改变的可能性,主键一旦带上了业务含义,那么主键就有可能发生变更。...; 2、系统特殊字段处理及建成建议 添加删除标记(例如操作人、删除时间); 建立版本机制; 3、结构合理性配置 多型字段的处理,就是中是否存在字段能够分解成更小独立的几部分(例如...,对于没有主键的,在查询和索引定义上有一定的影响; 避免表字段运行为null,建议设置默认值(例如:int类型设置默认值为0)在索引查询上,效率立显; 建立索引,最好建立在唯一和非空的字段上...1、表记录太少 2、经常插入、删除、修改的 3、数据重复且分布平均的表字段,假如一个有10万行记录,有一个字段A只有T和F两种值,且每个值的分布概率大约为50%,那么对这种A字段索引一般不会提高数据的查询速度...EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据是如何被搜索和排序的 当只要一行数据使用limit 1,MySQL数据引擎会在找到一条数据停止搜索,而不是继续往后查少下一条符合记录的数据

    5.3K31

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

    我们等了qq查看qq的聊天记录信息,这些数据又是从哪里取的? 2. 什么是 如果仓库里面堆满了装衣服的麻袋,那一个个麻袋就可以看做是一个 3. 数据的关系 三. 创建数据 1....创建 思考:如何把下面excel的数据保存到数据表里面 表语法: create table ( , , ......创建的时候,声明字段的时候,字段之间以什么符号分隔?符号用中文的可以吗? 英文状态下的逗号,不可以 2). 声明字段的时候,最后一个字段后面需不需要逗号? 不需要 3). 主键的特征是什么?...SYSDATE(), SYSDATE()); 总结: 需要注意的是,如果插入数据,只对部分字段进行初始化,则需要声明要插入的字段mysql中,字符串的数据是用英文的''括起来的 创建一个grade...的时候每一个字段的后面用什么符号分隔?最后一个字段后面需要分隔符吗? 逗号,不需要 2. 插入数据,只初始化部分字段与初始化所有字段sql的不同点体现在哪里?

    6K20

    java生成mysql数据表语句、字段字段类型、字段注释,可实现不用mysqldump备份数据「建议收藏」

    使用 mysqldump 备份数据也是可行的,因为每次备份的时候都需要mysqldump这个文件, 我在windows备份没问题,但是放到linux上面,centos系统死活不认这个文件,但又不想装...e.printStackTrace(); System.err.println("close ResultSet failure"); } } return tableNames; } /** * 获取中所有字段名称...,查询结果的第二列是表语句,第一列是名 return rs.getString(2); } } catch (Exception e) { e.printStackTrace(); try { if...catch (Exception e2) { e.printStackTrace(); System.err.println("关闭流异常"); } } return null; } /** * 获取字段的所有注释...,查询结果的第二列是表语句,第一列是名 String insertSql = String.format("insert into %s (%s) values(%s);", tableName,

    5.5K10

    可重复执行SQL语句|、插入默认值、增加字段、删除字段、修改字段可重复执行SQL语句|oracle|mysql

    目录 前言 oracle脚本: 表语句 插入默认值语句 删除某个字段 增加某个字段 有数据情况下修改某个字段为另外的名称  mysql表语句 插入默认值 删除某个字段 增加某个字段 有数据情况下将某个字段修改为另外的名称...比如甲方A的进展已经到3.0阶段了,需要加A字段,修改B字段为字符串;甲方B进展到2.0字段,只需要加A字段,这时候如果你的不是可重复执行的,你越到后面你就维护不清楚到底这张哪些字段甲方A有,哪些甲方...脚本: 表语句 我们需要创建一张学生,有id,name,sex,adress,phone字段 declare v_rowcount number(10); begin select count(...: 表语句 我们需要创建一张学生,有id,name,sex,adress,phone字段 create table if not exists `z_student` ( `id` varchar...(); drop procedure if exists sp_db_mysql; 以上就是常见的几种情况,包括、插入默认值、增加字段、删除字段、修改字段等操作,如果还有其他的,欢迎大家补充更新

    7.9K10

    mysql修改数据中的字段编码格式的修改

    本文链接:https://blog.csdn.net/luo4105/article/details/50804148 数据的时候,已经选择了编码格式为UTF-8 但是用PDM生成的脚本导进去的时候却奇怪的发现字段编码格式却是...GBK,一个一个却又觉得麻烦,在网上找了一下办法 一个是修改编码格式的 ALTER TABLE `table` DEFAULT CHARACTER SET utf8; 但是虽然修改了编码格式,...但是字段编码格式并没有修改过来,没有什么卵用 又发现一条语句,作用是修改字段编码格式 ALTER TABLE `tablename` CHANGE `字段名1` `字段名2` VARCHAR(36...) CHARACTER SET utf8 NOT NULL; 但是一次只能修改一个字段,还是很麻烦,不方便。...最后找到这么一条语句 alter table `tablename` convert to character set utf8; 它可以修改一张的所有字段编码格式,顿时方便多了

    8.4K20

    模仿Activiti工作流自动机制,实现Springboot项目启动自动创建多表关联的数据的方案

    我参考了工作流Activiti6.0版本的底层实现的逻辑,基于Springboot框架,实现项目在第一次启动可自动构建各种复杂如多表关联等形式的数据的。...首先,在解决这类需求,第一个先要解决的地方是,Springboot启动如何实现只执行一次方法。...实现项目启动的功能,可能还需实现判断是否已经有相应数据,若无,则应先新建一个数据,同时,得考虑还没有对应数据的情况,因此,我们通过jdbc第一次连接MySQL,应连接一个原有自带存在的。...每个MySql安装成功,都会有一个mysql,在第一次建立jdbc连接,可以先连接它。 ?...16 } 17 } 在数据fte自动创建完成,就可以在该fte库里去做的操作了。

    1.3K20

    0576-6.1.0-Hive Comment中文乱码补充

    3 解决办法 这个问题是因为mysql中的Hive元数据默认创建字符编码为latin1,需要修改中对应字段的字符类型 mysql –u root –p use metastore; #修改字段注释字符集...发现分区的中文也显示正常 注:在还未修改字符编码以前的创建的,仍然需要重新执行ALTER语句才能正常显示,所以建议在Hive 中还没有数据就将字符集修改过来 4 问题分析 针对该问题,Fayson...分析是由于Hive自动设置的字符编码。...在添加Hive 组件表语句是由CDH自动完成的,任意选择Hive 元数据metastore 下的两个查看,发现其默认的字符集编码是latin1,如下 ? ?...这也就解释了,虽然创建Hive元数据设置字符编码为utf8,但依旧出现中文乱码的问题。

    2.3K20

    powerdesigner导入sql生成_oracle导入sql

    在实际工作中,一张,我们可能需要在Mysql数据,又要在Oracle数据中每个字段的数据类型、中文注释、是否可为NULL 问题,非常影响我们的效率。...本篇文章,以Oracle数据为源,通过PowerDesigner工具将其转化成Mysql数据表语句。...1.1、名、字段名,需要去除 ` 符号 ; 1.2、若字段定义过程中缺少 ‘NOT NULL’、 ‘DEFAULT NULL’, 请添加 ; 1.3、若Oracle中含主键,需要添加命令设置主键...由于我们是将Oracle数据转化成Mysql数据,在这里 “New 数据管” 一行选择 “MySQL 5.0” 。...经过PowerDesigner软件生成Mysql表语句,这3个字段的数据类型并非是我们需要的数据类型,因此需要更改。

    5.8K20

    登录和退出 MySQL 服务器约束数据的三大设计范式查询练习事务推荐

    登录和退出 MySQL 服务器 # 登录MySQL $ mysql -u root -p12345612 # 退出MySQL数据服务器 exit; 基本语法 -- 显示所有数据 show databases...DROP TABLE myorder; 约束 主键约束 -- 主键约束 -- 使某个字段不重复且不得为空,确保内所有数据的唯一性。...VARCHAR(20), UNIQUE(name) ); -- 添加唯一主键 -- 如果没有设置唯一,还可以通过SQL语句设置(两种方式): ALTER TABLE user ADD...user MODIFY name VARCHAR(20); 默认约束 -- 添加默认约束 -- 约束某个字段的默认值 CREATE TABLE user2 ( id INT, name...,person 并没有为 cardId 字段设置一个在 card 中对应的 id 外键。

    5.7K50

    mysql操作命令梳理(4)-中文乱码问题

    在平时的mysql运维操作中,经常会碰到插入中文字段出现乱码的情况,产生中文乱码的原因一般有: 1)mysql编码格式不对,是latin1编码。...,最好在创建或数据的时候就设置正确的编码。...,基本就不会出问题了,即都使用相同的编码格式。...如果在建的时候没有指明编码格式导致中文乱码,可以通过以下方式进行查询。 1)查看mysql系统默认的编码格式(保证下面查询结果中的所有编码格式都是utf8,有不是的就手动修改!)...c)设置数据全局范围(全局修改,永久生效) 如上设置,当数据重启,就会发现设置global范围的值又变成latin1了!

    1.4K20
    领券