什么是数据库?
# 用于存储数据的仓库
# 数据可以在硬盘姐内存中存储数据
# 数据库与文件存储数据的区别:
# 数据库本质是通过文件存储数据,
# 数据库的概念就是系统的管理存储数据文件
数据库介绍
# 数据路的服务器端 存放数据库主机的服务集群
# 数据库的客户端 可以连接数据库的任意客户端
# DBA(数据库管理员)
# 本质就是socket套接字CS架构应用
数据库的基本概念
# 库: 多表构建一个数据库 本质就是文件夹
# 表: 多条数据构件一张表 本质就是文件
# 记录(字段): 用来存放一条条的数据 本质就是文件中的一条条数据记录
# 字段 id,name,sex,age,gender ==>>> 一条数据记录
数据库分类
# 关系数据库(mysql oracle sqlserver access bd2)
# 有表的概念
# 以表中一条条数据
# 非关系型数据库(radis mongdb memcache)
# 没有表的概念
# 通过KEY:VALUE键值对方式存储文件
数据库启动与连接
# 前提:配置环境变量
# 1.我的电脑>>
# 1.前往数据库安装路径,bin文件夹下,cmd执行mysqld 启动MySQL服务端
# 2.前往数据库安装路径,bin文件夹下,cmd执行mysql 启动客户端连接服务端
# 将MySQL 服务端添加到系统服务,在系统服务中启动MySQL,命令 mysqld --install
# 进入系统服务: win+r => services.msc => 找到mysql服务手动启动或关闭
# 连接数据库:mysql -hlocalhost -P3306 -uroot -p
# 通过最高权限进入数据库, 要采用root用户进入, 连入本地数据库: mysql -uroot -p
# 查看mysql版本: select version();
# 查看当前用户: select user();
# 查看mysqld下的(当前用户可以操作的)所有数据库: show databases;
密码操作
# 知道旧密码
# 修改密码: mysqladmin -uroot -p旧密码 password "新密码"
# 遗忘旧密码
# 1.绕过授权表启动服务(安全认证的服务停止): mysqld --skip-grant-tables;
# 2.以任意密码登录root用户: mysql -uroot -P任意
# 3.更新密码: update mysql.user password=password("新密码") where user=root and host="localhost"
# 4.刷新权限: flush privileges;
统一字符编码
# 查看数据库配置信息: s => 统一编码 => 防止乱码(读取不方便,数据丢失)
# 1.在mysql安装根目录下:创建my.ini (my.cnf) (命令:type nul>文件名.文件后缀)
# 2.设置配置信息并保存
[mysqld]
#port=7777 注释
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
# 3.重启服务
SQL语句
SQL语言分类
#1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
#2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
#3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
操作文件夹(database)
create database db1 charset utf8; #增
create database db1 charset utf8; #增
# 修改字符编码集
create database db1 charset='utf8'
show databases; #查寻所有数据库
show create database db1;
alter database db1 charset utf8; #修改
drop database db1 #删除
操作表(tables)
# 先切换到文件夹下: use db1
# 查询当前数据库 select database();
create table t1(id int,name char); # 增,创建表(字段1 类型, 字段2 类型...)
show tables; # 查询
show create table t1;
alter table t1 modify name char(3);
alter table t1 change name name1 char(2); # 修改
#修改表名称 alter table t1 rename t2;
drop table t1; #删除
操作文件中的内容(字段)
insert into t1 values(1,'egon1')(2,'egon2')(3,'egon3'); # 新增
select * from t1; # 查询
update t1 set name='sb' where id=2; # 更新
delete from t1 where i d=1; # 删除
表操作
delete from t1; # 如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
truncate table t1; # 数据量大,删除速度比上一条快,且直接从零开始,无法删除
auto_increment # 表示:自增
parimary key # 表示:约束(不能重复且不能为空);加快查找速度