数据库结构

3-MySQL DBA笔记-开发基础

五迷三道 提交于 2019-12-13 18:13:04
第二部分 开发篇 本篇首先讲述数据库开发的一些基础知识,如关系数据模型、常用的SQL语法、范式、索引、事务等, 然后介绍编程开发将会涉及的数据库的一些技巧,最后结合生产实际,提供一份开发规范供大家参考。 第3章 开发基础 本章将为读者介绍MySQL数据库相关的开发基础,首先,介绍一些基础概念,然后讲解关系数据模型和SQL基础。 由于在互联网开发者中,PHP开发者占据了相当大的比重,因此这里也将简要介绍下PHP开发者应该掌握的一些基础知识和开发注意事项。 最后,要接触的是MySQL数据库更深层次的内容——索引、主键、字符集等。 3.1 相关基础概念 (1)框架 在软件开发过程中,研发人员经常借助框架(framework)来辅助自己进行软件开发。 成熟的框架可以帮助处理很多细节性的问题,并完成一些基础性的工作,如生成访问数据库的代码、简化网络编程,这样开发者就会有更多的时间和精力专注于业务逻辑的设计。 但目前仍存在的一个问题是,一些框架对于数据库的使用不符合我们的预期,或者说不友好,故而有必要先了解一下开发框架是如何存取数据的。 大家有兴趣的话,可深入学习和使用如下这些业内使用比较广泛的一些框架,如 Django(Python)、Ruby onRails(Ruby)、Zend Framework(PHP)、Spring(JAVA)等。 (2)数据模型 数据模型(data model

Linux下数据库表结构导入导出

只谈情不闲聊 提交于 2019-12-13 16:48:41
1、导出数据库为dbname的表结构(其中用戶名為root,密码为dbpasswd,生成的脚本名为db.sql) mysqldump -h(指向的IP地址) -P(端口) -uroot -pdbpasswd -d dbname >db.sql; 2、导出数据库为dbname某张表(test)结构 mysqldump -h(指向的IP地址) -P(端口) -uroot -pdbpasswd -d dbname test>db.sql; 3、导出数据库为dbname所有表结构及表数据(不加-d) mysqldump -h(指向的IP地址) -P(端口) -uroot -pdbpasswd dbname >db.sql; 4、导出数据库为dbname某张表(test)结构及表数据(不加-d) mysqldump -h(指向的IP地址) -P(端口) -uroot -pdbpasswd dbname test>db.sql; 5.导出数据中dbname多张表(test1,test2,test3)结构及表数据用用空格隔开 mysqldump -h(指向的IP地址) -P(端口) -uroot -pdbpasswd dbname test1 test2 test3>db.sql; 6、执行SQL脚本 source xxx.sql 来源: CSDN 作者: weixin_42553714 链接:

索引很难么?带你从头到尾捋一遍MySQL索引结构,不信你学不会!

强颜欢笑 提交于 2019-12-10 15:01:05
前言 Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结。自上上篇写了 手动搭建Redis集群和MySQL主从同步(非Docker) 和上篇写了 动手实现MySQL读写分离and故障转移 之后,索性这次把数据库中最核心的也是最难搞懂的内容,也就是索引,分享给大家。 这篇博客我会谈谈对于索引结构我自己的看法,以及分享如何从零开始一层一层向上最终理解索引结构。 从一个简单的表开始 create table user( id int primary key, age int, height int, weight int, name varchar(32) )engine = innoDb; 相信只要入门数据库的同学都可以理解这个语句,我们也将从这个最简单的表开始,一步步地理解MySQL的索引结构。 首先,我们往这个表中插入一些数据。 INSERT INTO user(id,age,height,weight,name)VALUES(2,1,2,7,'小吉'); INSERT INTO user(id,age,height,weight,name)VALUES(5,2,1,8,'小尼'); INSERT INTO user(id,age,height,weight,name)VALUES(1,4,3,1,'小泰'); INSERT INTO user(id

navicat 导出表结构

六月ゝ 毕业季﹏ 提交于 2019-12-09 19:39:49
一:背景 想要把表结构展示给其他人看。 二:方式 一开始想了两种方式 1. 逆向表到模型 2. 建表语句 3. 导出 excel SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 备注 FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = '数据库名称' AND table_name = '表名' 来源: CSDN 作者: Ruh06 链接: https://blog.csdn.net/H_Rhui/article/details/103463372

客户端GUI测试技术和自动化测试架构设计简谈

北城余情 提交于 2019-12-08 01:25:47
客户端自动化特点 客户端的自动化,通常做过的人都不是很愿意深入讨论。因为除了功能和逻辑之外,不得不面对各种界面变化,各种和环境交互,各种兼容问题以及想不到灰色地带,就算这样,也找不到太多有效的bug。然而即便如此,客户端的自动化必须去做,尤其是GUI的。它的自动化特点是: 复杂 成本高 不容易发现问题 技术要求高 架构很难通用 下面,从一些基本的东西开始一点点的讨论客户端GUI测试的一些问题和处理办法,以及自动化架构设计的一些思路。事实上就像上面说的,GUI的测试并不是为了发现bug,而是回归的一种方式,作为保证而已——它过了不能说明质量多么好,但是不过,质量肯定不达标。即使在微软内部,客户端的GUI一样不是个受欢迎的家伙,通常用来做BVT的测试(或一些重要性回归,冒烟等)。 客户端自动化简述 这里并不花过多的笔墨介绍什么是客户端,或者如何分类的种种——这些东西教材和网上的东西一坨一坨很多很多,这里可能“漫谈”的,是实际工作中,客户端和GUI自动化中可能遇到的一些底层技术,基本上原理,架构设计方法以及一些项目存在困惑,这些方面的一些处理的方法。 最早的自动化 我个人认为所谓的计算机行业的自动化,是一直跟着这个行业的发展在走,比如下面的这些: 老式计算机——CPU计算: 最早自动解决手工分配穿孔的卡片问题 内存分配任务调度:操作系统的核心就是内存和任务的自动管理 系统配置Loader

WordPress数据库结构

心不动则不痛 提交于 2019-12-07 18:58:44
WordPress仅仅用了10 个表:wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms, wp_usermeta, wp_users 按照功能大致分为 五类 用户信息: wp_users和wp_usermeta 链接信息: wp_links 文章及评论信息: wp_posts、wp_postmeta、wp_comments 对分类,链接分类,标签管理: wp_term,wp_term_relationships,wp_term_taxonomy 全局设置信息: wp_options wp_posts 博客发表”文章”存放的地方就是这个wp_posts表了。这个表里存放的除了普通的文章之外,还有附件和页面(page)的一些信息。post_type 字段是用来区分文章类型的。如果post_type是’post’,那么就是文章,如果是’page’,那么就是页面,如果是’attachment’, 那么就是附件了. wp_postmeta 这个表很简单,只有 meta_id, post_id, meta_key, meta_value 这四个字段。post_id 是相关 “文章” 的id。meta_value

SQL语句修改数据库表结构

点点圈 提交于 2019-12-07 16:12:37
一、查看表结构 1 、查看表的基本结构语句: DESCRIBE `DEPT` ; 2 、查看表详细结构语句: SHOW CREATE TABLE `DEPT` ; 二、对表的操作 1、增加表 CREATE TABLE `dept` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `description` varchar(255) DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 2、删除表 DROP TABLE `DEPT`; 注意: 删除被其他表关联的父表则先要删除外键约束,然后再删除父表。 3、重命名表 ALTER TABLE `DEPT` RENAME `DEPT1`; 三、对数据的操作 1、插入数据 INSERT INTO `DEPT` VALUES(NULL,'ZHANGSAN',NULL); 遇到问题: 问题 1 1366 - Incorrect string value: '\xBF\xE9' for column 'name' at row 1 解决方法: 修改编码格式,因为插入的中文字符编码不是UTF-8。打开文本框,选择另存为

数据库结构

假如想象 提交于 2019-12-07 00:29:25
数据库基本结构 SQL数据库(关系型) 1.收费 2.开源免费 NOSQL数据库(非关系型) LAMP环境 数据库基本结构 1.数据库服务器: 2.数据表: 3.表引擎(Mysql为例): 4.Mysql 基本命令 5.数据库操作: 6.表操作: 7.表数据操作: 8.表索引: 索引作用: 1.普通索引: 2.唯一索引: 3.主键索引: 9.数据库基本操作: 1.表名的反引号作用: 2.修改数据表字段: 1.增 2.删 3.改 SQL数据库(关系型) 1.收费 1.DB2 2.Sqlserver 3.Oracle 2.开源免费 1.Mysql 2.Sqlite(所有语言默认支持的数据库,数据库小) 3.Postgresql(Linux) NOSQL数据库(非关系型) 非关系数据库是为了弥补关系型数据库而诞生的。 1.MongoDB 2.Redis 3.Memcache LAMP环境 1.Linux 2.Apache 3.Mysql 4.PHP 5.js+node.js+mongodb 数据库基本结构 1.数据库服务器: 1.数据库 2.数据表 2.数据表: 1.表结构(字段) 2.表数据(记录) 3.表索引(加快检索) 3.表引擎(Mysql为例): 1.myisam(3个文件) 2.innodb(2个文件,还有一个文件(这个文件只有一部分)) 4.Mysql 基本命令 1

mysql数据库的备份与还原

六月ゝ 毕业季﹏ 提交于 2019-12-06 04:52:10
备份结构 1.备份表结构 mysqldump -u root -p -d dbname table1 table2 ... > a.sql 2.备份数据库的所有表结构 mysqldumo -u root -p -d dbname > b.sql 3.备份多个数据库的所有表结构 mysqldump -u root -p -d --databases db1 db2... > c.sql 4.备份所有数据库的表结构 mysqldump -u root -p -d --all-databases > d.sql 备份结构和数据(相当于在备份结构的语法上去掉-d选项) 1.备份表结构和数据 mysqldump -u root -p dbname table1 table2 ... > a.sql 2.备份数据库的所有表结构和数据 mysqldump -u root -p dbname > b.sql 3.备份多个数据库的表结构和数据 mysqldump -u root -p --databases db1 db2 > c.sql 4.备份所有数据库的表结构和数据 mysqldump -u root -p --all-databases > d.sql 备份表数据 select ... into outfile select [列名] from table [where 语句] into

Canal——写入到ES中数据错乱

我的未来我决定 提交于 2019-12-05 07:05:06
问题描述   使用canal-adapter写入elasticSearch数据时,数据是写入了elasticSearch了,但出现了mysql表中的数据和elasticSearch中索引中的数据错乱的问题,即把A列的数据放到了B列中的。 研究了半天,发现是因为我在测试过程中,换过另外1个数据库,这2个库中的列不一致导致的。 因为canal会通过tsdb维护了一个当前数据库内表结构,具体配置如下: 我这里(tsdb使用的是本地的h2数据库)。 我有2个数据库,首先在第1个库测试验证,是正常的,然后换成在第2个库测试验证,就出问题了, 因为第1个库时已经缓存了表结构信息,第2个库还是拿的第1个库的表结构进行处理的。 解决方案 知道原因了就好解决了,既然是用H2存储表结构的,那删除它,然后重启服务就好了,因为会重新加载最新的表结构 cd canal/conf/db1 rm -rf h2.mv.db 来源: https://www.cnblogs.com/caoweixiong/p/11912683.html