mysql创建数据库

mysql数据库面试总结

喜你入骨 提交于 2020-03-23 04:59:04
数据库优化 建表优化 1)数据库范式 l 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 如电话列可进行拆分---家庭电话、公司电话 l 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。 l 第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。 比如 Student 表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话) 这样一个表结构,就存在上述关系。 学号 --> 所在院校 --> ( 院校地址,院校电话 ) 这样的表结构,我们应该拆开来,如下。 (学号,姓名,年龄,性别,所在院校) -- (所在院校,院校地址,院校电话) 满足这些规范的数据库是简洁的、结构明晰的;同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。 2)数据类型选择 l 数字类型 Float 和 double 选择(尽量选择 float ) 区分开TINYINT / INT / BIGINT,能确定不会使用负数的字段,建议添加 unsigned定义 能够用数字类型的字段尽量选择数字类型而不用字符串类型的 l 字符类型 char,varchar,TEXT的选择:非万不得已不要使用 TEXT 数据类型,定长字段,建议使用

mysql数据库修改字符编码问题

走远了吗. 提交于 2020-03-23 02:51:45
遇到这种情况,现有项目的数据库已经建好,数据表也已经创建完成。 问题来的,数据库不能插入中文,调试时候发现中文数据从发送请求到最后请求处理完成这些步骤,中文还没有发生乱码。 只有在存储到数据库后查询数据并显示才会乱码。 那么到此可以确定是mysql出现问题了。 那么应该怎么办呢?哈哈,当然是看我们的度娘啦! 看的下度娘解决方法是: 将数据库的编码修改为utf8编码格式,因为安装mysql默认使用的字符编码latin1 what?这个编码是什么鬼,见都没见过。 查了下,Latin1是 ISO-8859-1 的别名。因为ISO-8859-1编码范围使用了单 字节 内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的 字节流 都不会被抛弃 这个latin1编码是单字节编码,而一般汉字是需要两个字节存储,所以这个编码格式不支持汉字。 接下来就看怎么改吧 数据库字符优先级有:系统级、数据库级、表级、字段。这5个优先级中字段优先级最高。举个列子。我们要向表中存储中文数据。如果表的字符编码是utf8,而字段的字符编码是latin1。那么如果我们存储中文还是会出现乱码,因为使用的编码是字段的字符编码latin1 在数据库创建时如果不设置数据库的默认字符编码,即缺省时会使用系统的字符编码latin1。创建表缺省时使用数据库的字符编码,字段同理。 从上面可以得出一个重要结论

关于MySQL与DMsql探寻

狂风中的少年 提交于 2020-03-22 23:09:36
【前言】 DMsql指的是达梦数据库,这里只是一些浅显的sql。结合实际的运行效果和资料来探寻原理。我们以达梦数据库自带的表GRADE以及mysql随意创建的一个表作为测试。 1、查询全部数据 达梦数据库 select * from "SYSDBA"."GRADE"; mysql数据库 SELECT * FROM ceshi; 2、更换表头 【加不加as的效果是一样的】 达梦数据库 select "CLASSID" frozen,"STU_COUNT" red ,"TEACHER_NAME" as red,"COURSE" from "SYSDBA"."GRADE"; MySQL数据库 SELECT test as frozen, NAME as wcl,NAME wcl FROM ceshi; 3、组合新列 达梦与mysql只能拼接数字,不能拼接列或者其他字符 达梦数据库 select (123232+213213) as frozen from "SYSDBA"."GRADE"; MySQL数据库 SELECT (1232+13121) as frozen FROM ceshi; 4、区间查询 达梦数据库 select "CLASSID","STU_COUNT","TEACHER_NAME","COURSE" from "SYSDBA"."GRADE" where "STU

MySQL,优化查询的方法

情到浓时终转凉″ 提交于 2020-03-22 16:31:43
对于数据库,优化查询的方法 1.使用索引   使用索引时,应尽量避免全表扫描,首先应考虑在 where 及 order by ,group by 涉及的列上建立索引。 2.优化SQL语句   1)分析查询语句:通过对查询语句的分析,可以了解查询语句执行情况,找出查询语句执行的瓶颈,从而优化查询语句。    通过explain(查询优化神器)用来查看SQL语句的执行结果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。    例如:explain select * from news;  2)任何地方都不要使用select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。  3)不在索引列做运算或者使用函数。  4)查询尽可能使用 limit 减少返回的行数,减少数据传输时间和带宽浪费。 3.优化数据库对象  1)优化表的数据类型   使用 procedure analyse()函数对表进行分析,该函数可以对表中列的数据类型提出优化建议。表数据类型第一个原则是:使用能正确地表示和存储数据的最短类型。这样可以减少对磁盘空间、内存、CPU缓存的使用。   使用方法:select * from 表名 procedure analyse();  2)对表进行拆分   通过拆分表可以提高表的访问效率。有两种拆分方法:    a.垂直拆分(按照功能模块)   

数据库基础知识介绍(MySQL)

半世苍凉 提交于 2020-03-22 03:05:20
一、什么是数据库 1、数据库概念:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API接口用于创建,访问,管理,搜索和复制所保存的数据。 2、RDBMS(关系数据库管理系统): 能让我们使用表、列和索引实现一个数据库 保证各种表的行间的引用完整性 自动更新索引 解释一个SQL查询和组合来自不同表的信息 SQL:结构化查询语言(Structured Query Language),在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。 二、数据库基本结构 数据库: —— 数据库是表的集合,带有相关的数据。 —— 表:一个表是多个字段的集合。 —— 字段:一个字段是一列数据,由字段名和记录组成。 数据表: —— 数据库是由多个数据表构成的 —— 每张数据表存储多个字段 —— 每个字段由不同的字段名及记录构成,每个字段有自己的数据结构及约束条件 数据类型: ——数值类型: – INT:有符号的和无符号的。有符号大小-2147483648~2147483647,无符号大0~4294967295。宽度最多为11个数字- int(11) – TINYINT:有符号的和无符号的。有符号大小-128~127,无符号大小为0~255。宽度最多为4个数 字- tinyint(4) – SMALLINT:有符号的和无符号的。有符号大小

win10上安装mysql8 并配置主从复制

旧时模样 提交于 2020-03-21 22:16:49
最近在学习springboot,想整理一篇博客,关于springboot整合mybatis并配置主从数据库的,但是电脑win10系统上并没有配置mysql主从数据库。所以花了几天的时间终于整好了。在这里记录一下。 首先是关于在win10上安装两个mysql8的步骤,我找到了一篇博客,按照上面的步骤,是可以配置成功的。 https://blog.csdn.net/imHanweihu/article/details/89404165 这里有几个问题需要注意的: 1.删除mysql mysqld remove [服务名] 如:mysqld remove mysql1 2.如果出现下述错误,可以删除data文件夹: D:\developeTool\mysqlnew\mysql-8.0.17-winx64\bin>mysqld --initialize --user=mysql --console 2020-03-20T15:31:23.847864Z 0 [System] [MY-013169] [Server] D:\developeTool\mysqlnew\mysql-8.0.17-winx64\bin\mysqld.exe (mysqld 8.0.17) initializing of server in progress as process 15208 2020-03

23.MySQL的备份与恢复

浪子不回头ぞ 提交于 2020-03-21 17:30:38
23.1 备份单个数据库练习多种参数使用 mysql 数据库自带了一个很好用的备份命令,就是 mysqldump ,它的基本使用如下: 语法: mysqldump – u <用户名> - p <数据库名> 备份的文件名​ 范例一: 23.2 查看数据库 oldboy 的内容 mysql> use oldboy; Database changed mysql> show tables; +------------------+ | Tables_in_oldboy | +------------------+ | test | +------------------+ 1 row in set (0.00 sec) mysql> select * from test; +----+------+-----------+-------------+ | id | age | name | shouji | +----+------+-----------+-------------+ | 1 | NULL | oldgirl | NULL | | 2 | NULL | 老男孩 | NULL | | 3 | NULL | etiantian | NULL | | 4 | 24 | zhangxuan | 13511111111 | | 5 | 22 | huangyan |

PHP Mysql-创建数据表

柔情痞子 提交于 2020-03-21 14:51:45
PHP 创建 MySQL 表 一个数据表有一个唯一名称,并有行和列组成。 使用 MySQLi 和 PDO 创建 MySQL 表 CREATE TABLE 语句用于创建 MySQL 表。 创建表前,我们需要使用 use myDB 来选择要操作的数据库: use myDB; 我们将创建一个名为 "MyGuests" 的表,有 5 个列: "id", "firstname", "lastname", "email" 和 "reg_date": CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP ) 上表中的注意事项: 数据类型指定列可以存储什么类型的数据。完整的数据类型请参考我们的 数据类型参考手册 。 在设置了数据类型后,你可以为每个列指定其他选项的属性: NOT NULL - 每一行都必须含有值(不能为空),null 值是不允许的。 DEFAULT value - 设置默认值 UNSIGNED - 使用无符号数值类型,0 及正数 AUTO INCREMENT - 设置 MySQL

Mysql 开启Federated引擎的方法

女生的网名这么多〃 提交于 2020-03-21 10:28:24
原文参考:http://www.thinksaas.cn/topics/0/63/63532.html 进入mysql命令行,没有看到Federated,说明没有安装 mysql>show engines; 安装Federated mysql> install plugin federated soname 'ha_federated.so'; 查看有了Federated,但是是NO,说明没有开启 vi /etc/my.cnf,加入一行federated,保存并退出 重启mysql服务 service mysqld restart 再次查看,已经是yes了 使用FEDERATED建表语句如下: CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]' name--mysql用户名 pass--mysql密码 location--ip port:端口号 db-name:数据库名 table-name:表名 PS:创建的表名和远程访问的表名可以不同。 来源: https://www.cnblogs.com/xphdbky/p/7084058.html

面试总结——数据库篇

旧街凉风 提交于 2020-03-21 07:30:03
前言:前面介绍了Java、JVM相关方面的题目,该篇介绍数据库方面相关的题目,这里数据库为MySql,因为笔者或朋友在面试过程中都是涉及MySql的相关知识点。 数据库篇 在数据库题目中,由于现在大部分公司都是使用MySql作为数据库,因此笔者及其朋友所遇到的问题也都是MySql相关的知识点。 1)MySql中索引的基本定义,优劣势,以及索引优化。 索引是帮助Mysql高效获取数据的 数据结构 ,因此,索引的 本质 就是数据结构,索引的目的在于提高 查询 效率,可类比字典。 索引: 排好序的快速查找的数据结构。 用途: 排序 + 快速查找 。注意,是两种功能。 数据库除了存储数据本身之外,还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种 数据结构 就是索引。 MySql索引通常是指 B+树 索引。 索引优势: 类似书籍的目录,提高数据检索的效率,降低数据库的 IO 成本(因为数据最终是存储在 磁盘 上的)。 通过索引列对数据进行排序,降低数据排序的成本,降低了 CPU 的消耗(因为排好序,查询速度增加)。 索引劣势: 索引也是 一张表 ,保存了主键与索引字段,并指向实体表的记录,所以索引列也是要 占用磁盘空间的 。 虽然提高了 查询速度 ,但是会 降低更新速度(因为数据更新后,需要重新对索引排序) ,如