#前言
此文篇仅是本人正在上学期间做的知识复习篇,对于读者来说可能会很难食用。文本内的大部分文字采自黑马程序员/编著,清华大学出版社的内容排版格式是以电脑的宽屏展示,窄屏看着会乱些。
目录
标题一:什么是数据库?
好,那就开始!第一次写的排版难免会很撇,不过没关系,中国人看得懂中国字就好!
进入主题:数据库,是按照数据结构来组织、存储和管理数据的仓库,其本身可以被看作电子化的文本柜,用户可以对文件中的数据进行增加、删除、修改、查找等操作。问:数据库是数据库系统吗?答: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)
接下来将对这五个语法进行演示,请看图像。
在这里我想请问一下?VARCHAR字符串与CHAR字符串有啥区别呢?首先我个人的第一反应就是I don't know...于是我便找出了二者之间的对比关系。
好!回到这里请继续看代码演示图。
注意:新增字段这里的ADD,要是同时加上多个字段,一定一定要用括号()括起来!中间并用英语格式的逗号分隔开。在新增一个字段的时候,可以指定其位置,但是同时新增多个字段,就不能指定字段的位置!
第四步:删除数据表。顾名思义就是:将数据库中存在的数据表进行删除。在删除数据表的同时,数据表中的数据都会背删除。
最后,是针对数据的操作
这里就不再创建新的表进行添加数据,对着之前创建的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 列提供值,则该列将自动使用当前日期作为默认值。