三、数据库
数据库的基本概念
-
数据库的英文单词:DataBase 简称:DB
-
什么是数据库?
-
用于存储和管理数据的仓库
-
-
数据库的特点:
-
持久化存储数据的。其实数据库就是一个文件系统
-
方便存储和管理数据
-
使用了统一的方式操作数据库 --SQL
-
-
常见的数据库软件
-
MYSQL:开源免费的数据库,小型的数据库,已经被Oracle收购了.MySQL6.x版本也开始收费了
-
Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购了SUN公司,收购了MYSQL
-
DB2:IBM公司的数据库产品,收费的。常用在银行系统中。
-
SQLServer:MicroSoft公司收费的中型数据库。C#、.net等语言常使用
-
SyBase:已经淡出历史舞台。提供了一个非常专业的数据建模的工具PowerDesigner
-
SQLite:嵌入式的小型数据库,应用在手机端
-
常用数据库:MYSQL、Oracle
-
-
MySQL数据库软件
-
安装
-
找度娘
-
-
卸载
-
去mysql的安装目录找到my.ini文件
-
赋值:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
-
-
卸载mysql
-
删除C:/ProgramData目录下的MySQL文件夹
-
-
配置
-
MySQL服务启动
-
右键此电脑---->单击服务和应用程序----->单击服务---->找到MySQL点击启动
-
cmd--->services.msc 打开服务器的窗口找到MySQL点击启动
-
使用管理员权限打开cmd
-
net start mysql:启动mysql的服务
-
net stop mysql:关闭mysql的服务
-
-
-
MySQL登录
-
mysql -uroot -p密码
-
mysql -hip -u -p连接目标的密码
-
mysql --host=ip --user=root --password=连接目标的密码
-
-
MySQL退出
-
exit
-
quit
-
-
MySQL的目录结构
-
MySQL安装目录
-
配置文件:my.ini
-
-
MySQL数据目录
-
几个概念
-
数据库:文件夹
-
表:文件
-
数据:存放的数据
-
-
-
-
-
SQL
-
什么是SQL?
-
Structured Query Language:结构化查询语言
-
其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为”方言“
-
-
SQL通用语法
-
SQL语句可以单行或多行书写,以分号结尾
-
可使用空格和缩进来增强语句的可读性
-
MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
-
3中注释
-
单行注释:--空格注释内容 或 #空格(可要可不要)注释内容(mysql 特有)
-
多行注释:/* 注释内容 */
-
-
-
SQL分类
-
DDL(Data Definition Language)数据定义语言
-
用来定义数据库对象:数据库、表、列等。
-
关键字:create, drop, alter等
-
-
DML(Data Manipulation Language)数据操作语言
-
用来对数据库中表的数据进行增删改。
-
关键字:insert, delete, update 等
-
-
DQL(Data Query Language)数据查询语言
-
用来查询数据库中表的记录(数据)
-
关键字:select, where 等
-
-
DCL(Data Control Language)数据控制语言(了解)
-
用来定义数据库的访问权限和安全级别,及创建用户
-
关键字:CRANT , REVOKE 等
-
-
DDL:操作数据库、表
-
操作数据库:CRUD
-
C(Create):创建
-
创建数据库:
-
create database 数据库名称;
-
-
创建数据库,判断不存在,在创建:
-
create database if not exists 数据库名称;
-
-
创建数据库,并指定字符集
-
create database 数据库名称 character set 字符集名称;
-
-
练习:创建db2数据库,判断是否存在,并指定字符集为GBK
-
create database if not exists db2 character set gbk;
-
-
-
R(Retrieve):查询
-
查询所有数据库的名称:
-
show databases;
-
-
查询某个数据库的字符集:查询某个数据库的创建语句
-
show create database 数据库名称;
-
-
-
U(Update):修改
-
修改数据库的字符集
-
alter database 数据库名称 character set 字符集名称;
-
-
-
D(Delete):删除
-
删除数据库
-
drop database 数据库名称;
-
-
判断数据库存在,存在才删除
-
drop database if exists 数据库名称;
-
-
-
使用数据库
-
查询当前正在使用的数据库名称
-
select database();
-
-
使用数据库
-
use 数据库名称;
-
-
-
-
操作表
-
C(Create):创建
-
语法:
-
create table 表名(
-
列名1 数据类型1,
-
列名2 数据类型2,
-
……
-
列名n 数据类型n);
-
注意:最后列名的数据类型后不需要加逗号(,)
-
-
数据库类型:
-
int:整数类型
-
age int,
-
-
double:小数类型
-
score double(5,2)
-
-
date:日期,只包含年月日,yyyy-MM-dd
-
datetime:日期,包含年月日时分秒,yyyy-MM-dd HH:mm:ss
-
timestamp:时间戳类型,包含年月日时分秒,yyyy-MM-dd HH:mm:ss
-
如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
-
-
varchar:字符串
-
name varchar(20):姓名最大20个字符
-
zhangsan 8个字符 张三 2个字符
-
-
-
复制表:
-
create table 表名 like 被复制的表名;
-
-
-
-
R(Retrieve):查询
-
查询某个数据库中所有的表名称
-
show tables;
-
-
查询表结构
-
desc 表名;
-
-
-
U(Update):修改
-
修改表名
-
alter table 表名 rename to 新的表名;
-
-
修改表的字符集
-
alter table 表名 character set 字符集名称;
-
-
添加一列
-
alter table 表名 add 列名 数据类型;
-
-
修改列名称 类型
-
alter table 表名 change 列名 新列名 新数据类型;
-
alter table 表名 modify 列名 新数据类型;
-
-
删除列
-
alter table 表名 drop 列名;
-
-
-
D(Delete):删除
-
drop table 表名;
-
drop table if exists 表名;
-
-
客户端图形化工具:SQLYog
DML:增删改表中数据
-
添加数据:
-
语法:
-
insert into 表名(列名1,列名2,……,列名n) values(值1,值2,……,值n);
-
-
注意:
-
列名和值要一一对应
-
如果表名后,不定义列名,则默认给所有列添加值
-
insert into 表名 values(值1,值2,……,值n);
-
-
除了数字类型,其他类型需要用引号(单双都可以)引起来
-
-
-
删除数据:
-
语法:
-
delete from 表名 [where 条件]
-
-
注意:
-
如果不加条件,则删除表中所有记录
-
如果要删除所有记录
-
delete from 表名;----不推荐使用。有多少条记录就会执行多少次删除操作
-
TRUNCATE TABLE 表名;----推荐使用,效率更高,先删除表,然后在创建一张一样的空表
-
-
-
-
修改数据:
-
语法:
-
update 表名 set 列名1 = 值1,列名2 = 值2,……[where 条件];
-
-
注意:
-
如果不加条件,则会将表中所有记录全部修改
-
-
DQL:查询表中的记录
-
select * from 表名
-
语法:
-
select
-
字段列表
-
-
from
-
表名列表
-
-
where
-
条件列表
-
-
group by
-
分组字段
-
-
having
-
分组之后的条件
-
-
order by
-
排序
-
-
limit
-
分页限定
-
-
-
基础查询
-
多个字段的查询
-
select 字段名1,字段名2,…… from 表名;
-
注意:
-
如果查询所有字段,则可以使用*来替代字段列表
-
-
-
去除重复
-
distinct
-
-
计算列
-
一般可以使用四则运算计算一些列的值。(一般只会进行数值的计算)
-
ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
-
表达式1:哪个字段需要判断是否为null
-
表达式2:如果该字段为null后的替换值
-
-
-
起别名
-
as:as也可以省略
-
-
-
条件查询
-
where子句后跟条件
-
运算符
-
大于(>)、<、<=、>=、=、<>
-
between……and
-
in(集合)
-
like:模糊查询
-
占位符:
-
_:单个任意字符
-
%:多个任意字符
-
-
-
is null
-
and 或 &&
-
or 或 ||
-
-
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)