MySQL基础(一)

学习数据库的目的:

  • 实现数据持久化到本地。
  • 使用完整的管理系统统一管理,可以实现结构化查询,方便管理。

一、数据库概述

数据库(DataBase)

为了方便数据的存储和管理,它将数据按照特定的 规则存储在磁盘上,就是一个存储数据的仓库 。

数据库的相关概念
++DB:数据库(DataBase)++ 存储数据的容器,它保存了一系列有组织的数据。
++DBMS:数据库管理系统(DataBase Management System++) 又称为数据库软件或数据库产品,用于创建或管理DB。

二、 SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以 及查询、更新和管理关系数据库系统 。

**SQL优点:**不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL 简单易学,灵活使用可以进行非常复杂和高级的数据库操作 。

三、DDL

设计表------ ++对于具体的某一个表,在创建之前,需要确定表的下列特征++:

  • 表名(表信息)
  • 表中的字段
  • 字段的数据类型和长度
  • 哪些约束

设计表的数据类型:

  • 整数
  • 浮点------decimal
    数据类型(M,D):
    M:精度,数据的总长度;
    D:标度,小数点后的长度
  • TEXT列字符字符串
    有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT
    它们的长度:

***主键:***在一张表中代表唯一的一条记录,不能为空,不能重复。

约束:

PRIMARY KEY 设置主键约束

NOT NULL 不能为空约束

UNIQUE 唯一性约束

检查约束 设置条件 外键约束

主键自动增长,设置为自动增长时,只能为整数类型 AUTO_INCREMENT

默认值 DEFAULT default_value

字段注释: comment '注释'

删除表,修改表名

删除表

DROP TABLE [if exists ]表名

修改表名

RENAME TABLE 旧表名 TO 新表名

复制表结构

CREATE TABLE 新表名 LIKE 被复制表

代码示例如下:

sql 复制代码
-- 创建数据库
CREATE DATABASE IF NOT EXISTS schooldb CHARSET utf8
-- 删除数据库
DROP DATABASE IF EXISTS schooldb

-- mysql中数据库一旦创建,名字不能修改

-- 修改数据库字符集
ALTER DATABASE schooldb CHARSET utf8

-- 创建表
-- 确定表名  学生信息表
-- 确定表中字段(列) 学号,姓名,性别,生日,电话,身高,注册时间
-- 确定字段(列)的数据类型   以及长度
-- 确定列的约束
-- 创建表语法

-- char(n) 定长的字符串  固定存储n个字符,长度如果不够n,默认补空格
-- VARCHAR(n) 可变长度的字符串  n是最大长度  如果只存储2个字符,实际占有2个空间位置
 CREATE TABLE student(
     number INT,
     NAME VARCHAR(6),
     gender CHAR(1),
     birthday DATE,
     phone VARCHAR(11),
     height DECIMAL(3,2),
     reg_time DATETIME
 )

-- 删除表结构
DROP TABLE student

-- 创建表  并添加约束规则
-- PRIMARY KEY 设置主键约束, 添加主键约束后,值就不能重复,一个表中只能有一个列是主键
   -- 主键列可以唯一的表示某一行数据 ,
   -- mysql中主键可以设置为自动增长 AUTO_INCREMENT
-- NOT NULL 不能为空约束
-- UNIQUE 唯一性约束
-- 检查约束 设置条件
CREATE TABLE student(
     number INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号主键',
     NAME VARCHAR(6) NOT NULL COMMENT '姓名',
     gender CHAR(1) NOT NULL COMMENT '性别',
     birthday DATE NOT NULL,
     phone VARCHAR(11) NOT NULL UNIQUE,
     height DECIMAL(3,2) CHECK(height<3),
     reg_time DATETIME
)
相关推荐
nvd1111 分钟前
Pytest 异步数据库测试实战:基于 AsyncMock 的无副作用打桩方案
数据库·pytest
os_lee27 分钟前
Milvus 实战教程(Go 版本 + Ollama bge-m3 向量模型)
数据库·golang·milvus
laplace012328 分钟前
向量库 Qdrant + 图数据库Neo4j+Embedding阿里百炼text-embedding-v3
数据库·embedding·agent·neo4j
云边有个稻草人29 分钟前
从痛点到落地:金仓时序数据库核心能力拆解
数据库·时序数据库·kingbasees·金仓数据库·数据库安全防护
霍格沃兹测试学院-小舟畅学33 分钟前
Playwright数据库断言:测试前后数据验证
数据库·oracle
REDcker40 分钟前
C86 架构详解
数据库·微服务·架构
世人万千丶40 分钟前
Day 5: Flutter 框架 SQLite 数据库进阶 - 在跨端应用中构建结构化数据中心
数据库·学习·flutter·sqlite·harmonyos·鸿蒙·鸿蒙系统
学编程的小程2 小时前
从“单模冲锋”到“多模共生”——2026 国产时序数据库新物种进化图谱
数据库·时序数据库
卓怡学长2 小时前
m111基于MVC的舞蹈网站的设计与实现
java·前端·数据库·spring boot·spring·mvc
存在的五月雨2 小时前
Redis的一些使用
java·数据库·redis