当前位置: 首页 > news >正文

MySQL-数据类型和DDL

文章目录

    • 一些相关的概念
    • SQL分类
      • 数据类型
        • 数值类型
        • 字符类型
        • 日期类型
      • DDL
          • 查询
          • 创建
          • 修改

一些相关的概念

DB(Data Base):数据库,是存储数据的仓库,数据是有组织的进行存储。

DBMS(Data Base Management System):数据库管理系统,操纵和管理数据库的大型软件

MySQL酱紫的。

SQL(Structured Query Language):操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。

RDBMS:关系型数据库,建立在关系模型基础上,有多张相互连接的二维表组成的数据库。

用表存储数据的,就是关系型数据库。

启动MySQLnet start mysql80

停止MySQLnet stop mysql80

(PS:MySQL 开机自动启动)

客户端连接mysql -u root -p

(上述方法需配置环境变量)

SQL分类

分类英格利斯说明
DDLData Definition Language定义语言,用来定义数据库对象(数据库,表,字段)。
DMLData Manipulation Language操作语言,对数据库中的数据进行增删改。
DQLData Query Language查询语言,查询数据库中表的记录。
DCLData Control Language控制语言,创建数据库用户、控制数据库的访问权限。

数据类型

数值类型

类型大小有符号范围无符号范围
TINYINT1byte(-127,128)(0,255)
SMALLINT2bytes(-32768,32767)(0,65535)
MEDIUMINT3bytes(-8388608,8388607)(0,16777215)
INT4bytes(-2147483648,2147483647)(0,4294967295)
BIGINT8bytes(- 2 63 2^{63} 263, 2 63 2^{63} 263-1)(0, 2 64 2^{64} 264-1)
FLOAT4bytes(-3.402823E+38,3.402823E+38)0和(1.175494E-38,3.402823E+38)
DOUBLE8bytes(-1.797693E+308,1.797693E+308)0和(2.225073E-308,1.797693E+308)
DECIMAL-依赖M(精度)和D(标度)的值依赖M(精度)和D(标度)的值

DECIMAL是用于精确表述小数的,精度表示整个的长度,标度表示小数所占的长度。

123.45 M=5 D=2

在使用DOUBLE的时候,需要指定整个的长度以及小数所占的长度,即M与D。

sorce double(4,1)# M=4 100.0,D=1 0.1

字符类型

类型大小(byres)描述
CHAR0~255定长字符串
VARCHAR0~65535变长字符串
TINYBLOB0~255不超过255个字符的二进制数据
TINYTEXT0~255短文本字符串
BLOB0~65535二进制形式的长文本数据
TEXT0~65535长文本数据
MEDIUMBLOB0~16777215二进制的中等长度文本数据
MEDIUMTEXT0~16777215中等长度文本数据
LONGBLOB0~4294967295二进制的极大文本数据
LONGTEXT0~4294967295极大文本数据

BLOB:二进制数据,相对使用较少;TEXT:文本数据

定长字符串与变长字符串

  • char(10)预留出10个字符的空间,未填部位采用空格补位。
  • varchar(10)根据当前存储的字符计算存储需要空间,最多不超过10个字符 。
  • char的性能更好(没有多余的计算空间)

日期类型

类型大小格式描述
DATE3YYYY-MM-DD日期值
TIME3HH:MM:SS时间值or持续时间
YEAR1YYYY年份值
DATETIME8YYYY-MM-DD HH:MM:SS混合日期and时间值
TIMESTAMP4YYYY-MM-DD HH:MM:SS混合日期and时间值、时间戳

DATETIMETIMESTAMP的时间表示范围不同:TIMESTAMP至2038-01-19 03:14:07,DATETIME至9999-12-31 23:59:59。DATETIME更常用

DDL

  1. 查询所有数据库:SHOW DATABASES;
  2. 查询当前数据库:SELECT DATABASE();
  3. 创建:CREATE DATABASE[IF NOT EXISTS]数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则]
  4. 删除:DROP DATABASE[IF EXISTS]数据库名;
  5. 使用:USE 数据库名

查询

查询表操作(前提是:已经进入数据库内)

  1. 查询当前数据库所有表:show tables
  2. 查询表结构:desc 表名
  3. 查询指定表的建表语句:show create table 表名
创建

创建表结构

create table demo01(
    -> id int comment '学号',
    -> name varchar(50) comment '姓名',
    -> age int comment '年龄',
    -> gender varchar(1) comment '性别'
) comment '学生表';

create table employee(
	id int comment '编号',
    worknum varchar(10) comment '员工工号',
    name varchar(10) comment '员工姓名',
    gender char(1) comment '性别',
    age tinyint unsigned comment '年龄',
    idcard char(18) comment '身份证号',
    enterdate date comment '入职时间'
)comment '员工表';

修改

修改表结构

  1. 添加字段:alter table 表名 add 字段名 类型(长度) [comment 注释][约束];
  1. 修改字段名和字段类型:alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束];

  1. 删除字段:alter table 表名 drop 字段名;
  1. 修改表名:alter table 表名 rename to 新表名;

  1. 删除表:drop table [if exists] 表名
  2. 删除指定表,并重新创建该表:truncate table 表名;

(truncate实际上是将表中的数据删除,但是留下了表结构,相当于格式化?)

相关文章:

  • Linux学习笔记6 - 系统启动流程
  • 动态数组写模板类
  • 代码错误与检查简短教程(新手适用)
  • Java Design Patterns 之API 网关模式
  • vue框架的基础语法之方法和事件的绑定,样式绑定,循环渲染,条件渲染
  • 项目第一天
  • go get 拉取报错The project you were looking for could not be found的解决方法
  • 算法题练习——NC15 求二叉树的层序遍历、NC88 寻找第K大
  • java基于springboot+vue的汉服推广与交流平台
  • 6面向对象中的继承
  • 【非正式协议 Objective-C语言】
  • Java面试题09-ThreadLocal的底层原理
  • Golang依赖管理(GOPATH->vendor->Go Module)
  • java计算机毕业设计网上报名及成绩查询系统源码+数据库+系统+lw文档+mybatis+运行部署
  • 机器学习泛化误差
  • 【Amaple教程】5. 插件
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2017 年终总结 —— 在路上
  • angular2 简述
  • Java精华积累:初学者都应该搞懂的问题
  • jQuery(一)
  • php的插入排序,通过双层for循环
  • Python_网络编程
  • Python打包系统简单入门
  • Sass Day-01
  • WebSocket使用
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 基于 Babel 的 npm 包最小化设置
  • 写代码的正确姿势
  • 一、python与pycharm的安装
  • postgresql行列转换函数
  • 阿里云ACE认证之理解CDN技术
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​Java并发新构件之Exchanger
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (2)(2.10) LTM telemetry
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (八十八)VFL语言初步 - 实现布局
  • (编译到47%失败)to be deleted
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (三)docker:Dockerfile构建容器运行jar包
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转) 深度模型优化性能 调参
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .gitattributes 文件
  • .NET DevOps 接入指南 | 1. GitLab 安装