Mysql基础1-基础语法-字段类型
主要:
- 基础
- 字段类型


基础
基本概念
1) 数据库分类
层次数据库,网状数据库,关系数据库
常见:SQL Server, Oracle,infomix,sybase,ibmDB2,Mysql
2)数据库存储的本质和表现:
存储本质: 将 数据值 通过数据管理系统进行有序的存储
存储表现:
每个数据库对应一个文件夹
每个数据表对应一个或多个文件
3)mysql数据库的各层次关系:
1个数据库系统包含有多个数据库
1个数据库可以有多张数据表
一个数据表可以有多个字段(数据项)和多行数据(记录)
4)基本概念
sql :是关系数据库的 语言标准。 Struct Query Language 结构化查询语言
数据库database: 存储各种数据data
数据库管理系统dbms: Database Management system
数据表table,字段field,列column,行row,记录record
数据库操作的基本模式(流程)
step 1: 建立连接:身份认证 step 2: 客户端发送sql命令 step 3: 服务端执行命令,返回结果 step 4: 客户端接收结果并显示 step 5: 断开连接
【点击查看】数据库操作的基本模式(流程)
mysql系统级操作
安装与配置 【略】
启动与停止mysql数据库服务
命令模式【管理员】: -- 非管理员才做可能发生 提示 “发生系统错误 5”
启动:net start mysql 停止:net stop mysql
服务模式:通过服务来启动或停止 控制面板》管理工具》服务》mysql 启动/停止
登录与退出:
首先设置mysql环境变量
登录:
形式1: mysql -h 服务器地址 -u 用户名 -p -P 端口号 形式2: mysql --host=服务器地址 --user=登录名 --port=端口号 --password
默认端口: 3306 退出:
exit 或 quit
备份与恢复数据
通常是用于数据库的“迁移”:将某台数据库服务器中的某个库,“搬迁”到另一个数据库服务器中去
也常用于数据的“安全备份”:就是数据库实际运行中,防止数据库系统崩溃,防止数据库被黑客入侵
备份 【管理员身份】:
mysqldump -h 服务器地址 -u 登录名 -P 端口号 -p 数据库名>完整路径的文件名 恢复:
未登录恢复:
mysql -h 服务器地址 -u 登录名 -P 端口号 -p 数据库名<完整路径的sql文件名 登录后恢复:
source '备份数据文件的完整路径'
【点击查看】备份与恢复形式
基础语法
1) 注释:
单行注释:
#注释内容 -- 注释内容(-- 与注释之间有一个空格) 多行注释
/*注释内容*/
注(经过测试): 如果是 /*! 语句 */; 这个仍然会执行 如 /*!show tables */;
【点击查看】单行注释与多行注释
2)语句行
结束符: 分号(默认)
修改结束符: delimiter 结束符 如: delimiter //
3)大小写
不区分大小写
但对于区分大小写的系统中,生成文件或文件夹的操作是区分大小写的 如: 创建库,表会生成对应目录和文件
文件或目录在Linux,Unix中严格区分大小写。 windows中不区分大小写
4) 命名规则
字母和下划线,不用数字开头。
如果是非常规字符,要使用反引号
数据库名,表名,视图名,字段名,函数名,过程名通常使用小写,并使用下划线分割法
字段类型
1) 形式:
字段名 类型名 [(M)] [unsigned] [zerofill]
M:显示长度 与zerofil结合使用 不够长度左侧自动补0
设置zerofill, 则表示该字段同时具备unsigned。
2) 主要分3类
数值型,字符型,时间型
数值型
1) 整数型:
类型 所占字节数
tinyint 1字节
smallint 2字节
mediumint 3字节
int 4字节
bigint 8字节
create table tab_int(
f1 int unsigned,
f2 tinyint zerofill,
f3 bigint(10) zerofill
);
insert into tab_int (f1,f2,f3) values( 15, 15, 15);
select * from tab_int;
【点击查看】整数型测试Demo
2) 小数型
单精度浮点型float: (单精度 4个字节,精度6~7位有效数字)
双精度double: (双精度 8个字节,约20个有效数字,别名:real)
定点型: decimal (别名: dec numeric fixed, 整数最大65位,小数最多30位)
如果整数部分超过最大设定的位数,则会自动设置为最大值。 如 decimal(5,2), 插入数据1234.11 则结果为 999.99
decimal(总的位数,小数位数)
create table tab_float(
f1 float,
f2 double,
f3 decimal(10,3) -- 总数10位数, 小数3位
);
insert into tab_float (f1, f2, f3) values
(123.456789, 123.456789, 123.456789),
(123456789, 123456789, 1234567),
(123456789, 123456789, 1234567.11);
select * from tab_float;
【点击查看】浮点型测试Demo

字符型
字符型要使用引号引起来
vachar类型:
概念: 变长字符串,使用时必须设定其长度。
最大长度: 理论最大65535个字符,实际最大只能是65533个字符
原因: 一个表格的一行 的数据存储最大容量限制: 65535
编码不同则最大长度也不同:
存储中文 gbk: 最大长度是 65533/2 个
存储中文 utf8: 最大长度是 65533/3 个
实际存储: 存储长度由存储内容决定,设置值为最多可存储的字符个数
char类型
概念: 定长字符串 , 使用时一般需要设置其长度。 不设置长度,则默认是1.
最大长度: 255个
实际存储: 如果少于设定长度, 会以空格填满
适用于: 存储的数据长度是固定长度的字符。 如: 邮编, 手机号码等
enum 类型
概念: (枚举)单选项字符串数据类型, 使用时,需要给定 固定的几个选项。 存储的时候,只存储其中一个值
形式: enum("选项1", "选项2",....)
实际存储: 字符串选项值对应数字: 1,2,3,4,5,.. 最多65535个选项
写入数据形式: 可以是该选项字符串本身,也可以用对应的数字
适用于: 存储表单界面中的 “单选项值”
set 类型
概念: 多选项字符串数据类型, 使用时,需要给定 固定的几个选项。 存储的时候,存储其中若干个值
形式: set("选项1", "选项2",....)
实际存储: 字符串选项值对应数字 1,2,4,8,16... 最多64个选项
写入数据形式: 可以用选项字符串并用逗号隔开, 也可以使用对应的“数字的和”
适用于: 存储表单界面中的 “多选项值”
-- enum set 使用Demo
create table enum_set(
id int unsigned auto_increment primary key,
gender enum('男','女'),
fav set('篮球','足球','跑步','读书','写字')
); insert into enum_set (id, gender, fav) values(null,'男','篮球'),(null,1,1); -- 两行enum字段一致 insert into enum_set (id, gender, fav) values(null, '男', '篮球,跑步,写字'),(null,1,19); -- 两行set字段一致 -- 篮球=1 跑步=2 写字=16 ==> 对应的和19 select * from enum_set;
【点击查看】set与enum操作Demo

text 类型
概念: 长文本字符类型。其中存储的数据不占表格中的数据容量限制
其他同类型: smalltext tinytext longtext
其他类型
binary类型: 定长二进制字符串类型。 存储二进制值
varbinary 类型: 变长二进制字符串类型。存储二进制值
blob 类型:二进制数据类型。 存储二进制值。 适用于存储图片,视频,其他文件等。
时间型
时间类型: 要用引号引起来
1) datetime 类型: 时间日期类型
2) date类型: 日期类型
3) time 类型:时间类型
4) year 类型:年份类型
5) timestamp 类型: 时间戳类型。 是一个数字。 不需要手动插入数据,系统自动填入
js中获取事件戳: gettime() ; 单位是毫秒
php中获取时间戳: time(); 单位是秒
mysql中: 自动获得时间戳的数据值,既 now()
-- 时间类型数据表
create table tab_time(
dt datetime,
d date,
t time,
y year,
ts timestamp -- 该字段不需要插入数据,系统自动填入
); insert into tab_time (dt,d,t,y) values('2018-07-07 24:24:24', '2018-07-07','24:24:24',''),(now(),now(),now(),now()); select * from tab_time;
【点击查看】时间类型Demo

其他类型
1) 位类型 bit
使用形式: bit[(M)] 其中M是1-64的数字。 表示使用多少二进制数字来存储数据
插入形式: b 'value' 如 b '101'
2) 序列类型 serial
实质是 bigint unsigned not null auto_increment unique 的一个别名
3) 布尔类型 bool
实质是 tinyint(1) 的一个同义词。 其值为0表示false, 否则表示true
Mysql基础1-基础语法-字段类型的更多相关文章
- MySQL中TEXT与BLOB字段类型的区别
这篇文章主要介绍了MySQL中TEXT与BLOB字段类型的区别,本文总结了6大区别,需要的朋友可以参考下 在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程 ...
- Mysql,Oracle与Java字段类型映射关系
Mysql,Oracle与Java字段类型映射关系 参考相关博文 MySQL/Oracle字段类型 Java字段类型 最大长度 BIT java.lang.Boolean 1 BLOB java.la ...
- odoo开发基础--模型之基本字段类型
定义模型的时候,和python的其他框架类似,可以对比Django,同样是一个模型即:一个class对应生成数据库中的一张表, 只是odoo的继承机制比较复杂一点,在日常的开发中,定义模型的时候, 基 ...
- MySQL数据库 存储引擎,创建表完整的语法,字段类型,约束条件
1.存储引擎 - 存储引擎是用于根据不同的机制处理不同的数据. - 查看mysql中所有引擎: - show engines; - myisam: 5.5以前老的版本使用的存储引擎 - blackho ...
- mysql学习之路_字段类型与属性2
字段属性: 主键,唯一键,自增长. 主键: Primary key 主要的键,一张表只能有一个字段能使用对应的键,用来唯一约束该字段里面的数据不能重复,称之为主见. 一张表最多只有一个主键. 增加主键 ...
- mysql学习之路_字段类型与属性
回顾 数据库基本知识:关系型数据库与非关系型数据库 关系型数据库:安全(磁盘) 非关系型数据库:高效(内存) 关系型数据库:建立在关系模型上的数据库, 数据结构:二维表(浪费空间) 数据库操作指令:s ...
- MySQL数据库修改字段名、字段类型、字段长度
1.MySQL数据库中,修改字段SQL如下: alter table AppVersion change version versionCode varchar() DEFAULT NULL COMM ...
- js基础(常用语法、类型、函数)
js函数集 ·字符串(String) 1.声明 var myString = new String("Every good boy does fine."); var myS ...
- mysql 关于日期时间的字段类型
mysql日期和时间类型 mysql有5种表示时间值的日期和时间类型,分别为.DATE,TIME,YEAR,DATETIME,TIMESTAMP. TIMESTAMP类型有专有的自动更新特性, TIM ...
随机推荐
- Hive的UDF(用户自定义函数)开发
当 Hive 提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function). 测试各种内置函数的快捷方法: 创建一个 dual 表 ...
- MySQL几个join
1.因为关系型数据库的基本原理,是基于“关系代数”.最重要的一类关系代数,就是2个集合之间的运算. 从集合运算的视角,去理解SQL中的几个常用join (1)inner join (2)left jo ...
- YUV数据详解
http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html YUV格式有两大类:planar和packed.对于planar的YUV ...
- Locust性能测试2 分布式运行
locust分布式可以是本机多进程,也可以是本机作为master,其他机器作slave. 试一下本机的多进程运行: 1 控制台输入 locust -f 脚本路径 --master 2 打开另一个控 ...
- thrift基本概念和实例
一.thrift可以做什么 thrift是一个跨语言通信的工具,支持的语言多,而且还提供服务器端的众多网络模型,使服务端的开发可以只专于服务本身的逻辑. 二.thrift重要概念 1.processo ...
- mongorc.js文件
当启动的时候,mongo检查用户HOME目录下的一个JavaScript文件.mongorc.js.如果找到,mongo在首次显示提示信息前解析.mongorc.js的内容.如果你使用shell执行一 ...
- HTTP 状态码 301 302
301 Moved Permanently被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为 ...
- POJ 3088 斯特林
题意:有一个n个按钮的锁,按下一些按钮打开门,有多少开门方式,其中,一些按钮可以选,可以不选,选中的按钮 可以分成一些集合,集合之间无序,是同时按下的. 分析: 1.首先选择 i 个按钮,组合数 2. ...
- [JSOI2010]部落划分
嘟嘟嘟 一道不错的题,解法不少. 最易于理解的是最小生成树的做法: 首先每两个点之间都连一条长度为这两个点的距离的边,形成完全图. 然后跑最小生成树,直到剩k个联通块,这时候合并成k - 1个联通块的 ...
- T-SQL 基础 2
运行结果: while 循环 运行结果: 运行结果 : if 判断语句 计算 1到100的基数 运行结果 1到100的偶数 运行结果 局部变量前缀是 @ 全局变量(包括系统变量) 前缀是 @@