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

MySQL学习笔记1

MySQL

    • 一、数据存储过程
    • 二、数据类型
    • 三、创建和修改表

一、数据存储过程

在MySQL中,一个完整的数据存储过程总共有4步,分别是创建数据库、确认字段、创建数据表、插入数据
在这里插入图片描述

MySQL数据表由行与列组成,一行就是一条数据记录, 每一条数据记录都被分成许多列,一列就叫一个字段。每个字段都需要定义数据类型,这个数据类型叫做字段类型。

主键能减少数据的唯一性,减少数据错误。一个数据表中只能有一个主键。主键的特性:

  • 唯一,不重复
  • 不可为空
  • 必须可以唯一标识数据表中的数据

MySQL以分号来识别一条SQL语句结束,所以,写的每一条SQL语句的最后,都必须有一个分号,否则,MySQL会认为这条语句没有完成,提示语法错误。

--创建数据库
CREATE DATABASE demo;
--删除数据库
DROP DATABASE demo;
--查看数据库
SHOW DATABASES;--创建数据表
CREATE TABLE demo.test
(
name text,
photo text,
age int		--最后一个字段后面不加逗号
);--查看表结构
DESCRIBE demo.test;
--选择数据库
USE demo;
--查看所有表
SHOW TABLES;
--添加主键
ALTER TABLE demo.test
ADD COLUMN id int PRIMARY KEY AUTO_INCREMENT;
--向表中添加数据
INSERT INTO demo.test
(barcode,goodsname,price)
VALUES('001','本',3)

二、数据类型

浮点数和定点数的特点:

  • 浮点类(Float,Double)型取值范围大,但是不精准,适用于需要取值范围大,又可以容忍微小误差的科学计算场景(比如计算化学、分子建模、流体动力学等) ;
  • 定点数(Decimal)类型取值范围相对小,但是精准,没有误差,适合于对精度要求极高的场景(比如涉及金额计算的场景)。
    Decimal(5,2):总共占5位,小数部分占两位

文本类型:

  • CHAR(M):固定长度字符串
  • VARCHSR(M):可变长度字符串
  • TEXT:字符串,由于长度不确定,所以不允许TEXT类型做主键。
  • ENUM:枚举类型
  • SET

日期与时间类型:

  • 常用DATETIME

相关SQL语句:

--修改字段类型:
ALTER TABLE demo.goodsmaster
MODIFY COLUMN price DOUBLE;
--计算字段和函数:
SELECT SUM(price)
FROM demo.goodsmaster;

三、创建和修改表

在创建表的时候,字段名称要避开MySQL的系统关键字。原因是MySQL系统保留的关键字都有特定的含义,如果作为字段名称出现在SQL语句中,MySQL会把这个字段名称理解为系统关键字,从而导致SQL语句无法正常运行。

约束
默认约束,主键约束、外键约束、非空约束、唯一性约束、自增约束等

常用创建表的SQL语句:

CREATE TABLE
(
字段名 字段类型 PRIMARY KEY
);
CREATE TABLE
(
字段名 字段类型 NOT NULL
);
CREATE TABLE
(
字段名 字段类型 UNIQUE
);
CREATE TABLE
(
字段名 字段类型 DEFAULT);
--自增的条件:自增的字段必须是整数类型
CREATE TABLE
(
字段名 字段类型 AUTO_INCREMENT
);
--在一个已经存在的表基础上,创建一个结构相同的新表
CREATE TABLE demo.testhist LIKE demo.test;
--修改表的相关语句
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型;
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 FIRST|AFTER 字段名;
ALTER TABLE 表名 MODIFY字段名 字段类型 FIRST|AFTER 字段名;

相关文章:

  • java八股——常见设计模式
  • CSS面试题常用知识总结day03
  • 贪心算法|53.最大子序和
  • WinForm用微软打包工具打包
  • 外包干了25天,技术倒退明显
  • vue element动态添加删除数据div
  • Vue - 你知道Vue中key的工作原理吗
  • opencv如何寻找图片轮廓
  • LeetCode 19.删除链表的倒数第N个结点
  • 《青少年成长管理2024》028 “成长七要素之五:能力”1/5
  • Git - 如何重置或更改 Git SSH 密钥的密码?
  • OpenHarmony实战:CMake方式组织编译的库移植
  • MySQL - MySQL架构设计
  • Linux——用户管理,文件压缩命令
  • 思科数通设备命令大全
  • express + mock 让前后台并行开发
  • V4L2视频输入框架概述
  • Vue.js源码(2):初探List Rendering
  • 当SetTimeout遇到了字符串
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 目录与文件属性:编写ls
  • 前端临床手札——文件上传
  • 前端面试之CSS3新特性
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 数据科学 第 3 章 11 字符串处理
  • 我的业余项目总结
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (03)光刻——半导体电路的绘制
  • (1)Android开发优化---------UI优化
  • (16)Reactor的测试——响应式Spring的道法术器
  • (2)nginx 安装、启停
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (zt)最盛行的警世狂言(爆笑)
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (九)c52学习之旅-定时器
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (十)T检验-第一部分
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)Oracle存储过程编写经验和优化措施
  • (转)ORM
  • (转载)深入super,看Python如何解决钻石继承难题
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net core控制台应用程序初识
  • .net framework profiles /.net framework 配置
  • .NET Reactor简单使用教程
  • .net 设置默认首页
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net分布式压力测试工具(Beetle.DT)
  • /dev/sda2 is mounted; will not make a filesystem here!