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
)
相关推荐
zuoerjinshu2 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
NocoBase4 小时前
【2.0 教程】第 1 章:认识 NocoBase ,5 分钟跑起来
数据库·人工智能·开源·github·无代码
Hoshino.415 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
Oueii6 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
未来龙皇小蓝7 小时前
【MySQL-索引调优】11:Group by相关概念
数据库·mysql·性能优化
2401_831824967 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
njidf7 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python
twc8297 小时前
大模型生成 QA Pairs 提升 RAG 应用测试效率的实践
服务器·数据库·人工智能·windows·rag·大模型测试
@我漫长的孤独流浪7 小时前
Python编程核心知识点速览
开发语言·数据库·python
2401_851272997 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python