MySQL 史上最全文档之基础篇

这篇博客详细介绍了MySQL的基础知识,包括数据库概念、主流关系型数据库、MySQL数据模型和版本。接着深入讲解了SQL语句,如数据类型、DDL、DML、DQL和DCL,涵盖创建、查询、修改和管理数据。还讨论了函数、约束、多表查询、事务处理等核心概念,是MySQL初学者的全面指南。
摘要由CSDN通过智能技术生成

MySQL 基础篇

1. 概述

数据库概念
名称 全称 简称
数据库 存储数据的仓库,数据是有组织的进行存储 DataBase(DB)
数据库管理系统 操纵和管理数据库的大型软件 DataBase Management System(DBMS)
SQL 操作关系型数据库的编程语言,定义了一套操作关系数据库的统一标准 Structured Query Language
主流关系型数据库

Oracle MySQL Microsoft SQL Server PostgreSQL MariaDB IBM Db2

SQl 为操作关系型数据库统一了标准

关系型数据库(RDBMS)

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

特点

  1. 使用表存储数据,格式统一,便于维护。
  2. 使用SQL语言操作,标准统一,使用方便。
MySQL 数据模型

通过MySQL客户端连接数据库管理系统(DBMS)创建数据库。通过SQL语句在对应的数据库中创建表

在一个数据库服务器可以创建多个数据库。一个数据库可以创建多张表。

基于表进行数据存储的数据库 称为关系型数据库。

版本

官网 https://www.mysql.com/

社区版 MySQL Community Server 免费 MySQL不提供任何技术支持

商业版 MySQL Enterprise Edition 收费 可试用30天,官方提供技术支持

2. SQl语句

1. SQL通用语法
  1. SQL语句可以单行或多行书写,以分号结尾。
  2. SQL语句可以使用空格/缩进来增强语句的可读性。
  3. MySQL数据的SQL语句不区分大小写,关键字建议大写。
  4. 注释
    • 单行注释 – 或者 # 注释内容(MySQL特有)
    • 多行注释 /* 注释内容 */
2. SQL分类
分类 全称 说明
DDL Data Definition Language 数据定义语言, 用来定义数据库对象(数据库,表,字段)
DML Date Manipulation Language 数据操作语言, 用来对数据库库表中的数据进行增删改
DQL Data Query Language 数据查询语言, 用来查询数据库中表的记录
DCL Data Control Language 数据控制语言, 用来创建数据库用户,控制数据库的访问权限
3. MySQL 数据类型
  • Mysql 中 数据类型有很多,主要分为三类 数值类型、字符串类型、日期时间类型
1. 数值类型
类型 大小 有符号范围 signed 无符号范围unsigned
TINYINT 1 bytes (-128,127) (0, 255)
SMALLINT 2 bytes (- 32769,32767) (0 ,65535)
INT 4 bytes (-2147483648,2147483647) (0, 4294967295)
BIGINT 8 bytes (-263,-263-1) (0,2^64-1)
FLOAT 4 bytes 单进度 浮点型
DOUBLE 8 bytes 双进度 浮点型

创建 age 字段 类型可以用无符号的TINYINT age tinyint unsigned

2. 字符创类型
类型 大小 描述
CHAR 0 - 255 bytes 定长字符串
VARCHAR 0 - 65535 bytes 变长字符创
TEXT 0 - 65535 bytes 长文本数据
BLOB 0 - 65535 bytes 二进制形式的长文本数据
MEDIUMTEXT 0-16777215 bytes 中等长度的文本数据
LONGTEXT 0-4292969295 bytes 极大的文本数据
  • 定长 : char(10) 完全占10个字节大小的空间 性能高
  • 变长 : varchar(10) 占用字节的大小取决于写入字符串的大小 性能较差
3. 日期时间类型
类型 大小 格式 描述
DATE 3 bytes YYYY-MM-DD 日期值
TIME 3 bytes HH:MM:SS 时间或持续时间
YEAR 1 bytes YYYY
DATETIME 8 bytes YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 bytes YYYY-MM-DD HH:MM:SS 混合日期和时间值
4. DDL
1. DDL 数据库操作
  • 查询
-- 查询所有数据库
SHOW DATABASES;

-- 查询当前数据库
SELECT DATABASE();
  • 创建
CREATE DATABASE[IF NOT EXISTS] 数据库名[ DEFAULT CHARSET 字符集] [COLLATE 排序规则];

-- 创建一个数据库为 test  字符集 为  utf8mb4    占4个字节     如果数据库不存在则创建
create datebase if ont exists test default charset utf8mb4;    

create database  test1  
create schema test1;

  • 删除
DROP  DATABASE[IF EXISTS] 数据库名;

DROP  DATABASE if exists TEST;   --删除test数据库  如果存在则删除
  • 使用
USE 数据库名;
use  test;  --进入数据库 
2. DDl 表操作
1. 查询
  • 查询当前数据库所有表
SHOW TABLES;  -- 需要先进入对应的库
  • 查询表结构
DESC 表名;  -- 查看表的字段
  • 查询指定表的建表语句
SHOW CREATE TABLE 表名;    -- 查询建表语句
2. 创建
CREATE TABLE  表名 (
    字段1   字段1类型[ COMMENT  字段1注释],
    字段2   字段2类型[ COMMENT  字段2注释],  -- 每个字段后面都有一个逗号   最后一个没有逗号。
    ....
    字段n   字段n类型[ COMMENT  字段n注释]

)[COMMENT 表注释];


create table tb_user(
id int comment '用户id',
name varchar(50)  comment '用户名称'--  mysql 数据 字符串 varchar 50指定字符串长度
age  int  comment '用户年龄',
gender varchar(1) comment '性别'  --最后一个字段不加 逗号
) comment '用户表';                      -- 表的注释

create table ok( 
    id int comment'ID', 
    name varchar(20) comment'姓名', 
    age int comment'年龄' 
)comment'信息表';

DESC tb_user;  --查看表的字段及类型

-----------------------
create table tem (
id  int,
ygid varchar(10) comment'员工工号',
name varchar(10) comment '员工姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
idcader char(18) comment '身份证号',
sj date comment'入职时间'


)comment '员工表';

3. 修改
  • 添加字段
ALTER TABLE表名 ADD  字段名  类型(长度)[comment  注释] [约束];

-- 为一个表 添加字段 
alter table tem add addTB varchar(10) comment"这是注释";
-- 在表的某个字段后添加字段
alter table mod1 add xb varchar(20) after id; 
-- 在表的第一个字段前添加字段
alter table mod1 add name1  varchar(20) first;
  • 修改字段
--修改数据类型和注释
ALTER TABLE 表名   MODIFY  字段名  新数据类型(长度)[comment注释];

alter table tem modify addTB char(3) comment "新的注释";



--修改字段名和字段类型

ALTER TABLE 表名  CHANGE  旧字段名 新字段名  类型(长度)[comment 注释][约束];

alter table tem change addTB  NetTB varchar(5) comment"修改了字段";


  • 删除字段
-- 删除字段

ALTER TABLE 表名  DROP 字段名;

alter table tem drop sj;
  • 修改表名
ALTER TABLE  表名  RENAME TO 新表名;

alter table  tem   rename   ok123;
alter table  ok123   rename  to  NewTB;
  • 删除表
-- 直接删除表
DROP TABLE [IF EXISTS] 表名;

drop table if exists NewTB;

-- 删除指定表,并重新创建该表

TRUNCATE TABLE 	表名;
truncate  table t1234;  -- 删除表并 重新创建表(数据被删除)
5. DML
1. 介绍
  • DML 全称是 Data Manipulation Language (数据操作语言),用来对数据库中的表的数据记录进行增删改操作。

  • 添加关键字 INSERT

  • 修改关键字 UPDATE

  • 删除数据 DELETE

2. MDL添加数据
  • INSTET
指定字段添加数据
INSERT INTO 表名(字段名1,字段名2,...)VALUES(1,2,...);

insert into classTB(id,name,phone)values(2,"王海军",189342556);
给全部字段添加数据
INSERT INTO 表名 VALUES((1,2,...);
                      
insert into classTB values(1,"小",001,"北京市丰台",1998493234);
批量添加数据
INSERT INTO 表名(字段1,字段2,...) VALUES(1,2...),(1,2...),(1,2...);

insert into classTB (name,Phone)values("王浩平","19844350993"),("张伞","143536685643"),("李明坤","12897749646");

INSERT INTO 表名 VALUES(1,2...),(1,2...),(1,2...);
insert into classTB values (9,"张晓霞",004,"陕西省西安市","18450938832"),(23,"李鹏",05,"铜川市","1898823424");

注意

  • 插入数据时, 指定的字段顺序需要与值的顺序是一一对应到的。
  • 字符串和日期类型数据应该包含在引号中。
  • 插入的数据大小,应该在字段的规定范围内。
3. MDL修改数据
  • UPDATE
修改数据
UPDATE 表名  SET  字段名1 =1,字段名2=2,... [WHERE 条件];

update classTB set name="张小名&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值