MySQL
数据库软件(MySQL)
08. 基础-SQL-DDL-数据类型及案例_哔哩哔哩_bilibili
数据库DataBase(DB)(相当于备忘录):储存数据
数据库管理系统(操纵和管理数据库的大型软件,比如MySQL)
SQL(structed query language):操作关系型数据库的语言
MySQL(免费软件,写数据库用,就像我现在写markdown用Typora一样)
最终都是用的SQL操作,所以软件无所谓的,习惯那个用哪个
MySQL
- 社区版(免费)
- 商业版(给钱)
关系型数据库(RDBMS):建立在关系模型上,由==多张连接的二维表==组成的数据库!

仅展示两张,这两张的关联在dept_id与id/name里!
非关系型数据库就是不按表储存
安装了MySQL就相当于有了MySQL服务器,就可以将客户端与DBMS连接
SQL语法:(和C++类似)
DDL(data defination language): 定义对象(搭建大致框架)
DML (data manipulation language): 增 删 改
DQL (data quary language): 查询
DCL (data control language): 权限问题
DDL
查询所有数据库
1 | SHOW DATABATES; |
查询当前数据库
1 | SELECT DATABASE();//记不清楚自己的数据库了,记得加括号,这是个函数 |
创建数据库
1 | CREATE DATABASE 数据库名; |
删除数据库
1 | DROP DATABASE 数据库名;//drop |
使用数据库
1 | USE 数据库名;//相当于切换到这个数据库下,和cd切换一样 |
查询当前数据库所有表
1 | SHOW TABLES; |
查询表结构
1 | DESC 表名;//description描述 |
查询指定表的建表语句
1 | SHOW CREATE TEBLE 表名;//这个比desc多展示一些东西!!! |
创建表(函数)//==切记不要在系统库里面用,创建之前一定要USE到自己的数据库==
1 | CREATE TABLE 表名//相当于类或结构体 |
int ,float,double

char//固定,但性能好,如果不写长度,默认为1
varchar//可变,性能差

date,time

1 | CREATE DATABASE; |
添加
1 | ALTER TABLE 表名ADD 字段名 类型(长度) COMMENT 注释;//alter是改变! |
案例
为emp表增加一个新字段nickname,类型为varchar(20)
修改
1 | //修改数据类型 |
案例
将emp表的nickname改成username,类型为varchar(30)
删除字段
1 | ALTER TABLE 表名 DROP 字段名; |
案例
将emp表的username删除
修改表名
1 | ALTER TABLE 表名 RENAME TO 新表名; |
案例
将emp表的表名修改为employee
删除表
1 | DROP TABLE IF EXISTS 表名;//IF EXISTS可以不加 |
删除指定表,并重新创建该表
1 | TRUNCATE TABLE 表名;//truncate删除 |
1 | //内容回顾DDL |
==但是这样子在命令行里操作不直观,所以可以可视化处理,这样子可以清晰且提高效率==
图形化界面
Sqlyog/==DataGrip==/Navicat
DataGrip里创建数据库schema和database一样

DML
增加(INSERT)
修改(UPDATE)
删除(DELETE)
添加数据
给指定字段添加数据
1
2
3
4
5
6
7INSERT INTO 表名 (字段1,字段2,...)VALUES(值1,值2,....);
//如果是给所有字段添加数据,那么就直接不写(字段1,字段2,...)
//如果要批量添加:VALUES(值1,值2,....),(值1,值2,....),(值1,值2,....);
//在value后添加”,“隔开。
//*可不可以表示泛呢?好像没法。
//实质上也是键值对,所以要对应
//字符串和日期本质都是字符串,所以要放在引号里修改数据
1
2UPDATE 表名 SET 字段名1=值1,字段名2=值2,... WHERE 条件;
//没有条件就是修改整张表!!!所以修改一个那么就得加条件,别一个不小心把整张表都改了删除数据
1
2
3DELETE FROM 表名 WHERE 条件;
//没有条件就是删除整张表的数据
//DELETE不能只删除某一个字段的值(可以用update)
1 | //内容回顾 |
DQL
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
基本查询
条件查询
聚合函数
分组查询
排序查询
分页查询
查询//返回的是一个表!按列返回
所有查询的本质就是
1 | SELECT 字段列表 FROM 表名; |
- 基本查询
1 | //查询返回多个字段 |
条件查询//加WHERE实现
1
SELECT 字段列表 FROM 表名 WHERE 条件列表;

聚合函数(将一列数据作为一个整体,进行纵向计算)
1
SELECT 聚合函数(字段列表)FROM 表名;

