一知半解:MySQL数据库原理、设计与应用,(一)

#前言

此文篇仅是本人正在上学期间做的知识复习篇,对于读者来说可能会很难食用。文本内的大部分文字采自黑马程序员/编著,清华大学出版社的内容排版格式是以电脑的宽屏展示,窄屏看着会乱些。

目录

标题一:什么是数据库?

标题二:数据库的基本操作包含哪些?

标题三:数据的类型有哪些?表的约束有哪些?

 


标题一:什么是数据库?


好,那就开始!第一次写的排版难免会很撇,不过没关系,中国人看得懂中国字就好!

进入主题:数据库,是按照数据结构来组织、存储和管理数据的仓库,其本身可以被看作电子化的文本柜,用户可以对文件中的数据进行增加删除修改查找等操作。问:数据库数据库系统吗?答:nonono!

                 数据库系统(DBS)数据库(DB)包含在内,不仅如此,还包括了数据库管理系统(DBMS)数据库应用程序等。

在这里插入几条信息数据库技术的发展已经从:人工管理阶段文件系统阶段数据库系统阶段在数据库的快速发展中,现目前已经出现了3种基本数据模型分别是层次模型网状模型关系模型这是数据库经常使用的E-R图(也叫:实体-联系图,是用图形表示的实体联系模型

标题二:数据库的基本操作包含哪些?


#友情提示:内容过多,得细嚼慢咽,切勿囫囵吞枣!

数据库的基本操作包含:数据库创建查看选择删除数据表创建查看选择删除数据添加查询修改删除

好!接下来让我依次进行每一步的演示,我这里使用的工具是Navicat12.1.11版本。

首先,是针对数据库的操作

第一步:创建数据库。                       第二步:查看数据库。                                                 第三步:选择数据库。                      第四步删除数据库

注意:图像里面的字母不分大小写!执行的时候:输入语句后要鼠标选中想要运行的语句哦,再点击那个绿色三角形的按钮。

然后,是针对数据表的操作

第一步:创建数据表。(这里先重新创建一个数据库,在数据库里面进行创建数据表,截图可以直观看到)

(PostScript)PS(这是源代码copy):

CREATE DATABASE csdn;
use csdn;
CREATE TABLE rookie(
id INT COMMENT '编号',/*id是字段数据,INT是用来设置字段数据类型的,int是整型,COMMENT是用于创建表时添加注释内容,并将其保存到表结构中*/
name VARCHAR(32) COMMENT '姓名',/*VARCHAR(L)表示可变长度的字符串,L表示字符数,所以32表示的是varchar字符串可变字符数是32*/
class VARCHAR(10) COMMENT '班级',
sex VARCHAR(5) COMMENT'性别')COMMENT '菜鸟信息表';

值得一提的是:刚开始写的时候注意标点:小逗号,小括号,分号,都要求是英文格式,否则代码会报错的!

第二步:查看数据表。展示的内容比较浅陋,不做过多的深究。这里插一句查看表结构,使用DESCRIBE语句能够查看数据表中的所有字段或者指定字段的信息(这里指定字段的信息我就不做过多的演示较为简单,在数据表名后面+字段名即可),DESCRIBE语句可以简写使用DESC,使用方法请看截图

第三步:修改数据表。在MySQL中,提供了两种修改数据表名称的方式,


其一:ALTER TABLE 旧表名 RENAME 【TO|AS】新表名

其二:RENAME TABLE 旧表名1 TO 新表名1【,旧表名2TO新表名2】....

两者区别如下:ALTER TABLE 可直接跟RENAME 或者在其后面添加TO或AS.而RENAME TABLE 则必须使用TO,另外此语法可以同时修改多个数据表的名称。

在这里就只演示第一种方法了。 

上面演示的是修改数据表名称,修改表的选项我就不再演示了,实用性不多。接下来是演示修改数据表结构

修改数据表结构的内容包括五个小方块

♦修改字段名(CHANGE

♦修改字段类型(MODIFY

♦修改字段的位置(MODIFY)

♦新增字段(ADD)

♦删除字段(DROP)

接下来将对这五个语法进行演示,请看图像。

修改字段名(CHANGE)
修改字段类型(MODIFY)

在这里我想请问一下?VARCHAR字符串与CHAR字符串有啥区别呢?首先我个人的第一反应就是I don't know...于是我便找出了二者之间的对比关系。

好!回到这里请继续看代码演示图。

修改字段的位置(MODIFY【FIRST|AFTER】)
新增字段(ADD)

注意:新增字段这里的ADD,要是同时加上多个字段一定一定要用括号()括起来!中间并用英语格式的逗号分隔开。在新增一个字段的时候,可以指定其位置,但是同时新增多个字段,就不能指定字段的位置!

删除字段(DROP)

第四步:删除数据表。顾名思义就是:将数据库中存在的数据表进行删除。在删除数据表的同时,数据表中的数据都会背删除。

删除数据表(DROP)

最后,是针对数据的操作

这里就不再创建新的表进行添加数据,对着之前创建的rookie进行补充。

对数据的操作也是那四大步骤。

First:添加数据(1:给所有的字段添加数据。2:给部分字段添加数据。3:一次添加多行数据)

Second:查询数据(1:查询表中全部数据。2:查询表中部分字段。3:简单条件查询数据)

Third:修改数据

Fourth:删除数据

  • First:添加数据

1:给所有的字段添加数据                                                             2:给部分字段添加数据                                                            3:一次添加多行数据

提醒一下:这里插入数据的时候应该与创建数据表的时对应的字段顺序相同,第一张截图里面的(name,class,c_id...)可以不写,然后就是,在为部分字段添加数据的时候,未添加的字段默认值为NULL(空的),在添加部分字段的写法除了INSERT INTO VALUES之外,还有INSERT INTO SET 语法(作用是:对指定字段添加数据

INSERT INTO 【数据表名】SET 【字段名】=xxx,【字段名】=xxx;

这里需要注意的是,最后一个字段赋值后不需要添加逗号。

  • Second:查询数据

      1:查询表中全部数据                                                                     2:查询表中部分字段                                                                                       3:简单条件查询数据

提醒:星号“ * ”在MySQL中是通配符能代替数据表中的所有字段名。在想要查询出符合条件的相关数据记录时,可以使用WHERE语法实现。

  • Third:修改数据

这里,MySQL提供了UPDATE语句修改数据,基本语法格式如下:

UPDATE 数据表名
SET 字段名1=值1,字段名2=值2 WHERE 【条件表达式】;

条件表达式就是:字段名+指定的值(例如:c_id=1048);如果实际使用时没有添加WHERE条件,那么表中所有对应的字段都会被修改成统一的值!

如果你在一个已经存在数据的表中新增了两个字段名,你可以使用 UPDATE 语句来为新增的字段分别添加新的数据内容。

UPDATE 表名
SET 新字段名1 = 值1,
    新字段名2 = 值2
WHERE 条件;

Fourth:删除数据

在MySQL中使用DELETE语句删除表中的记录,WHERE条件为可选参数,用于设置删除的条件,满足条件的记录会被删除。

INSERT into new_rookie (name,class,c_id,sex,age,email)VALUES
('小侯','1班',1048,'男',20,'2229@qq.com');
INSERT INTO new_rookie(name,age)VALUES
('小黑',19);
INSERT INTO new_rookie VALUES
('小白','2班',1049,'女',18,'118@qq.com'),
('小红','7班',1052,'女',21,'1721@qq.com'),
('小蓝','5班',1050,'女',18,'32178@qq.com');

SELECT * FROM new_rookie;
SELECT c_id,name,age FROM new_rookie;
SELECT *FROM new_rookie where c_id=1048;
UPDATE new_rookie SET c_id=1999,class='5班' WHERE age=19;
DELETE FROM new_rookie WHERE c_id=1048;

好了,到这里就结束了。以上代码是演示的源代码。注释就不敲了,前面已经阐述的比较清晰了哈。

标题三:数据类型有哪些?表的约束有哪些?


问:什么是数据类型?

答:数据类型是编程语言中用来定义数据的分类种类的概念

问:数据类型的作用是?

答:数据类型对数据库的优化是非常重要的!

问:数据类型包括哪些?

答:MySQL数据库提供了多种数据类型,其中数据类型包括数字类型时间和日期类型字符串类型

#而数字类型,时间和日期类型,字符串类型,这三大类,还能分别进行细分处理.#


数字类型

包括:整数类型、浮点数类型、定点数类型、BIT(位)类型等...

这是引用菜鸟教程的截图内容🔗传送门前往详细内容

浅浅的总结一下:不同整数类型所占用的字节数和取值范围都是不同的,占用字节数最小的是TINYINT,占用字节数最大的是BIGINT,至于为什么不进行案例演示,可以去看大佬的文章,前往大佬的世界🔗给到位:前往大佬的世界,在这里就不进行补充了。

时间和日期类型

 仍旧是引用菜鸟教程的截图内容🔗传送门前往详细内容,不是我偷懒,已有前人大能铺路,何必自己磕磕碰碰不知方向。

浅浅的总结一下:常见的时间和日期类型包括:

1. 时间类型(Time):用于表示一天中的具体时间,通常包含小时、分钟、秒和毫秒。例如,12:30:45。

2. 日期类型(Date):用于表示一个具体的日期,通常包含年、月和日。例如,2022-01-01。

3. 日期时间类型(DateTime):用于表示一个具体的日期和时间,通常包含年、月、日、小时、分钟、秒和毫秒。例如,2022-01-01 12:30:45。

4. 时间戳类型(Timestamp):用于表示从某个固定时间点开始的时间间隔,通常以整数或浮点数的形式表示。例如,从1970年1月1日开始的秒数或毫秒数。

案例演示依旧是🔗传送门:大佬进行时间和日期类型的案例演示及讲解

字符串类型

 对,没错,还是引用菜鸟教程的截图内容🔗传送门前往详细内容!😄

浅浅的归纳总结一下: 1. CHAR:固定长度字符串类型。CHAR类型的字符串在存储时会被右侧填充空格,长度固定不变。例如,CHAR(10)表示长度为10的字符串。

2. VARCHAR:可变长度字符串类型。VARCHAR类型的字符串长度可以变化,根据实际存储的内容来确定占用空间。例如,VARCHAR(255)表示最大长度为255的字符串。

3. TEXT:用于存储大文本数据的类型。TEXT类型可以存储较大的文本内容,长度限制较大。例如,TEXT类型可以存储文章、博客等较长的文本内容。

4. BLOB:用于存储二进制大对象的类型。BLOB类型可以存储二进制数据,如图像、音频、视频等。BLOB类型通常用于存储较大的二进制文件。

5. ENUM:枚举类型。ENUM类型用于定义一组可能的取值,只能在预定义的选项中选择一个值。例如,ENUM('Male', 'Female')表示只能选择男性或女性。

6. SET:集合类型。SET类型用于定义一组可能的取值,可以选择多个值。例如,SET('Apple', 'Banana', 'Orange')表示可以选择苹果、香蕉、橙子中的一个或多个。

案例演示传送门🔗术业有专攻


#好的,经过微微草率的简述数据类型后,接下来是表的约束

问:什么是表的约束?

答:表的约束是指在关系数据库中对表中的数据进行限制和保护的规则。

问:表的约束的作用是?

答:它们定义了表中数据的有效性、完整性和一致性

问:表的约束包括哪些?

答:MySQL数据库提供了多种数据类型,其中数据类型包括主键约束(Primary Key Constraint),非空约束(Not Null Constraint),唯一约束(Unique Constraint),默认约束(Default Constraint).

 1. 主键约束(Primary Key Constraint):用于唯一标识表中的每一行数据,确保每行数据都有唯一的标识符。相当于唯一约束(Unique Constraint)和非空约束(Not Null Constraint)的结合。

2. 非空约束(Not Null Constraint):确保表中的某列不允许为空值,即必须有值。

3. 唯一约束(Unique Constraint):确保表中的某列或某组列的值是唯一的,不允许重复值。

5. 默认约束(Default Constraint):定义了在插入新行时,如果没有为某列指定值,则该列将使用默认值。


1.主键约束(Primary Key Constraint)代码演示:

CREATE TABLE Students (
    Student_id INT PRIMARY KEY,
    Name VARCHAR(50),
    Age INT
);

在上述示例中,我创建了一个名为 Students 的表,其中 Student_id 列被定义为主键约束。这意味着每个学生都有一个唯一的学生ID!Age INT,(字段:年龄age,整数类型:INT)

2.非空约束(Not Null Constraint)代码演示:

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    Name VARCHAR(50) NOT NULL,
    Email VARCHAR(100)
);

在上述示例中,我创建了一个名为 Customers 的表,其中 Name 列被定义为非空约束。这意味着每个客户的姓名必须有值,不允许为空。Email VARCHAR(100)(字段:电子邮件Email,字符串类型:VARCHER,可变字符数是100)

3.唯一约束(Unique Constraint)代码演示:

CREATE TABLE Products (
    Product_id INT PRIMARY KEY, /*字段product_id,整数类型:int,将product_id设置为了主键约束 */
    Name VARCHAR(50),/*字段name,字符串varchar */
    prices VARCHAR(20) UNIQUE
);

在上述示例中,我创建了一个名为 Products 的表,其中 prices  列被定义为唯一约束。这意味着每个产品的 prices 值必须是唯一的,不允许重复。

4.默认约束(Default Constraint)代码演示:

CREATE TABLE Orders (
    Order_id INT PRIMARY KEY,/*设为主键约束*/
    OrderDate DATE DEFAULT CURRENT_DATE,
    TotalAmount DECIMAL(10,2)/*字段名:TotalAmount(总金额),DECIMAL 是一种数值类型,用于存储固定精度和小数位数的数字。*/

);

在上述示例中,我创建了一个名为 Orders 的表,其中 OrderDate 列被定义为默认约束。这意味着如果在插入新行时没有为 OrderDate 列提供值,则该列将自动使用当前日期作为默认值。


结束语:温故而知新,持之以恒!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值