MySQL数据库学习笔记

WUYAN大约 5 分钟JavaWeb数据库

一、数据库简介

MySQL数据库是一款关系型数据库管理系统,主要用于中小规模的数据的存储和处理,是现在相当流行的一款数据库类型。

关系型数据库是采用了关系模型来组织数据的数据库,实体之间的关系有一对一、一对多、多对多三种。

二、数据库的三大范式

范式:数据库设计时需要遵循一定的种规则,在关系型数据库中,这种规则就被称为范式。

1、第一范式(1NF):

基本数据项不可再分,也就是属性已经是最小的了,不能再继续向下划分。

2、第二范式(2NF):

满足第一范式的前提下,要有一个主键且其他属性要完全依赖于主键。

3、第三范式(3NF):

在满足第二范式的前提下,所有属性不能传递依赖于主键。

在此之外还有一些其他的范式存在,比如第四范式(BCNF)等,但一般情况下满足三大范式就已经是一个比较成功的数据库设计了。

三、SQL语句

1、介绍

SQL语句也被称作结构化查询语句,主要用于对关系型数据库进行各种操作,如:增删查改、建库删库等。

基本上所有的关系型数据库都支持SQL语言,但不同的关系型数据库SQL的细节方面会有些区别,不过都大同小异。

2、特点:

(1)、支持多行书写。

(2)、每一行语句都以分号结尾。

(3)、其本身不区分大小写。

3、分类

SQL语句依据实现的功能不同可分为四种:

(1)、数据库查询语言(DQL)

主要用于查询数据库中表的记录,关键字有select、from、where等。

(2)、数据库操作语言(DML)

主要用于对数据库中的数据进行添加、更新和删除操作,关键字有insert、delete、update等。

(3)、数据库定义语言(DDL)

主要用于定义和删除数据库对象,如数据库、表、列等,关键字有create,alter,drop等。

(4)、数据库控制语言(DCL)

主要用于数据库的访问权限、安全级别以及用户管理等,关键字有grant等。

4、数据库定义语言的使用

(1)、创建数据库

CREATE DATABASE TEST;	
#创建一个名为 TEST 的数据库。

CREATE DATABASE TEST character set utf8 COLLATE utf8_general_ci;
#创建新数据库并设置字符集和排序规则

(2)、删除数据库

DROP DATABASE TEST;		#删除名为 TEST 的数据库。

(3)、创建表

 create table 表名(
 字段名1 数据类型 [列级约束条件],
 字段名2 数据类型 [列级约束条件],
 字段名3 数据类型 [列级约束条件],[,表级约束条件]);
 #创建表,中括号内的是可选项。
 #表级约束: CONSTRAINT `CONSTRAINT_1` CHECK (`id` = 5 or `id` = 6)

(4)、修改表

ALETER TABLE 表名
[add 新列名 数据类型[列级约束条件]]	 	# 添加新的一列
[DROP COLUMN 列名[restrict|cascade]]	# 默认是restrict,cascade是强制删除
[MODIFY COLUMN 列名 新数据类型]			# 修改某一列的数据类型

举例:

# 添加列
alter table 表名 add 新列名 数据类型[列级约束条件];
# 修改数据类型
ALTER TABLE ld MODIFY COLUMN sex char(2);
# 删除列
alter table 表名 drop 列名;

(5)、删除表

drop table 表名;

附录

一、约束条件

1、列级约束条件

对一个数据列建立的约束,就被称为列级约束条件。

约束条件约束描述
primary key主键约束,约束的值可唯一的标识对应的记录
foreign key外键约束,约束与表之间的关系
unique唯一约束,约束字段的值是惟一的
not null非空约束,非空字段的值不能为空
default默认值约束,用于保证该字段在不设置具体的内容时,有一个默认值。
check检查约束,限制某个字段的值取值范围,MySQL8支持
auto_increment自增约束可以使表中某个字段的值自动增加,但一张表中只能存在一个自增长字段,
2、表级约束条件

一般是对多个数据列建立的约束,但也可以应用于一列上。

约束条件约束描述
primary key主键约束,约束的值可唯一的标识对应的记录
foreign key外键约束,约束与表之间的关系
unique唯一约束,约束字段的值是惟一的
check检查约束,限制某个字段的值取值范围

二、SQL常用数据类型

数据类型类型大小无符号范围
SMALLINT整数2 Bytes(0,65 535)
INT整数4 Bytes(0,4 294 967 295)
FLOAT浮点型4 Bytes0,(1.175 494 351 E-38,3.402 823 466 E+38)
DOUBLE浮点型8 Bytes0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
DATETIME日期和时间类型8 Bytes'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
CHAR字符串类型-大小可以自行设置,是定长字符串,0-255 Bytes
VARCHAR字符串类型-大小可以自行设置,是可变字符串,0-65535 Bytes

梗知识

  • CRUD程序员,CRUD是数据库增删查改英文的缩写,用这个来形容程序员是有些贬义的,但更多的是用来自嘲玩梗。