在进行MySQL数据库开发时,遵循一定的规范和最佳实践可以确保代码的可维护性、可扩展性和性能,从而确保数据库系统的稳定运行和长期发展。...字符型的默认值为一个空字符值串,数字型的默认值为0,设置默认值能节省空间,提高索引的效率,让查询变得不繁琐。 越简单越好,将字符转化为数字、使用TINYINT代替ENUM类型。...更小的字段类型和更小的字符数通常对请求的处理更快,占用的资源更少,选择合适的数据类型。 同一意义的字段设计定义必须相同。 禁用在数据库中存储明文密码。...创建存储过程以 proc_开头命名,函数以 func_开头命名。 八、视图使用规范 数据库不能包含具有相同名称的表和视图。 定义中不能引用TEMPORARY表,不能创建TEMPORARY视图。...遵循这些规范有助于构建稳定、安全、性能良好的MySQL数据库,并使开发团队的合作更加顺畅。
不但能够节约存储空间,还能提高表的操作效率。 MySQL 字符集 下面来认识一下 MySQL 字符集,简单来说字符集就是一套文字符号和编码、比较规则的集合。...所以,为了统一字符编码,国际标准化组织(ISO) 指定了统一的字符标准 - Unicode 编码,它容纳了几乎所有的字符编码。...-16 否 2 字节或 4 字节编码 UTF-32 是 4 字节编码 对数据库来说,字符集是很重要的,因为数据库存储的数据大多数都是各种文字,字符集对数据库的存储、性能、系统的移植来说都非常重要。...什么是视图 视图的英文名称是 view,它是一种虚拟存在的表。视图对于用户来说是透明的,它并不在数据库中实际存在,视图是使用数据库行和列动态组成的表,那么视图相对于数据库表来说,优势体现在哪里?...数据独立性:一旦视图的结构 确定了, 可以屏蔽表结构变化对用户的影响, 数据库表增加列对视图没有影响;具有一定的独立性 对视图的操作 视图的操作包括创建或者修改视图、删除视图以及查看视图定义。
mysql8的服务器 点击Execute 点击下一步 mysql的端口默认是3306 根据自己需求可以进行更改 继续下一步 输入数据库的密码(自定义),默认最高用户是root,可以自己添加用户...mysql的结构 MySql数据库分为两种: 系统数据库(数据库服务器自带的,自带的4个) information_schema:存储数据库对象信息,如用户表信息,列信息,根除,字符,分区,里面的内容我们不能动...人们想出了给每一个文字符号编码以便于计算识别处理的办法,这就是计算机字符集的由来。 2. ASSCII 一套文字符号及其编码,比较规则 的集合。 20世纪60年代初。...先查出30号部门工资最高的那个人 再到整个表中查询大于30号部门工资最高的那个人 查询工作和工资与妲己完全相同的员工信息 先查出妲已的工作和工资 根据查询结果当作条件再去查询工作和工资相同的员工...TO 用户 IDENTIFIED BY "密码" WITH GRANT OPTION Mysql8 MySQL8新增了角色(role)的概念,使账号权限的管理,更加灵活方便。
一、视图 1.什么是视图 1) 视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表。 ...2) 数据库中存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。 3) 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。 ...2.视图的作用 1) 使操作简便化。 2) 增加数据的安全性。 3) 提高表的逻辑独立性。 ...使用组合索引时遵循最左前缀集合; 5) 全文索引:使用FULLTEXT参数可以设置,全文索引只能创建在CHAR,VARCHAR,TEXT类型的字段上。...主要作用是提高查询较大字符串类型的速度;只有MyISAM引擎支持该索引,MySQL默认引擎不支持;mysql5.7+ 4.创建索引 CREATE [UNIQUE|FULLTEXT] INDEX
例如默认情况下,’a’=‘A’ 返回结果为1,如果使用BINARY关键字,BINARY’a’=‘A’结果为0,在区分大小写的情况下,’a’ 与’A’并不相同。...同理,读者可以根据其他日期和时间的位置,计算并获取相应的值。 15、如何改变默认的字符集?...CONVERT()函数改变指定字符串的默认字符集,在开始的章节中,向读者介绍使用GUI图形化安装配置工具进行MySQL的安装和配置,其中的一个步骤是可以选择MySQL的默认字符集。...26、存储过程的参数不要与数据表中的字段名相同。 在定义存储过程参数列表时,应注意把参数名与数据库表中的字段名区别开来,否则将出 现无法预期的结果。 27、存储过程的参数可以使用中文吗?...在使用触发器的时候需要注意,对于相同的表,相同的事件只能创建一个触发器,比如对 表account创建了一个BEFORE INSERT触发器,那么如果对表account再次创建一个BEFORE INSERT
例如默认情况下,’a’=‘A’ 返回结果为1,如果使用BINARY关键字,BINARY’a’=‘A’结果为0,在区分大小写的情况下,’a’ 与’A’并不相同。...同理,读者可以根据其他日期和时间的位置,计算并获取相应的值。 15、如何改变默认的字符集? ...CONVERT()函数改变指定字符串的默认字符集,在开始的章节中,向读者介绍使用GUI图形化安装配置工具进行MySQL的安装和配置,其中的一个步骤是可以选择MySQL的默认字符集。...26、存储过程的参数不要与数据表中的字段名相同。 在定义存储过程参数列表时,应注意把参数名与数据库表中的字段名区别开来,否则将出 现无法预期的结果。 27、存储过程的参数可以使用中文吗? ...在使用触发器的时候需要注意,对于相同的表,相同的事件只能创建一个触发器,比如对 表account创建了一个BEFORE INSERT触发器,那么如果对表account再次创建一个BEFORE INSERT
例如默认情况下,’a’=‘A’ 返回结果为 1,如果使用 BINARY 关键字,BINARY’a’=‘A’ 结果为 0,在区分大小写的情况下,’a’ 与 ’A’ 并不相同。...同理,读者可以根据其他日期和时间的位置,计算并获取相应的值。 5、如何改变默认的字符集?...CONVERT() 函数改变指定字符串的默认字符集,在开始的章节中,向读者介绍使用 GUI 图形化安装配置工具进行 MySQL 的安装和配置,其中的一个步骤是可以选择 MySQL 的默认字符集。...16、存储过程的参数不要与数据表中的字段名相同。 在定义存储过程参数列表时,应注意把参数名与数据库表中的字段名区别开来,否则将出 现无法预期的结果。 17、存储过程的参数可以使用中文吗?...在使用触发器的时候需要注意,对于相同的表,相同的事件只能创建一个触发器,比如对 表 account 创建了一个 BEFORE INSERT触发器,那么如果对表 account 再次创建一个 BEFORE
作者:辉少 1 文档编写目的 Fayson 在前面的文章《Hive表字段Comment中文乱码》中,介绍了在Hive中如何解决表字段中文注释乱码的问题,为了完善上篇文档,本文整理Hive表所有与中文注释相关的属性项...3 解决办法 这个问题是因为mysql中的Hive元数据库表默认创建字符编码为latin1,需要修改表中对应字段的字符类型 mysql –u root –p use metastore; #修改字段注释字符集...在创建Hive元数据库设置的字符集是utf8,查看语句如下: ?...在添加Hive 组件时,建表语句是由CDH自动完成的,任意选择Hive 元数据库metastore 下的两个表查看,发现其默认的字符集编码是latin1,如下 ? ?...这也就解释了,虽然创建Hive元数据库的时设置字符编码为utf8,但依旧出现中文乱码的问题。
一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。 隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。...持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。 3 视图 视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询;不包含任何列或数据。...使用视图可以简化复杂的sql操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同的方式利用它们。...视图不能被索引,也不能有关联的触发器或默认值,如果视图本身内有order by 则对视图再次order by将被覆盖。...如何使用 MySQL 的 JOIN 在两个或多个表中查询数据呢 可以在 SELECT, UPDATE 和 DELETE 语句中使用 MySQL 的 JOIN 来联合多表查询。
:选填;指定在某个逻辑库下创建同义词;若不填写,则默认在当前所在逻辑库下创建同义词;若创建公有同义词,则无需指定该逻辑库;synonym:创建的同义词名称;FOR object:指定同义词引用的具体对象...,该对象支持表、视图、同义词、序列;若支持对象不存在时创建同义词,则此对象被创建时会自动关联;同义词名最大长度限制为128字符;database2....:选填;指定引用某个逻辑库下对象;若不填写,则默认选择当前逻辑库下的对象;若指定对象为同义词,则对应该同义词指向的对象;@dblink:引用的对象支持对外部数据库创建同义词,此处填写DBLINK名。...具体使用方法同表DML操作方式一致,需注意以下事项:使用时需要对同义词所指向的对象具有相应的权限;若存在如下同名同义词对象(表、视图、同义词),遵循以下优先级:表>视图>私有同义词>公有同义词;若存在如下同名同义词对象...(序列、同义词),遵循以下优先级:序列>私有同义词>公有同义词若同义词指向的表/视图等对象执行了ALTER/TRUNCATE操作,则此同义词会同步该变化;若同义词指向的表/视图/序列/同义词对象执行了DROP
-- MySQL、数据库、表、字段均可设置编码 -- 数据编码与客户端编码不需一致 SHOW VARIABLES LIKE 'character_set_%' -- 查看所有字符集编码项...不同的编码,所占用的空间不同。 char,最多255个字符,与编码无关。 varchar,最多65535字符,与编码有关。...TEMPTABLE 临时表 将视图执行完毕后,形成临时表,再做外层查询! UNDEFINED 未定义(默认),指的是MySQL自主去选择相应的算法。...] 密码(字符串) - 必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。...列层级:列权限适用于一个给定表中的单一列,mysql.columns_priv 当使用REVOKE时,您必须指定与被授权列相同的列。
-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格) 连接与断开服务器 mysql -h 地址 -P 端口...-- MySQL、数据库、表、字段均可设置编码 -- 数据编码与客户端编码不需一致 SHOW VARIABLES LIKE character_set_% -- 查看所有字符集编码项...不同的编码,所占用的空间不同。 char,最多255个字符,与编码无关。 varchar,最多65535字符,与编码有关。...] 密码(字符串) - 必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。...列层级:列权限适用于一个给定表中的单一列,mysql.columns_priv 当使用REVOKE时,您必须指定与被授权列相同的列。
-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格) 连接与断开服务器 mysql -h 地址 -P 端口...-- MySQL、数据库、表、字段均可设置编码 -- 数据编码与客户端编码不需一致 SHOW VARIABLES LIKE 'character_set_%' -- 查看所有字符集编码项...不同的编码,所占用的空间不同。 char,最多255个字符,与编码无关。 varchar,最多65535字符,与编码有关。...] 密码(字符串) - 必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。...列层级:列权限适用于一个给定表中的单一列,mysql.columns_priv 当使用REVOKE时,您必须指定与被授权列相同的列。
领取专属 10元无门槛券
手把手带您无忧上云