1.字符编码与配置文件

1.\s:查看当前MySQL相关信息:当前用户、版本、编码、端口号。
"""
Server characterset、Db characterset、Client characterset、Conn.characterset每个编码都不一样,我们需要手动改成utf8,注:MySQL5.6及之前的版本编码需要人为统一,之后的版本已经全部默认统一
"""

2.永久修改步骤:
2.1默认的配置文件是my-default.ini,拷贝上述文件并重命名为my.ini
2.2拷贝以下的代码:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
"""
PS:
1.utf8mb4能够存储表情,比utf8功能更强大
2.utf8与utf-8是有区别的,MySQL中只有utf
8"""
2.3修改了配置文件中关于[mysqld]的配置,需要重启服务端

2.数据库存储引擎

1.存储引擎:数据库针对数据采用的多种存取方式。

2.查看常见的存储引擎的方式:show engines;

3.需要了解的四个存储引擎:
'''MySQL中忽略大小写'''
3.1 MyISAM:MySQL5.5之前默认的存储引擎,特点:存储速度快,但是功能较少,安全性较低。 3.2 InnoDB:MySQL5.5之后的存储引擎,支持事务、行锁、外键等操作,存取速度没有MyISAM快,但是安全性更高。
"""
事务:某些操作因为系统原因没有及时更新,例如银行转账转款一端余额减少,收款一段余额未增加,事务有能力让余额回退到操作前的阶段。 行锁:比如共享文档,有人在操作某一行的时候其他人是无法操作的
"""
3.3 Memory:基于内存存取数据,仅用于临时表数据存取。 3.4 BlackHole:任何写入的数据都会立刻丢失。

3.创建表的完整语法

1.语法:create table 表名(
字段名 字段类型(数字) 约束条件,
字段名 字段类型(数字) 约束条件,
字段名 字段类型(数字) 约束条件
)
注意:
1.字段名和字段类型是必须要有的
2.数字和约束条件是可以没有的
3.约束条件也可优选多个,空格隔开即可
4.最后一行结尾不能加逗号

4.字段类型之整形

mysql中的整形有以下几种:
1.tinyint: 大小:1bytes(8个比特位,也就是8位0或1),unsigned情况下包含0,不包含256。
'''tinyint可以是正数也可以是负数,有正负号时结果是2**7有128种结果,无正负号时有2**8有256种结果。所以说tinyint表示的整形结果很有限'''
2.smallint: 大小:2bytes,包含正负号,unsigned情况下包含0,不包含65536。
'''2个字节是16位0或1,无正负号时可以表示65536种结果,有正负号时可以表示32768种结果'''
3.int、integer:大小4bytes,包含正负号,unsigned情况下包含0,不包含4294967296。
'''4个字节是32位0或1,无正负号可以表示4294967296种结果,有正负号可以表示2147483648种结果。结果无法表示电话号码'''
4.bigint:大小:8bytes,包含正负号,可以存储电话号码,unsigned情况下包含0,不包含18446744073709551616。

验证整形是否带正负号:


===

说明上述整形类型都是带符号的,可正可负。
我们也可以取消正负号,让所有比特位都用来表示数字:
创建方法: create table 表(字段名 tinyint unsigned)

"""
针对上述效果,添加超出范围的数字可以显示范围末端的数字,这种情况在5.7以上版本都会直接报错,而5.6版本需要手动修改
"""

5.严格模式

1.我们在使用数据库当中存储数据在范围外的数字应该直接报错,而不应该是添加一个范围末端的数字。针对上述需求,我们在5.6版本mysql做以下操作:
1.1首先输入show variables like '%mode%'查看sql_mode,发现里面没有添加任何东西。就是因为我们在新建my.ini配置文件时没有添加上去。

	1.2直接修配置文件,在my.ini中的服务端mysqld中加入:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES。再重启mysqld服务端(net stop mysql; net start mysql),发现我们再插入数字超出范围的时候会直接报错。


===

===

===

6.字段类型之浮点型

1.float:float(30,20)指总共30个位数字,小数点前面10位,小数点后面20个数。

2.double:double(30,20)指总共300个数.小数点后面20个数。

3.decimal:decimal(30,20)指总共300个数.小数点后面20个数。

根据以上操作得出结论,三者不同在于精度,精度decimal>double>float

7.字段类型之字符类型

1.char:也叫定长。
char(4):最多4个字符(英文和汉字都不能超过4个字符,字符和字节要分开),过长就报错,不够四个空格填充至4个。
2.varchar:也叫变长。
varchar(4):最多4个字符,过长就报错,不够几位则存几位。

"""
经过上述操作验证:长度不足4都是本身的长度,也就是说char(4)并没,没有我们刚才叙述的效果,那么我们换一种方式再来验证。
"""
3.查看长度:select char_length(字段名) from 表名;查看某个字段下数据的长度。

"""
验证得知:char(4)模式字符添加的数据值长度还是原来的长度,并没有填充至4个。这是因为默认情况下MySQL针对char的存储会自动填充空格和删除空格。
""" 4.char与varchar对比:
char
优势:整存整取、速度快()
劣势:浪费存储空间
'''如果添加字符长度不等的数据,底层会自动将数据补全至定长。取的时候也是按定长来取,存取方便'''
varchar
优势:节省存储空间
劣势:存取数据的速度较char慢
'''存的时候会自动保留原来的字符长度,节省空间,但是取出的时候不好取,因为字符长度都不一致。取出的时候可以在每个名字前面加上报头,通过把报头解析出每个名字的长度。所以varchar存取数据的速度较char慢'''
char与varchar的使用需要结合具体应用场景

8.数字的含义

1.数字在很多地方都是用来表示限制存储数据的长度,但是在整型中数字不是用来限制储存数据的长度。

"""
验证发现int后面的数字设置为3,依然可以添加4位的数字。所以整型后面的数字不是用来限制数字长度的
"""
2.通过验证得知,int后面加参数没有什么用而加上zerofill之后int后面的参数就可以控制显示位数。图中不足5位的会自动补全成5位,超过5位不超过int范围几位就是几位。

综上所述,整形后面不用加数字,如果不写数字创建整型的时候系统也会自动补全成11。

9.字段类型之枚举与集合

1.枚举:在生成表的过程中,很多场景需要让用户来选择选项,比如让用户选择性别。语法结构为:字段名 enum(选项1, 选项2, 选项3)。如果被限制的字段名添加的是enum后面括号中的选项时,就会正常添加。如果不是中间的某个选项,就会直接报错。

2.集合:在生成表的过程中,如果某一项内容有多个选项供用户多选,可以用几何来操作。语法结构为:字段名 set(选项1, 选项2, 选项3)。集合中的选项可以多选,也可以单选,多选时候逗号两边不能加空格。

10.字段类型之日期类型

1.日期类型:
datetime 年月日时分秒
date 年月日
time 时分秒
year 年
时间类型和python当中类似,目前我们用自定义的时间尝试插入表,后期可以用系统自动生成,无需我们操作。

MySQL-SQL语法、字段类型的更多相关文章

  1. SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理

    原文:SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理 SQL Server 字段类型 decimal(18,6)小数点前是几位? 不可否认,这是 ...

  2. Oracle/SQL 修改字段类型和长度

    标准SQL修改字段类型和长度语句: ALTER TABLE tableName modify column columnName 类型;例如Mysql的修改字段类型语句:alter table tes ...

  3. Mysql基础1-基础语法-字段类型

    主要: 基础 字段类型 基础 基本概念 1) 数据库分类 层次数据库,网状数据库,关系数据库 常见:SQL Server, Oracle,infomix,sybase,ibmDB2,Mysql 2)数 ...

  4. MySQL数据库 存储引擎,创建表完整的语法,字段类型,约束条件

    1.存储引擎 - 存储引擎是用于根据不同的机制处理不同的数据. - 查看mysql中所有引擎: - show engines; - myisam: 5.5以前老的版本使用的存储引擎 - blackho ...

  5. sql server2008 字段类型

    bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型, ...

  6. 转: sql server2008 字段类型详解

    bit 整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型,如果能 ...

  7. sql 数据字段类型

    bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型, ...

  8. MySQL开发——【字段类型、约束】

    创建数据表 基本语法: create table 数据表名称( 字段名称 字段类型 字段约束, ... )[表选项]; 字段类型 整数型 ,有符号型,可以表示 ,有符号型,可以表示 mediumint ...

  9. MySQL数据库中字段类型为tinyint,读取出来为true/false的问题

    由于MySQL中没有boolean类型,所以会用到tinyint类型来表示. 数据库一个表中有一个tinyint类型的字段,值为0或者1,如果取出来的话,0会变成false,1会变成true.

  10. SQL常用字段类型

    中文常用字段类型 1.   名称类    nvarchar(10) 2.   数量       int 3.   时间      date 4.   货币      money 5.   编号     ...

随机推荐

  1. .NET7 一个实用功能-中央包管理

    依赖管理是 NuGet 的核心功能.Nuget管理单个项目的依赖关系很容易.管理多项目解决方案的依赖关系可能会变得很困难,因为它们的规模和复杂性开始扩大. 在您管理许多不同项目的公共依赖项的情况下,您 ...

  2. AGC007C Pushing Balls —— 期望的神题

    Problem Link 题意: 序列上按顺序交错有 \(n\) 个球和 \(n+1\) 个洞,即 \(hole_1,ball_1,hole_2,ball_2,\dots,ball_n,hole_{n ...

  3. 思维分析逻辑 2 DAY

    目录 数据分析多元思维模型 微观能力 中观能力 宏观能力 电商平台分析 整体数据 漏斗模型 互联网金融分析 授信模型 了解芝麻信用分结构 数据源的数据变量 数据处理 游戏数据分析 常规指标 商业化指标 ...

  4. 4.django-模板

    在django中,模板引擎(DTL)是一种可以让开发者将服务端数据填充到html页面中的完成渲染的技术 模板引擎的原理分为以下三步: 在项目配置文件中指定保存模板文件的的模板目录,一般设置在项目根目录 ...

  5. 基于 MQ 的分布式 Serverless 多租任务处理系统架构演进

    本文作者:史明伟 , 阿里云智能高级技术专家. 1 Serverless 异步任务处理系统诞生和挑战 无论是对于云的开发者,还是尝试业务升级的企业客户,Serverless的三个概念 "极致 ...

  6. Huawei OJ 题解 - 31. 整数拆分 - Go 参考解答

    ## 简介- 详情:http://oj.rnd.huawei.com/problems/31/details- 难度:简单## 思路TODO## 用例TODO## 解答```gopackage mai ...

  7. C++初阶(封装+多态--整理的自认为很详细)

    继承 概念:继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类.继承呈现了面向对象程序设计的层次结构,体现了由简单 ...

  8. JavaEE Day13 Tomcat和Servlet

    之前是web基础,现在是web核心 今日内容: web相关概念的回顾 开源的web服务器软件:Tomcat Servlet:整个web技术的核心[Servlet入门] 一.web相关概念的回顾 1.软 ...

  9. 【day01】redis

    〇.思维导图 1.解决缓存数据库双写不一致 延迟双删(中间sleep一段时间)--写性能下降 内存队列:同一个key(线程)的所有操作丢到队列,串行化执行--实现麻烦&大量内存队列,队列宕机 ...

  10. Node.js躬行记(25)——Web自动化测试

    网页在提测流转给 QA 后,如何能帮他们更有效而准确的完成测试,是我一直在思考的一个问题. QA 他们会对网页编写测试用例,在提测之前会让我们将优先级最高的用例跑通,这在一定程度上能够避免频繁的返工, ...