MYSQL数据库知识总结

一 数据库简介

数据库,顾名思义是用来存储数据的仓库。通常把数据库分为:关系型数据库 、 非关系型数据库

关系型数据库:关系型数据库通过外键关联来建立表与表之间的关系,即表与表、字段与字段之间存在找关联; 非关系型数据库:非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性

二 MYSQL 常用SQL关键字

  1. SELECT:从数据库中获取数据。
  2. FROM:指定查询的表格名称。
  3. WHERE:设置查询条件。
  4. INSERT:向数据库插入新数据。
  5. UPDATE:更新数据库表格中已有的记录。
  6. DELETE:删除数据库表格中的记录。
  7. CREATE:创建新表格、存储过程、函数、索引等。
  8. ALTER:修改已有的数据库对象,如修改表格的列名等。
  9. DROP:删除已有的数据库对象。
  10. LIKE:用于查询符合特定模式的数据。
  11. IN:表示一个数据是否在另一个数据列表中。
  12. UNION:将两个或多个 SELECT 语句的结果合并到一起。
  13. ORDER BY:按照指定列对数据进行排序。
  14. GROUP BY:按照指定列对数据进行分组。
  15. COUNT:统计行数。
  16. AVG:求平均值。
  17. MAX:求最大值。
  18. MIN:求最小值。

  三 MYSQL基本语句

1.DDL语句

1.创建数据库

create  database 数据库名

2.打开数据库

use 数据库名

3.  创建表                                                                                                                                                

CREATE TABLE 表名 (
    列名1  数据类型,
    列名2   数据类型,
    .....
);

  4.修改表结构

AKTER [datebase/schema] 数据库名 /*修改数据库名*/


ALTER [IGNORE] TABLE 表名
ADD   [COLUMN]   列名  [FIRST| AFTER 列名]   /*添加列*/

ALTER [COLUMN] 列名 
     {SET DEFAULT 默认值} DROP DEFAULT /*修改默认值*/


CHANGE [COLUMN] 旧列名 列定义    /*对列重命名*/

[FIRST|AFTER 列名]     


MOIFY [COLUMN] 定义列  [FIRST | AFTER 列名]  /*修改列类型*/


DROP  [COLUMN] 列名   /*删除列*/


RENAME  [TO] 新表名   /*重命名该表*/




 5.删除表

DROP TABLE [IF EXTISTS] 表名1 [表名2]....

 说明:

IF EXISTS:避免要删除的表不存在出现错误信息

 约束

约束是用于定义表格数据列(字段)的限制条件的一种机制。

 SQL语句中常用约束

  1.   主键约束:PRIMARY KEY     设置列为主键,保证唯一性和非空性。
  2.  非空约束:NOT NULL           设置列不允许为空值。
  3. 唯一约束:UNIQUE         设置列值不能重复。
  4. 外键约束:FOREIGN KEY           创建一个到另一个表格的外键约束,

主键约束

 主键约束是在 MySQL 数据库中定义表格的一种约束,用于唯一标识表格中的每一条记录

可以使用 AUTO_INCREMENT 关键字来自动在每次插入新行时生成唯一的主键值

实例如下:

CREATE TABLE Students (
  ID INT PRIMARY KEY AUTO_INCREMENT,
  Name VARCHAR(50),
  Age INT,
  Gender CHAR(1)
);

外键约束

用于确保关系型数据库中不同表格之间关联数据的完整性和正确性。

实例如下:

CREATE TABLE Customers (
  CustomerID INT PRIMARY KEY,
  CustomerName VARCHAR(50),
  CustomerAddress VARCHAR(255)
);

CREATE TABLE Orders (
  OrderID INT PRIMARY KEY,
  OrderDate DATE,
  CustomerID INT,
  ProductID INT,
  FOREIGN KEY (CustomerID, ProductID) 
    REFERENCES Customers(CustomerID, ProductID)
);

 DML语句

1.插入数据

INSERT INTO 表 (字段1 字段2, 字段3, ...)
   VALUES (值1, 值2, 值3, ...);  /*注意,插入时要一一对应*/

 2.修改数据

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

3.删除数据

DELETE FROM 表名 
WHERE 条件;

DQL语句

1.简单查询

全表查询

SELECT * FROM 表名

查询一个字段

SELECT 字段 FROM 表名

2. 条件查询

SELECT 字段 FROM 表明
WHERE 条件

数据排序

1.升序

SELECT 字段名 FROM 表名 ORDER BY 字段 ASC
/*若是升序ASC可以省略。因为默认就是升序*/

2.降序

SELECT 字段名 FROM 表名 ORDER BY 字段名 DESC;

连接查询

分类

内连接

1.等值连接

2.非等值连接

3.自连接

外连接

1.左连接

2.右连接

内连接

SELECT 字段1, 字段2, ... FROM 表1
INNER JOIN 表2 ON 表1.字段名 = 表2.字段名;

左连接 

SELECT 表1.字段1, 表1.字段2, ..., 表2.字段1, 表2.字段2, ...
FROM 表1
LEFT JOIN 表2
ON 表1.字段名 = 表2.字段名;

 右连接

SELECT 表1.字段1, 表1.字段2, ..., 表2.字段1, 表2.字段2, ...
FROM 表1
RIGHT JOIN 表2
ON 表1.字段名 = 表2.字段名;

limit子句

LIMIT 偏移量,行数|行数 OFFSET  偏移量

说明:语法中的偏移量和行数必须是非负的整数常数

分组查询

GROUP BY 后面加列名或者表达式,有having就一定有GROUP BY,有GROUP BY 不一定有having

 常用聚合函数

函数名说明
COUNT统计指定列中非 NULL 值的数量
SUM计算指定列中数值类型数据的总和
AVG计算指定列中数值类型数据的平均值
MAX找出指定列中的最大值
MIN找出指定列中的最小值

 

 

 

 

 

 

   视图

视图是从一个或者多个表(或视图)导出的虚拟表,不进行实际存储

1.创建视图

CREATE VIEW  视图名 列名列表

2.查询视图

SELECT 列名1 列名2 
FROM 视图名

 

数据库安全

数据库安全包括,数据库账户权限管理,数据加密,数据库备份和恢复,数据库审计,安全更新补丁。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值