简单认识MySQL基础部分


一、数据库概述

1、简介

数据
描述事物的符号记录称为数据(Data)。数字、文字、图形、图像、声音、档案记录等 都是数据。

数据记录:行/
数据字段(属性): 列
以行+列的形式就组成了表(数据存储在表中)
数据库
是表的集合。它是以一定的组织方式存储的相互有关的数据集合
数据库管理系统
是实现对数据库资源有效组织、管理和存取的系统软件。它在操作系统的支持下,支持用户对数据库的各项操作
数据库系统
是一个人机系统,一般由硬件、操作系统、数据库、DBMS、应用软件和数据库用户(包括数据库管理员)组成。用户可以通过 DBMS 操作数据库,也可以通过应用程序操作数据库。

DBMS的工作模式如下:

1>接受应用程序的数据请求和处理请求
2>将用户的数据请求(高级指令)转换为复杂机器代码(底层指令)
3>实现对数据库的操作
4>从数据库的操作中接受查询结果
5>对查询结果进行处理(格式转换)
6>将处理结果返回给用户
在这里插入图片描述

2、数据库类型和常用数据库

1.关系型数据库

关系数据库系统是基于关系模型的数据库系统
关系模型的数据结构使用简单易懂的二维数据表

每一行称为一条记录,用来描述一个对象的信息
每一列称为一个字段,用来描述对象的一个属性
关系模型可用简单的“实体-关系”(E-R)图来表示

E-R图中包含了实体(数据对象)、关系和属性三个要素

常用数据库软件:MySQL、MariaDB、、Oracle、SQL-Server、DB2、PostgreSQL。

2.非关系型数据库

非关系数据库也被称作NoSQL (Not Only SQL)
存储数据不以关系模型为依据,不需要固定的表格式

非关系型数据库的优点:
数据库可高并发读写
对海量数据高效率存储与访问
数据库具有高扩展性与高可用性
常用数据库:
Memcached、Redis、MongoDB、HBase。

3、mysql数据库日志

1、作用:

数据库日志文件用于备份,恢复,故障定位、分析是最核心的部分

2、 mysql与 oracle 日志有所区别

mysql 写一条数据,同步到日志中一条
PS:insert into qqbb (id,name,score) values(1,‘zhangsan’,20);
oracle :重做日志组
一个组中至少3个日志成员,轮流存储日志
还会有另一个组与之同步/备份

3、 Mysql 存储引擎

myisam和innodb
myisam:快速读取,不支持事务(frm,myd,myi)
innodb:更注重写,支持事务(ibd.frm)

二、数据库基础操作

1、SQL 语句

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

SQL语言分类:
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

2、实际操作

1、DDL:数据定义语言,用于创建数据库对象,如库、表、索引等

创建新的数据库

CREATE DATABASE 数据库名;
SHOW DATABASES;#查看数据库

SHOW DATABASES;

使用(进入)数据库

USE 数据库名;

在这里插入图片描述

删除指定的数据库

DROP DATABASE 数据库名;
SHOW DATABASES;#查看数据库

在这里插入图片描述

查看数据库中的表

SHOW TABLES;  #进入数据库中,查看所有的表

在这里插入图片描述

创建新的表

CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
#在创建时,数据类型后面加上约束条件(用空格隔开)实现约束效果

常用约束条件
not null:非空约束(值不能为空)
primary key:主键约束(设为主键,包含了not null的效果)
unique key:唯一键约束(值在字段中唯一)
default 指定值:默认值约束(将默认值设为指定值,字符串要用’ '括起来)
auto_increment:自增约束(起始为1,随记录条目数增加自增1)
foreign key:外键约束(将字字段设为外键,与子表中的字段关联)
zerofill:位数不满足用0填充

CREATE DATABASE IKUN;
USE IKUN;
CREATE TABLE HEIZI (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT'', PRIMARY KEY (id));
DESC IKUN;#查看数据库表的结构

在这里插入图片描述

删除指定的数据表

USE 数据库名;
DROP TABLE 表名;
DROP TABLE [数据库名.] 表名;
#如不用USE进入库中,则需加上数据库名

在这里插入图片描述

2、DML管理表中的数据记录 ---- 数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据

添加记录

INSERT INTO 表名 (字段1,字段2,...) VALUES (数字,'字符串');
如果没有非空限制,未指定字段的部分默认为NULL。
全字段填入数据可以不指定字段,即INSERT INTO 表名 VALUES (数字,'字符串');
SELECT * FROM 表名;        查看表中所有记录

在这里插入图片描述

3、DQL查询数据记录

SELECT * FROM `表名` limit 数字;#查看表中指定条目数记录

在这里插入图片描述

SELECT * FROM `表名` limit 数字1,数字2;        查看表中指定数字1条之后的数字2条记录

在这里插入图片描述

SELECT 字段x,字段y,... FROM `表名`;        查询指定字段记录

在这里插入图片描述

SELECT 字段x,字段y,... FROM `表名`\G;#将查询到的记录纵向显示(适用于字段较多)

在这里插入图片描述

SELECT * FROM `表名` WHERE 条件1 [AND 条件2] [OR 条件3];#根据条件查询记录

在这里插入图片描述

DELETE FROM `表名`;#删除表中所有记录
DELETE FROM `表名` WHERE 条件1 [AND 条件2] [OR 条件3]; #删除表中指定条件记录(一般以主键为条件)
UPDATE `表名` SET 字段=值 WHERE 条件1 [AND 条件2] [OR 条件3];#修改指定条件记录

4、DCL修改表名和表结构

修改数据库表结构

ALTER TABLE 旧表名 RENAME 新表名;  #修改表名
SHOW TABLES;

在这里插入图片描述

ALTER TABLE 表名 ADD 字段名 数据类型; #添加字段
DESC IKUN;#查看数据库表的结构

在这里插入图片描述

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型; #修改字段名

在这里插入图片描述

ALTER TABLE 表名 DROP 字段名;#删除字段

在这里插入图片描述

3、数据库表进阶操作

1.if 判断创建表

创建表前判断表是否存在,不存在则创建,存在则不创建。

CREATE TABLE IF NOT EXISTS `表名` (字段1 数据类型,字段2 数据类型,...);

已有同名不受影响
在这里插入图片描述
创建成功
在这里插入图片描述

2.克隆表

CREATE TABLE `新表` LIKE `旧表`;        通过like方法复制旧表的表结构
INSERT INTO `新表` SELECT * FROM `旧表`;        向新表插入旧表查询的数据

在这里插入图片描述

3.查看表结构和详细信息

SHOW CREATE TABLE `表名`;        以SQL命令格式展示表结构,还能显示表的其它信息

在这里插入图片描述

4.重建表(格式化)

TRUNCATE TABLE `表名`;

与清空表数据的区别
delete from 表名;#是一行一行的删除数据记录,删除效率较慢,执行完后会返回删除的记录条目数,且删完后再插入数据记录,自增字段仍然会以原来的最大记录自增。

truncate table 表名;#是直接重建表,清空速度比delete更快,执行完后不会返回记录条目数,且清空表后再插入数据,自增字段会重新从1开始递增。

在这里插入图片描述

5.创建临时表

CREATE TEMPORARY `表名` (字段1 数据类型,字段2 数据类型,...);
#临时表只能在当前连接中有效,能正常被增删改查,但是show tables是看不到的,并且换一个或者退出当前连接后临时表都会失效

show tables 看不到
在这里插入图片描述

6.外键连接

外键的定义
如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。
主键表和外键表的理解
(1)以公共关键字作主键的表为主键表(父表、主表)
(2)以公共关键字作外键的表为外键表(从表、外表)
注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表;主从表的字段具备相同的数据类型、字符长度和约束。

先创建主键表(战列船坞)
在这里插入图片描述
再创建外键表(炮塔库存)
在这里插入图片描述

为主表添加一个主键约束(主键名建议以"PK_"开头)
在这里插入图片描述
为从表添加外键,并将主表的pid字段和从表的providers_id字段建立外键关联(外键名建议以"FK_"开头)

在这里插入图片描述
#可以使用查询表语句结构命令查看外键关联

show create table test05;

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值