MYSQL

这篇博客主要介绍了MySQL数据库,包括数据库的起源、优点、分类,重点讲解了MySQL的特点、安装过程和常用命令。此外,还详细阐述了SQL语言,如DDL、DML、DQL和DCL,以及数据库设计的基本概念和多表设计的范式。
摘要由CSDN通过智能技术生成

为什么学习数据库

早期数组/对象/集合存储数据,数据存储在内存中
后来数据使用IO(字符流)将数据写入到文件中,做到持久保存
但是是以字符串的形式存储在文件中,操作不方便
数据库的优点:
● 实现数据持久化到本地;
● 使用完整的管理系统统一管理,可以实现结构化查询,方便管理,使用sql语言对数据进行管理。
数据库(DataBase)为了方便数据的存储和管理,它将数据按照特定的规则存储在磁盘上,就是一个存储数据的仓库。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。
在这里插入图片描述

数据库的相关概念

DB:数据库(DataBase)存储数据的容器,它保存了一系列有组织的数据。
DBMS:数据库管理系统(DataBase Management System)又称为数据库软件或数据库产品,用于创建或管理DB。
SQL:结构化查询语言(Structure Query Language)用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据 库软件通用的语言

分类

根据不同的存储类型可以分为:
● 关系型数据库
关系型数据库管理系统称为RDBMS,R指Relation,表与表之间的固定关系。
MySQL:早期是瑞典一家公司开发的,免费的,现在也是被Oracle收购了
Oracle:功能强大,收费. MySQL 快捷、可靠 开源、免费
SQL Server(微软): 只能安装在Windows操作系统
DB2 (IBM):适合处理海量数据,收费.
● 非关系型数据库(没有固定关系,数据以key-value的形式存储即可)
MongdoDB
Redis

Mysql数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle旗下产品。MySQL 流行的关系型数据库管理系统。
MySql是一种关系数据库管理系统。
MySql软件是一种开放源码软件,你可以修改源码来开发自己的 Mysql 系统。
MySql数据库服务器具有快速、可靠和易于使用的特点。
MySql使用标准的sql语言,并且支持多种操作系统,支持多种语言

安装MySQL

1.解压安装包,到一个没有中文的路径中
2.配置系统环境变量path
D:\ProgramFiles\mysql-8.0.20-winx64\bin
3.以管理员身份运行cmd
4.进入到安装目录
在这里插入图片描述
5.初始化

mysqld --initialize-insecure

6.安装mysqld install
输入sc query mysql,查看一下名为mysql的服务:

在这里插入图片描述

7.启动net start mysql
8.为root账号设置密码

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password
BY ‘newpassword’;

刷新指令FLUSH PRIVILEGES;(刷新权限)

命令行方式连接mysql

登录:mysql [-hlocalhost -P3306](本机可省略) -uroot -p(可以直接写密码,不能有空格)
-h:主机名
-P:端口号
-u:用户名
-p:密码
退出:exit
在这里插入图片描述

查看mysql数据库的版本

select version();(mysql命令)

MySQL的常用命令

查看当前所有的数据库: show databases;
选择指定的库:use 库名
查看当前的所有表:show tables;
查看其他库的所有表:show tables from 库名;

安装可视化客户端工具

SQLyog / Navicat

MySQL语法规范

● 不区分大小写,建议关键字大写,表名、列名小写
● 每句话用;

注释

● 单行注释:#注释文字
● 单行注释:-- 注释文字(要有空格)
● 多行注释:/* 注释文字 */
在这里插入图片描述

SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统.
SQL优点:
不是某个特定数据库供应商专有的语是言,几乎所有DBMS都支持SQL简单易学
实际上强有力的语言,灵活使用可以进行非常复杂和高级的数据库操作

DDL

数据(结构)定义语言DDL(Data Definition Language),是用于创
建和修改数据库表结构的语言。
● 常用的语句:create ,alter,drop,rename

-- DDL 结构定义语言
-- 在mysql中创建一个数据库出来
-- CREATE DATABASE [if not exists] 数据库名 [ CHARSET utf8]
-- mysql数据库名一旦创建就不能更改
-- 创建数据库并设置编码格式
CREATE DATABASE IF NOT EXISTS schooldb  CHARSET utf8;
-- 删除数据库
DROP DATABASE IF EXISTS schooldb ;
-- 修改字符集
ALTER DATABASE schooldb CHARSET utf8;

数据库存储数据的特点
● 将数据放到表中,表再放到库中
● 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。
● 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java中“类”的设计。
● 表由列组成,我们也称列为字段。所有表都是由一个或多个列组成的,每一列类似java中的”属性”
● 表中的数据是按行存储的,每一行类似于Java中的“对象”。

数据库表的基本概念

1、数据表
表(table)是数据存储的最常见和最简单的形式,是构成关系型数据库的基本元素。
表的最简单形式是由行和列组成,分别都包含着数据。 每个表都有一个表头和表体,表头定义表名和列名 .表中的行被看作是文件中的记录,表中的列被看作是这些记录的字段。
2、记录
记录也被称为一行数据,是表里的一行。在关系型数据库的表里,一行数据是指一条完整的记录。
3、字段
字段是表里的一列,用于保存每条记录的特定信息。如客户订单表的字段包括“订单ID”、“姓名”、“客户ID”、“职务”、“上级”、“地区”、“运货商”、“国家”等。数据表的一列包含了特定字段的全部信息。

发现类—>设 计 表

对于具体的某一个表,在创建之前,需要确定表的下列特征:
● 表名(学生信息表)
● 表中的字段(列,学号,姓名,性别,年龄)
● 字段的数据类型和长度(数据类型)
● 哪些约束(不能为空,不能重复)
数据类型
char(n) 长度为n的定长字符串
varchar(n) 最大长度为n的可变长字符串
date 日期, 包含年月日
datetime 年月日 时分
整数类型
在这里插入图片描述
浮点类型
在这里插入图片描述

数据类型(M,D)
M:精度,数据的总长度;
D:标度,小数点后的长度
Float(6,2)、Double(6,2)
blob 大文本类型
BLOB是一个二进制大对象,可以容纳可变数量的数据,用于存储图片视频信息. 有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们
只是可容纳值的最大长度不同。
TEXT列字符字符串
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
它们(TEXT和BLOB同)的长度:
Tiny:最大长度255个字符(2^8-1)
BLOB或TEXT:最大长度65535(2^16-1)
Medium:最大长度16777215(2^24-1)
Long 最大长度4294967295(2^32-1)

创建表

CREATE TABLE 表名(列名 数据类型 [约束] [默认值] [ 注释],…

/*创建基本的表
varchar和char在java中表示时都是字符串
VARCHAR(6) 表示字符串  可变长度的字符串 (6)最大上限是6个字符,实际存储四个字符,就只占用4个字符空间,
VARCHAR有上限的 65535个字节,utf8一个汉字占3个字节
CHAR(1) 表示字符串 定长字符串(4) 实际只存储了2个字符,长度仍为4个
date 日期 年月日
FLOAT(3,2) 3表示总长,2表示保留两位
*/
CREATE TABLE student(
    id INT,
    num INT,
    sname VARCHAR(6),
    gender CHAR(1),
    birthday DATE,
    height FLOAT(3,2),
    phone VARCHAR(11),
    address VARCHAR(30),
    register_time DATETIME
)
DROP TABLE student;

在这里插入图片描述

/*
int 占4个字节 -2147483648 -- 2147483647
id1 INT,
id2 INT(6),12没区别
id3 INT(6) ZEROFILL  无符号整数6位,不够6位会自动填充,不能填负数
*/
CREATE TABLE test(
    id1 INT,
    id2 INT(6),
    id3 INT(6) ZEROFILL
)

主键:
在一张表中代表唯一的一条记录,不能为空,不能重复
约束:
PRIMARY KEY 设置主键约束
NOT NULL 不能为空约束
UNIQUE 唯一性约束
检查约束 设置条件
外键约束(多表关联时间
主键自动增长
AUTO_INCREMENT
默认值
DEFAULT default_value
字段注释:
comment '注释
在这里插入图片描述

DROP TABLE student;-- 删除表结构,数据就不存在
RENAME TABLE stu TO student;-- 修改表名
CREATE TABLE stu LIKE student;-- 复制表结构

DML

数据操纵语言DML(Data Manipulation Language)
● 常用语句: insert,delete,updat

-- SQL-->DML 数据操作语句 增删改
/*
方式1: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2…..,值n);
方式2: INSERT INTO 表名 set 列名1=值1,..列名n=值n;
方式3: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2…..,值n),(值1,值2….., 值n);
方式4:INSERT INTO 表名(列1,列2……,列n) 查询语句(查询的列数与插入列数匹配)
register_time当前时间,可以通过mysql中的函数获取
*/
-- 主键自动增长,不需要插入,自动生成
INSERT	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值