MySQL数据库

MySQL数据库

数据库管理系统

数据库管理系统是一种大型软件。

常见的关系型数据库管理系统:

  • Oracle
  • DB2
  • SQL Server:现在用得少了
  • SQL Lite:用于手机端
  • MySQL:目前不要下载最新的8.0,下载5.7版本的。

下载地址:https://downloads.mysql.com/archives/installer/

MySQL数据库安装步骤略,环境配置很简单:

  1. 新建系统变量%MYSQL_HOME%,值为MySQL Server 5.7所在路径,默认为C:Program FilesMySQLMySQL Server 5.7
  2. 修改系统变量path,增加一个值为%MYSQL_HOME%in

MySQL数据类型

数值类型

数据类型 字节数
INT 4
DOUBLE 8
DOUBLE(M,D) 8。M表示长度,D表示小数位数
DECIMAL

日期类型

DATE

TIME

YEAR

DATETIME

TIMESTAP:时间范围短,不要用这个。

字符串类型

CHAR:用于定长字符串,如性别。

VARCHAR:用于变长字符串。

BLOB:二进制。

TEXT:长文本数据。

数据表的操作:

更改数据表的结构

ALTER TABLE 表名 操作......

操作包括:ADD,MODIFY,DROP,CHANGE,RENAME

修改记录的内容

  1. UPDATE

UPDATE 表名 SET 列1=新值1, 列2=新值2 WHERE 条件

注意:UPDATE语句常常需要配合WHERE条件一起使用,某则UPDATE将对整张表更新!

  1. DELETE

删除符合条件的记录。
DELETE FROM 表名 WHERE 条件

  1. TRUNCATE

清空整张表。
TRUNCATE 表名

Q: TRUNCATE 表DELETE FROM 表 有何区别?

A:TRUNCATE是销毁表然后按照原表结构重新建一张表,原表的行不受影响;
SELETE FROM 表是逐行删除表的每一行,每行都受到影响。

实体完整性约束

  • 主键约束 PRIMARY KEY:表中的某列值不可重复。
  • 唯一约束 UNIQUE:表中的某列值不可重复,但可以为NULL。
  • 自动增长列 AUTO_INCREMENT:自动增长,只能配合主键使用,使得INT类型的主键从1开始每次加1。

域完整性约束

对列的单元格的正确性做约束

  • 非空 NOT NULL
  • 默认值约束 DEFAULT:插入记录时指定某字段为DEFAULT时,其值会设为创建该列时用DEFAULT指定的默认值。

引用完整性约束

CONSTRAINT 引用名 FOREIGN KEY(列名) REFERENCES 被引用表(列名)

注意:
创建表时,先创建主表,后创建从表;
删除表时,先删除从表,再删除主表。

事务

事务是一个原子操作,由一条或多条SQL语句组成。这些SQL语句必须全部执行成功,事务才算成功;如果其中某条SQL语句执行失败,则整个事务失败。

事务的特性(ACID)

  1. 原子性:一个事务内的所有操作是个整体。
  2. 一致性:操作失败时,数据库要回滚到操作之前的状态。
  3. 隔离性:在执行完毕之前,数据的改变是外部看不到的。
  4. 持久性:持久性事务完成之后,它对系统的影响是永久性的。

事务的操作

  1. 开启事务:START TRANSACTION

  2. 提交修改:COMMIT

  3. 回滚:ROLLBACK

开启事务后执行的SQL语句都属于事务,全部执行成功后执行COMMIT进行提交,否则用ROLLBACK进行回滚。

用户管理

创建用户

CREATE USER 用户名 IDENTIFIED BY 密码

授权

GRANT ALL ON 数据库.表 TO '用户名'

数据库.*是指数据库里的所有表。

撤销权限

REVOKE ALL ON 数据库.表 FROM '用户名'

注意:撤销权限后,被撤销权限的人要在下次登录后才生效。

删除用户

DROP USER 用户名

视图

视图用来临时保存查询结果。视图不单独存储数据,原表内容发生改变时视图内容也会发生改变。

优点:简单性;安全性

缺点:

创建视图

CREATE VIEW 视图名 AS 查询语句

修改视图

  1. 若明确知道视图名存在,则可以这样修改:

    ALTER VIEW 视图名 AS 查询语句

  2. 若不确定某视图名是否存在,可以这样修改:

    CREATE OR REPLACE 视图名 AS 查询语句

删除视图

DROP VIEW 视图名

删除视图不会影响原表。

关于视图的注意事项:

  1. 视图不独立存储数据。原表改变内容,则视图跟着变化;
  2. 视图没有优化任何查询性能;
  3. 如果视图有以下结构,则视图不能修改:
    1. 聚合函数的结果;
    2. GROUP BY分组后的结果;
    3. HAVING过滤后的结果;
    4. DISTINCT去重后的结果;
    5. UNIONUNION ALL 联合的结果。

参考资料

https://www.bilibili.com/video/BV1BZ4y1H7LZ?from=search&seid=277125244471690868

B站记录视频学习进度:

1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36
37
原文地址:https://www.cnblogs.com/elisha/p/14025011.html