Mysql数据库 -- day01

本文介绍了数据库的基本概念,包括长期存储、结构化数据和数据共享。讲述了关系型与非关系型数据库的区别,如MySQL、PostgreSQL和Redis等实例。还详细阐述了SQL语言,包括DDL用于创建和管理数据库及数据表的操作,并举例说明了如何创建、查询、修改和删除数据库及表。
摘要由CSDN通过智能技术生成

1 数据库的介绍

1.1 数据库概念

        数据库(存放数据的仓库)(DataBase,DB):长期存储在计算机内部有结构的大量的,共享的数据集合。

  • 长期存储:持久存储
  • 有结构:类型:数据库不仅可以存放数据,而且存放的数据是有类型的(int,String);关系:存放数据与数据之间的关系
  • 大量:大多数数据库都是文件系统的,存储在数据库中的数据实际上是存储在磁盘上的
  • 共享:数据库可以作为中间媒介,多个应用可以通过数据库共享数据

1.2 关系型数据库和非关系型数据库

  • 关系型数据库:采用关系模型来组织数据存储,以行和列形式(表格)存储数据并记录数据与数据之间的关系。------  将数据存储在表格中,建立表格与表格之间的关联来维护数据之间的关系。
  • 非关系型数据库:采用键值对模型来存储数据,它只完成数据的记录,不会记录数据之间的联系。-----  更加多样化,可扩展性强       NoSQL

1.3 常见数据库

  • 关系型:MySql 免费使用 (MariaDB, Percona Seriver), PostgreSQL, Oracle (功能最强大但是代价高),  SQL Seriver, Access, Sybase, 达梦
  • 非关系型数据库:面向检索的列式检索(HaBase, BigTable),面向高并发的缓存存储 键值对(Redis, MemcacheDB), 面向海量数据的文档存储(MongoDB, CouchDB)

1.4 数据库术语

  • 数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件
  • 数据库系统管理员(DBA):负责数据库创建,使用和维护的专门人员
  • 数据库系统(DBS):DB+DBMS+DBA

1.5 SQL 概述

SQL (Structured Query Language) :结构化查询语言,用于存取,查询和更新数据以及管理关系型数据库,根据SQL指令完成的数据库操作不同可以将SQL分为四类:

  • DDL (Data Definition Language):数据定义语言,用于完成对数据库对象(数据表,视图,索引等进行管理)
  • DML (Data Manipulation Language):数据操作/操纵语言,用于完成对数据表中的数据进行增删改等操作
  • DQL (Data Query Language):数据查询语言,用于完成对数据表中的数据查询操作
  • DCL (Data Control Language):数据控制语言,用于完成事务管理等操作

 1.6 SQL 基本语法

  • SQL指令不区分大小写
  • 每条指令结束之后,都以分号结尾
  • SQL关键字之间以空格进行分割
  • SQL之间不限制换行,有空格就可以有换行

 1.7 DDL 

1.7.1 DDL-数据库操作

使用DDL语句创建数据库,查询数据库,修改数据库,删除数据库

-- 创建数据库
CREATE DATABASE db_test;

-- 如果当前数据库不存在,创建数据库
CREATE DATABASE if not EXISTS db_test;

-- 创建数据库时指定字符集,字符集:数据存储在数据库中采用的编码格式
CREATE DATABASE db_fmsc CHARACTER set utf8;

-- 查询数据库
SHOW DATABASEs;

-- 显式指定数据库的创建名称
SHOW CREATE DATABASE db_test;

-- 修改数据库的字符集
alter DATABASE db_test CHARACTER set gbk;
alter DATABASE db_test CHARACTER set utf8;

-- 删除数据库会删除当前数据库中所有表和数据
DROP DATABASE db_test;

-- 如果存在再进行删除
DROP DATABASE if EXISTS db_test;

-- 切换,使用数据库
use db_fmsc;

1.7.2 DDL数据表操作

char和varchar区别:char定长,不可变字符串(不够系统会自动补,不能少);varchar:可变字符串

-- 创建表,蓝色表示关键词
CREATE TABLE students(
			stu_num CHAR(8) NOT NULL UNIQUE,
			stu_name VARCHAR(50) NOT NULL,
			stu_gender CHAR(2) NOT NULL,
			stu_age INT NOT NULL,
			stu_tel CHAR(11) NOT NULL UNIQUE,
			stu_qq VARCHAR(11) UNIQUE
);

-- 查询数据表
show tables;

-- 查询表结构
desc students;

-- 删除数据表
drop table if EXISTS students;

-- 修改表名
ALTER TABLE students rename to stus;
ALTER TABLE stus rename to students;

-- 数据表默认字符集和数据库一致
ALTER TABLE students CHARACTER SET utf8;

-- 添加字段
ALTER TABLE students add stu_remark VARCHAR(200);

-- 修改字段名称和类型  stu_remark旧的字段名称,stu_desc新的字段名称
alter TABLE students change stu_remark stu_desc text;

-- 不修改字段名称,只修改类型
alter TABLE students MODIFY stu_desc VARCHAR(400);

-- 删除字段
ALTER TABLE students DROP stu_desc;

1.7.3 MySql 数据类型(数据类型:数据表中列支持存放的类型)

数值类型,在MySql中多种数据类型可以存放数据,不同类型存放数据范围或者形式不同

类型内存空间大小范围说明
tinyint1byte

有符号:-128-127

无符号:0-255

特小型整数(年龄)
smallint2byte(16bit)

有符号:-32768-32767

无符号:0-65535

小型整数
mediumint3byte

有符号:-2^31-2^31-1

无符号:0-65535

中型整数
int/integer4byte整数
bigint8byte大型整数
float4byte单精度
double8byte双精度
decimal

decimal(10,2)

数值一共有10位,小数位为2位

字符类型,存储字符序列类型

类型字符长度说明
char0-255字节

定长字符串,如果定义为char(n)而实际中

长度小于n系统则会默认补全到n个’/u0000...‘

varchar0-65536可变长度字符串
tinyblob0-255二进制字符串
blob0-65536二进制字符串
mediumblob二进制字符串
longblob二进制字符串
tinytext文本字符串
text文本字符串
mediumtext文本字符串
longtext文本字符串

日期类型,在MySql数据库中,我们可以使用字符串来存储时间。但是如果要基于时间字段进行查询操作(查询在某个时间段内的数据)则不容易查询

类型格式说明
data2021-09-13日期,只存储年月日
time11:12:13时间,只存储时分秒
year2021年份
datatime2021-09-13  11:12:13存储年月日时分秒
timestamp20210913 111213日期+时间(时间戳)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值