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
)
相关推荐
ao-weilai1 小时前
MySQL数据库:内置函数
android·数据库·mysql
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-10-02
数据库·人工智能·深度学习·神经网络·搜索引擎
天疆说2 小时前
腾讯会议 Linux 版在 NVIDIA 显卡上看不到画面:EGL 像素配置与窗口视觉不匹配的排查与修复
linux·数据库·腾讯会议
2603_969579282 小时前
中小团队数据库选型:MySQL vs PostgreSQL,业务场景怎么选
数据库·mysql·postgresql
IT大白鼠3 小时前
图数据库系列 · 第 06 篇——避坑汇总:经典生产问题
数据库·nosql·图库数据库
江湖有缘3 小时前
3开源Sqlite数据库管理工具整理合集,可Docker一键部署!
数据库·sqlite·开源
jyOverQ3 小时前
Redis 持久化怎么做?RDB、AOF 与混合持久化
数据库·redis
j7~3 小时前
【C++ 标准项目】发布订阅消息队列(篇四):sqlite 与 gtest 断言框架介绍及实战应用
数据库·sqlite·gtest·断言·事件机制·tset宏
于指尖飞舞3 小时前
mysql和redis面试题总结
数据库·redis·mysql