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密码
关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的 二维表 组成的数据库
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) 数据定义语言,用来定义数据库对象:数据库,表,列等
1 2 | -- 查询全部数据库 SHOW DATABASES; |
1 2 3 4 5 | -- 创建数据库 CREATE DATABASE 数据库名称; -- 创建数据库(判断:如果不存在则创建) CREATE DATABASE IF NOT EXISTS 数据库名称; |
1 2 3 4 5 | -- 删除数据库 DROP DATABASE 数据库名称; -- 删除数据库(判断:如果存在则删除) DROP DATABASE IF EXISTS 数据库名称; |
1 2 3 4 5 | -- 查看当前使用的数据库 SELECT DATABASE (); -- 使用某个数据库 USE 数据库名称; |
1 | select database (); 查看我在哪个库 |
1 2 | -- 查询所有数据表 SHOW TABLES;<br>show tables from 库名; -- 展示数据库中的表;只是看不进去 |
1 2 | -- 查询某个表的详细结构 DESC 表名称; |
1 2 3 4 5 6 7 | CREATE TABLE 表名 ( 字段名1 数据类型1, 字段名2 数据类型2, … 字段名n 数据类型n ); -- 注意:最后一行末尾不要写逗号 |
-
语法
1 2 3 4 5 | -- 删除某个数据表 DROP TABLE 表名; -- 删除某个数据表(判断:如果存在则删除) DROP TABLE IF EXISTS 表名; |
-
语法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | -- 修改表名 ALTER TABLE 表名 RENAME TO 新的表名; -- 添加一列 ALTER TABLE 表名 ADD 列名 数据类型; -- 修改数据类型 ALTER TABLE 表名 MODIFY 列名 新数据类型; -- 修改列名和数据类型 ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型; -- 删除列 ALTER TABLE 表名 DROP 列名; |
DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改
-
语法
-
1234567891011
-- 给指定列添加数据
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,…)…;
- 语法
-
12
-- 注意:必须加修改的条件、否则将所有数据都修改
UPDATE
表名
SET
列名1=值1,列名2=值2,… [
WHERE
条件];
- 语法
-
12
-- 注意:必须加删除的条件、否则将所有数据都删除
DELETE
FROM
表名 [
WHERE
条件];
DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)
-
分类
-
基础查询
-
条件查询(WHERE)
-
分组查询(GROUP BY)
-
排序查询(ORDER BY)
-
分页查询(LIMIT)
-
-
组成 [注意:语法有先后使用顺序]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段 HAVING 分组后条件 ORDER BY 排序字段 LIMIT 分页限定 |
-
语法
-
1234567891011
-- 查询多个字段
SELECT
字段列表
FROM
表名;
-- 查询所有数据
SELECT
*
FROM
表名;
-- 去除重复查询
SELECT
DISTINCT
字段列表
FROM
表名;
-- 起别名(as 可以省略)
AS
别名
1.条件查询语法
- 语法
-
1
SELECT
字段列表
FROM
表名
WHERE
条件列表;
-
语法
-
123
SELECT
列名列表
FROM
表名
WHERE
字段
LIKE
通配符;
- - _ 代表单个任意字符
- - % 代表任意个数字符
-
语法
-
1
SELECT
字段列表
FROM
表名
ORDER
BY
排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;
-
聚合函数:将一列数据作为一个整体,进行纵向计算。
-
语法
-
1
SELECT
聚合函数名(列名)
FROM
表;
注意事项:null 值不参与所有聚合函数运算。
-
-
语法
-
1
SELECT
字段列表
FROM
表名 [
WHERE
分组前条件限定]
GROUP
BY
分组字段名 [
HAVING
分组后条件过滤];
-
语法
-
1
SELECT
字段列表
FROM
表名 LIMIT 起始索引 , 查询条目数;
-
-
起始索引 = (当前页码-1) * 每页显示的条数
-
起始索引:从0开始。
-
-
小提示
-
分页查询 limit 是MySQL数据库的方言
-
Oracle 分页查询使用 rownumber
-
SQL Server分页查询使用 top
-
1.约束的概念
-
约束是作用于表中列上的规则,用于限制加入表的数据
-
约束的存在保证了数据库中数据的正确性、有效性和完整性
1234567CREATE
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约束
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | -- 增加非空 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 ; |