Mysql学习(一)

一、什么是数据库系统?

数据库系统(DBMS)是指一个能为用户提供信息服务的系统。它实现了有组织地、动态地储存大量相关数据的功能,提供了数据处理和信息资源共享的便利手段。

二、什么是关系型数据库系统?

  • 关系型数据库系统(RDBMS)是指使用了关系模型的数据库系统。
  • 关系模型中,数据是分类存放的,数据之间可以有联系。
    关系型数据库可以有效组织和管理大量复杂的数据。

主流关系型数据库:

在这里插入图片描述

什么是NoSQL数据库系统?

NoSQL数据库是指数据分类存放,但是数据之间没有关联关系的数据库系统。
主流的NoSQL数据库:
Redis MemCache MongoDB Neo4J

三、用户管理

1.创建用户

我用的是Dbeaver,免费的。
在这里插入图片描述
或者在这里插入图片描述

2.重设root密码

创建一个txt文件,定义修改密码的SQL语句

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'

只有以管理员身份运行Windows PowerShell的窗口才可以管理MySQL服务的启动和关闭。
在这里插入图片描述
停止MySQL服务的命令:

net stop mysql80

启动上面写好的脚本

mysqld --defaults-files="my.ini的路径" --init-file="E:/temp.txt" --console

在这里插入图片描述
启动MySQL服务:

net start mysql80

修改my.ini文件,删除之前添加的参数
重启MySQL服务,用新密码登陆root账户

2.MySQL配置文件

(my.ini的路径一般在C:\ProgramData\MySQL\MySQL Server 5.7。)
在my.ini文件中,我们可以设置各种MySQL的配置,例如字符集、端口号、目录地址等等。
在这里插入图片描述
在这里插入图片描述
default-storage-engine=INNODB #默认存储引擎,INNODB是支持事务的引擎

四、什么是SQL语言?

SQL是用于访问和处理数据的标准的计算机语言。
比如,开发网页设计的语言:HTML、CSS、JavaScript;开发IOS的语言:Swift、开发桌面程序:C++、C#、VB;操作数据库的语言:SQL。

SQL语言分类:

在这里插入图片描述

SQL语句注意事项:
  • SQL语句不区分大小写,但是字符串区分大小写
SELECT "HelloWorld";
  • SQL语句必须以分号结尾
  • SQL语句中的空白和换行没有限制,但是不能破坏语法
SQL语句的注释
  • # 这是一段的注释
  • /* 这是另一段的注释 */

五、逻辑库操作

创建逻辑库CREATE DATABASE 逻辑库名称;
逻辑库即逻辑空间。
显示逻辑空间SHOW DATABASES;
删除逻辑空间DROP DATABASE 逻辑库名称;

六、数据表操作

创建数据表

CREATE TABLE 数据表(
	列名1 数据类型 [约束] [COMMENT 注释],
	列名1 数据类型 [约束] [COMMENT 注释],
	......
)[COMMENT 注释];

在这里插入图片描述
查看逻辑空间内数据表SHOW tables;
查看数据表的具体情况DESC student;
查看数据表最初创建的SQL语句SHOW CREATE TABLE student;
删除数据表DROP TABLE student;

七、SQL的数据类型

数据类型:数字
在这里插入图片描述
不精确的浮点数
十进制的浮点数无法在计算机中用二进制精确表达。浮点数会丢失精度。
在这里插入图片描述
数据类型:字符串
在这里插入图片描述
数据类型:日期类型
在这里插入图片描述

八、修改表结构

1.添加字段
ALTER TABLE 表名称
ADD1 数据类型 [约束] [COMMENT 注释],
ADD2 数据类型 [约束] [COMMENT 注释],
......;
2.修改字段类型和约束
ALTER TABLE 表名称
MODIFY1 数据类型 [约束] [COMMENT 注释],
MODIFY2 数据类型 [约束] [COMMENT 注释],
......;
3.修改字段名称
ALTER TABLE 表名称
CHANGE 列1 新列名1 数据类型 [约束] [COMMENT 注释],
CHANGE 列2 新列名2 数据类型 [约束] [COMMENT 注释],
......;
4.删除字段
ALTER TABLE 表名称
DROP1,
DROP2,
......;
5.修改表名
ALTER TABLE 表名称 RENAME 新表名;

九、字段约束

数据库的范式:构造数据库必须遵循一定的规则,这种规则就是范式。
目前关系型数据库有6种范式,一般情况下,只满足第三范式即可。
第一范式:原子性
是数据库基本要求,不满足这一点就不是关系型数据库。
数据表的每一列都是不可分割的基本数据项,同一列中不能有多个值,也不能存在重复的属性。例如:
在这里插入图片描述
第二范式:唯一性
数据表中的每条记录必须是唯一的。为了实现区分,通常要为表加上一个列用来存储唯一标识,这个唯一属性列被称作主键列。
在这里插入图片描述
第三范式:关联性
每列都与主键有直接关系,不存在传递依赖。
在这里插入图片描述
依照第三范式,数据可以拆分保存到不同的数据表,彼此保持关联。
在这里插入图片描述
部门表有编号、部门和电话三个字段,部门和电话两个字段都是依赖于主键这个字段。员工表有编号、姓名、性别、部门和入职日期字段。如果想把员工和部门关联在一起,每一个员工都有自己隶属的部门。
MySQL中的字段约束共有四种:
在这里插入图片描述

1.主键约束

主键约束要求字段的值在全表必须唯一,而且不能为NULL值。
建议主键一定要用数字类型,因为数字的检索速度很快。
如果主键是数字类型,还可以设置自动增长。

CREATE TABLE teacher(
	id INT PRIMARY KEY AUTO_INCREMENT,
	......
);
2.非空约束

非空约束要求字段的值不能为NULL值
NULL值以为没有值,而不是""空字符串

CREATE TABLE teacher(
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(200) NOT NULL,
	married BOOLEAN NOT NULL DEFAULT FALSE
);
3.唯一约束

唯一约束要求字段值如果不为NULL,那么在全表必须唯一

CREATE TABLE teacher(
	......
	tel CHAR(11) NOT NULL UNIQUE
);
4.外键约束

外键约束用来保证关联数据的逻辑关系
在这里插入图片描述
外键约束的定义是写在子表上的

CREATE TABLE t_dept(
	deptno INT UNSIGNED PRIMARY KEY,
	dname VARCHAR(20) NOT NULL UNIQUE,
	tel CHAR(4) UNIQUE
);
CREATE TABLE t_emp(
	emp INT UNSIGNED PRIMARY KEY,
	ename VARCHAR(20) NOT NULL ,
	sex ENUM("男","女") NOT NULL,
	deptno INT UNSIGNED,
	hiredate DATE NOT NULL,
	FOREIGN KEY (deptno) REFERENCES t_dept(deptno)
);

外键约束的闭环问题:
如果形成外键闭环,我们将无法删除任何一张表的记录。
在这里插入图片描述

十、索引

数据排序的好处:数据排序后,查找的速度会翻倍。

1.创建索引
CREATE TABLE 表名称(
	......,
	INDEX [索引名称](字段),
	......
);
2.添加索引
CREATE INDEX 索引名称 ON 表名(字段);ALTER TABLE 表名称 ADD INDEX [索引名称](字段);
3.显示索引
SHOW INDEX FROM 表名;
4.删除索引
DROP INDEX 索引名称 ON 表名;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值