主要:

  1. 基础
  2. 字段类型



基础

  基本概念

  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

  数据库操作的基本模式(流程)

  1. step 1: 建立连接:身份认证
  2.  
  3. step 2: 客户端发送sql命令
  4.  
  5. step 3: 服务端执行命令,返回结果
  6.  
  7. step 4: 客户端接收结果并显示
  8.  
  9. step 5: 断开连接

【点击查看】数据库操作的基本模式(流程)

  mysql系统级操作

    安装与配置 【略】

  启动与停止mysql数据库服务

      命令模式【管理员】: -- 非管理员才做可能发生 提示 “发生系统错误 5”

  1. 启动:net start mysql
  2.  
  3. 停止:net stop mysql

      服务模式:通过服务来启动或停止     控制面板》管理工具》服务》mysql   启动/停止

  登录与退出:

       首先设置mysql环境变量

  1. 登录:
  2. 形式1 mysql -h 服务器地址 -u 用户名 -p -P 端口号
  3.  
  4. 形式2 mysql --host=服务器地址 --user=登录名 --port=端口号 --password
          默认端口: 3306
  5.  
  6. 退出:
  7. exit quit

  备份与恢复数据

      通常是用于数据库的“迁移”:将某台数据库服务器中的某个库,“搬迁”到另一个数据库服务器中去

      也常用于数据的“安全备份”:就是数据库实际运行中,防止数据库系统崩溃,防止数据库被黑客入侵

  1. 备份 【管理员身份】:
  2. mysqldump -h 服务器地址 -u 登录名 -P 端口号 -p 数据库名>完整路径的文件名
  3.  
  4. 恢复:
  5. 未登录恢复:
  6. mysql -h 服务器地址 -u 登录名 -P 端口号 -p 数据库名<完整路径的sql文件名
  7.  
  8. 登录后恢复:
  9. source '备份数据文件的完整路径'

【点击查看】备份与恢复形式

  基础语法

    1)  注释:

  1. 单行注释:
  2. #注释内容
  3.  
  4. -- 注释内容(-- 与注释之间有一个空格)
  5.  
  6. 多行注释
  7. /*注释内容*/
  8. 注(经过测试): 如果是 /*! 语句 */; 这个仍然会执行 /*!show tables */;

【点击查看】单行注释与多行注释

    2)语句行

      结束符: 分号(默认)

      修改结束符:   delimiter 结束符   如: delimiter //

    3)大小写

      不区分大小写

      但对于区分大小写的系统中,生成文件或文件夹的操作是区分大小写的  如: 创建库,表会生成对应目录和文件

        文件或目录在Linux,Unix中严格区分大小写。 windows中不区分大小写

    4) 命名规则

          字母和下划线,不用数字开头。

       如果是非常规字符,要使用反引号

         数据库名,表名,视图名,字段名,函数名,过程名通常使用小写,并使用下划线分割法

字段类型

  1) 形式:

  1. 字段名 类型名 [(M)] [unsigned] [zerofill]

     M:显示长度 与zerofil结合使用  不够长度左侧自动补0
                设置zerofill, 则表示该字段同时具备unsigned。

  2) 主要分3类

    数值型,字符型,时间型

  数值型

    1) 整数型:    

  1. 类型                所占字节数
    tinyint      1字节
  2. smallint 2字节
  3. mediumint 3字节
  4. int 4字节
  5. bigint 8字节
  1. create table tab_int(
  2. f1 int unsigned,
  3. f2 tinyint zerofill,
  4. f3 bigint(10) zerofill
  5. );
  6. insert into tab_int (f1,f2,f3) values( 15, 15, 15);
  7. 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

  1. decimal(总的位数,小数位数)
  1. create table tab_float(
  2. f1 float,
  3. f2 double,
  4. f3 decimal(10,3) -- 总数10位数, 小数3
  5. );
  6. insert into tab_float (f1, f2, f3) values
  7. (123.456789, 123.456789, 123.456789),
  8. (123456789, 123456789, 1234567),
  9. (123456789, 123456789, 1234567.11);
  10. 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个选项

    写入数据形式: 可以用选项字符串并用逗号隔开, 也可以使用对应的“数字的和”

    适用于: 存储表单界面中的 “多选项值”

  1. -- enum set 使用Demo
  2. create table enum_set(
  3. id int unsigned auto_increment primary key,
  4. gender enum('男','女'),
  5. fav set('篮球','足球','跑步','读书','写字')
  6. );
  7.  
  8. insert into enum_set (id, gender, fav) values(null,'男','篮球'),(null,1,1); -- 两行enum字段一致
  9.  
  10. insert into enum_set (id, gender, fav) values(null, '男', '篮球,跑步,写字'),(null,1,19); -- 两行set字段一致
  11.  
  12. -- 篮球=1 跑步=2 写字=16 ==> 对应的和19
  13.  
  14. 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()

  1. -- 时间类型数据表
  2. create table tab_time(
  3. dt datetime,
  4. d date,
  5. t time,
  6. y year,
  7. ts timestamp -- 该字段不需要插入数据,系统自动填入
  8. );
  9.  
  10. 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());
  11.  
  12. 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-基础语法-字段类型的更多相关文章

  1. MySQL中TEXT与BLOB字段类型的区别

    这篇文章主要介绍了MySQL中TEXT与BLOB字段类型的区别,本文总结了6大区别,需要的朋友可以参考下   在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程 ...

  2. Mysql,Oracle与Java字段类型映射关系

    Mysql,Oracle与Java字段类型映射关系 参考相关博文 MySQL/Oracle字段类型 Java字段类型 最大长度 BIT java.lang.Boolean 1 BLOB java.la ...

  3. odoo开发基础--模型之基本字段类型

    定义模型的时候,和python的其他框架类似,可以对比Django,同样是一个模型即:一个class对应生成数据库中的一张表, 只是odoo的继承机制比较复杂一点,在日常的开发中,定义模型的时候, 基 ...

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

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

  5. mysql学习之路_字段类型与属性2

    字段属性: 主键,唯一键,自增长. 主键: Primary key 主要的键,一张表只能有一个字段能使用对应的键,用来唯一约束该字段里面的数据不能重复,称之为主见. 一张表最多只有一个主键. 增加主键 ...

  6. mysql学习之路_字段类型与属性

    回顾 数据库基本知识:关系型数据库与非关系型数据库 关系型数据库:安全(磁盘) 非关系型数据库:高效(内存) 关系型数据库:建立在关系模型上的数据库, 数据结构:二维表(浪费空间) 数据库操作指令:s ...

  7. MySQL数据库修改字段名、字段类型、字段长度

    1.MySQL数据库中,修改字段SQL如下: alter table AppVersion change version versionCode varchar() DEFAULT NULL COMM ...

  8. js基础(常用语法、类型、函数)

    js函数集 ·字符串(String)  1.声明  var myString = new String("Every good boy does fine.");  var myS ...

  9. mysql 关于日期时间的字段类型

    mysql日期和时间类型 mysql有5种表示时间值的日期和时间类型,分别为.DATE,TIME,YEAR,DATETIME,TIMESTAMP. TIMESTAMP类型有专有的自动更新特性, TIM ...

随机推荐

  1. ANR android

    1.android ANR产生原因和解决办法 2.Android ANR异常及解决方法 3.Android ANR 分析解决方法 4.[原创]Android 系统稳定性 - ANR(一) 5.[原创] ...

  2. Siebel界面的搭建

    Siebel界面的初步搭建都是基于Siebel Tools工具来创建的,其搭建步骤: 1. 首先先创建一个Project项目,点击project--->点 new Record--->输入 ...

  3. percona mysql 5.7再centerOS 7上的安装

    第一次测试装的,还不是很熟练.很多东西不太对,以后还回改进 一.卸载包检查是否安装有MySQL Server: rpm -qa | grep mysql rpm -qa | grep mariadb ...

  4. windows默认共享的打开和关闭?

    windows默认共享的打开和关闭?   Windows启动时都会默认打开admin$ ipc$ 和每个盘符的共享,对于不必要的默认共享,一般都会把它取消掉,可当又需要打开此默认共享时,又该从哪里设置 ...

  5. laravel + haproxy + https 后生成分页 url 非 https 解决办法

    更合适的解决办法:在 AppServiceProvider boot 方法中使用 \URL::forceScheme('https'); 即可. 背景 近日对所有的客户都上线了 https ,本来在 ...

  6. Nginx+Tomcat+Session 高性能群集搭建

    随着IT行业的发展,linux服务器在企业中应用广泛,人们对linux上的应用服务要求也越来越高,早先的apache服务器.apache有优点也 有不足,apache渐渐不能满足人们的要求,目前ngi ...

  7. oracle_union_operator

    SQL: UNION Operator This SQL tutorial explains how to use the SQL UNION operator with syntax and exa ...

  8. 实验:将系统进程映射移到 Python 字典中

    参考官方文档,测试下列代码,把oracle的进程映射到python的字典中: [oracle@ycr python]$ more pro_get.py import reimport subproce ...

  9. js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...

  10. Template Pattern & Strategy Pattern

    详细见<C++设计模式 23种设计模式.pdf 55页> 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算 ...