MySQL

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

Windows平台下安装MySQL数据库——最详细教程来啦! - 知乎 (zhihu.com)安装教程

数据库的优点

持久化 便于管理

DB 有组织比较规范 数据仓库

DBMS 数据库管理系统   MySQL Oracle DB2 SqlServer

SQL 结构化程序语言 和数据库通信的语言

      1 通用  2灵活使用可以完成复杂数据库操作

列mysqlmy字段 行类似对象

 DBMS 分两类

    基于共享文件系统

    基于客户机-服务器的DBMS 安装两端

 

命令 net stop/start MySQL 停止/开启服务

mysql -h localhost -P 端口号 -u 账户  -p密码      h代表host     p(port)代表端口号 p和密码之间不能有空格

本机  mysql -u 账户 -p密码

1.关系型数据库

 关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的 二维表 组成的数据库

SQL

1.SQL简介

  • 英文:Structured Query Language,简称 SQL

  • 结构化查询语言,一门操作关系型数据库的编程语言

  • 定义操作所有关系型数据库的统一标准

  • 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”

2.通用语法

  • SQL 语句可以单行或多行书写,以分号结尾。

  • MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。

  • 注释

    • 单行注释: -- 注释内容 或 #注释内容(MySQL 特有)

    • 多行注释: /* 注释 *

MySQL 语句规范

不区分大小写  建议关键字 大写 表明 列明小写

每条命令用英文;

每条命令根据需要,可以进行缩进,或者换行     建议关键字单独一行

 注释  单行注释  #注释文字

     单行注释  -- 注释文字    注意有空格

         多行注释 /**/

3.分类

  • DDL(Data Definition Language) 数据定义语言,用来定义数据库对象:数据库,表,列等

  • DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改

  • DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)

  • DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户

 

一些简单的命令(见名知意)

 

mysql 保存用户信息    nfoemation_schema 保存元数据信息   performance_schema 搜集性能信息性能参数的   这三个数据库         能动    test数据库测试数据库是空的

 

 

DDL(Data Definition Language) 数据定义语言,用来定义数据库对象:数据库,表,列等

-- 查询全部数据库
SHOW DATABASES;

 

-- 创建数据库
CREATE DATABASE 数据库名称;

-- 创建数据库(判断:如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;

 

-- 删除数据库
DROP DATABASE 数据库名称;

-- 删除数据库(判断:如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;

  

-- 查看当前使用的数据库
SELECT DATABASE();

-- 使用某个数据库
USE 数据库名称;
select database();   查看我在哪个库

  

DDL操作表-查询表

-- 查询所有数据表
SHOW TABLES;
show tables from 库名;-- 展示数据库中的表;只是看不进去

 

-- 查询某个表的详细结构
DESC 表名称;
CREATE TABLE 表名 (
	字段名1  数据类型1,
	字段名2  数据类型2,
	…
	字段名n  数据类型n
);
-- 注意:最后一行末尾不要写逗号

  

  

 

1.删除数据表

  • 语法

 

-- 删除某个数据表
DROP TABLE 表名;

-- 删除某个数据表(判断:如果存在则删除)
DROP TABLE IF EXISTS 表名;

  

2.修改数据表

  • 语法

 

-- 修改表名
ALTER TABLE 表名 RENAME TO 新的表名;

-- 添加一列
ALTER TABLE 表名 ADD 列名 数据类型;

-- 修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;

-- 修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

-- 删除列
ALTER TABLE 表名 DROP 列名;

 

DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改

1.添加数据

  • 语法

  • -- 给指定列添加数据
    INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
    
    -- 给全部列添加数据(注意:需要给出全部列的数据)
    INSERT INTO 表名 VALUES(值1,值2,…);
    
    -- 给指定列批量添加数据
    INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
    
    -- 给全部列批量添加数据(注意:需要给出全部列的数据)
    INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;

2.修改数据

  • 语法
  • -- 注意:必须加修改的条件、否则将所有数据都修改
    UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件]; 
    

3.删除数据

  • 语法
  • -- 注意:必须加删除的条件、否则将所有数据都删除
    DELETE FROM 表名 [WHERE 条件];
    

 

 

 

DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)

1.查询语法组成

  • 分类

    • 基础查询

    • 条件查询(WHERE)

    • 分组查询(GROUP BY)

    • 排序查询(ORDER BY)

    • 分页查询(LIMIT)

  • 组成 [注意:语法有先后使用顺序]

SELECT 
    字段列表
FROM 
    表名列表 
WHERE 
    条件列表
GROUP BY
    分组字段
HAVING
    分组后条件
ORDER BY
    排序字段
LIMIT
    分页限定

2.基础查询

  • 语法

  • -- 查询多个字段
    SELECT 字段列表 FROM 表名;
    
    -- 查询所有数据
    SELECT * FROM 表名; 
    
    -- 去除重复查询
    SELECT DISTINCT 字段列表 FROM 表名;
    
    -- 起别名(as 可以省略)
    AS 别名
    

DQL条件查询

1.条件查询语法

  • 语法
  • SELECT 字段列表 FROM 表名 WHERE 条件列表;
    

2.模糊查询语法

  • 语法

  • SELECT 列名列表 FROM 表名 WHERE 字段 LIKE 通配符;
    - - _    代表单个任意字符
    - - %   代表任意个数字符
    

3.排序查询语法

  • 语法

  • SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;
    

4.聚合函数语法

  • 聚合函数:将一列数据作为一个整体,进行纵向计算。

  • 语法

  • SELECT 聚合函数名(列名) FROM 表;
    
    • 分类

     注意事项:null 值不参与所有聚合函数运算。

 

5.分组查询语法

  • 语法

  • SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
    

6.分页查询语法

  • 语法

  • SELECT 字段列表 FROM 表名 LIMIT  起始索引 , 查询条目数;
    
    • 计算公式

      • 起始索引 = (当前页码-1) * 每页显示的条数

      • 起始索引:从0开始。

    • 小提示

      • 分页查询 limit 是MySQL数据库的方言

      • Oracle 分页查询使用 rownumber

      • SQL Server分页查询使用 top

一、约束的概述和分类

1.约束的概念

  • 约束是作用于表中列上的规则,用于限制加入表的数据

  • 约束的存在保证了数据库中数据的正确性、有效性和完整性

    CREATE TABLE emp(
    	id int PRIMARY KEY AUTO_INCREMENT,	-- id 主键、自动增长
    	ename varchar(50) NOT NULL UNIQUE,	-- 姓名,非空、唯一
    	joindate date NOT NULL,				-- 非空
    	salary double(7,2) NOT NULL,		-- 非空
    	bonus double(7,2) DEFAULT 0			-- 如果无奖金、默认为0
    );
    

      

 mysql不支持check约束

-- 增加非空
ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
-- 删除非空约束
ALTER TABLE 表名 MODIFY 字段名 数据类型;
-- 建表后单独添加唯一约束
ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE;
--删除唯一约束
ALTER TABLE 表名 DROP INDEX 字段名;
-- 建表后单独添加主键约束
ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
--删除主键约束
ALTER TABLE 表名 DROP PRIMARY KEY;
-- 建表后单独添加默认约束
ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;
-- 建表后删除默认值
ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;

  

 

posted @ 2021-10-21 12:26  互联.王  阅读(88)  评论(0编辑  收藏  举报