学习笔记及知识总结,持续更新中
一.
数据库分类
http://www.jb51.net/article/139219.htm 安装说明
https://www.cnblogs.com/xyabk/p/8967990.html 安装说明
1. 网络数据库
2. 层级数据库
3. 关系数据库
另一种区分方式:基于介质
存储介质分为两种:磁盘和内存
关系型数据库:存储在磁盘中
非关系型数据库:存储在内存中
关系型数据库
关系数据结构:数据以什么方式存储(二维表)
关系操作集合:关联和管理对应的存储数据(SQL指令)
关系完整性约束:数据内部有对应的关联关系,数据与数据之间也有对应的关联联系
表内约束:对应的具体列只能放对应的数据(不能乱放)
表间约束:(外键)
典型关系型数据库:
小型:Microsoft Access,SQLite
中型:SQL Server,Mysql
大型:Oracle,DB2
二.SQL介绍
1. 数据查询语言DQL 专门用于查询数据select/show
2. 数据操作语言DML 专门用于写数据 insert/update/delete
3. 事务处理语言TPL 专门用于事务安全处理transaction/
4. 数据控制语言DCL 专门用于权限管理grant/revoke
5. 数据定义语言DDL 专门用于结构管理create/drop(alter)
三.Mysql
启动和停止MySQL服务
C/S结构 客户端 服务端
服务端对应的软件Mysqld.exe
1. 通过命令行的形式cmd
net start 服务(Mysql):开启服务
net stop Mysql:关闭服务
2. 系统服务方式
前提:安装MySQL时将其添加到Windows的服务中
(计算机--管理--服务)或命令行 service.msc
找到mysql打开服务
登录和退出MySQL服务
通过客户端mysql与服务器进行连接认证,就可以操作
通常:客户端与服务端不在一台电脑上
登录
1. 找到MySQL.exe(通过cmd如果安装时指定了mysql.exe所在路径为环境变量,就可以直接访问;如果没有,进入到mysql所在路径)
2. 输入对应的服务器地址 -h:host -h[IP 地址/域名]
3. 输入服务器中mysql监听的端口 -P:port -P:3306
4. 输入用户名 -u:username -u:root
5. 输入密码 -p:password -p:root
连接认证基本语法:
mysql.exe/mysql -h主机地址 -P3306 -u用户名 -p密码
例:mysql.exe -hlocalhost -P3306 -utoor -proot
注意:通常端口都可以默认:mysql默认3306
密码的输入可以先输入-p,直接换行,然后以密文方式输如密码
例:mysql -hlocalhost -uroot -p
Enter pqssword:****
退出
断开与服务器的连接
建议使用SQL提供的指令
exit;
\q
quit:
MySQL服务端架构
以下几层:
1. 数据库管理系统(最外层)DBMS 专门管理服务端的所有内容
2. 数据库(第二层):DB 专门用于存取数据的仓库(可以有多个)
3. 二维数据表(第三层):Table 专门用于存储具体实体的数据
4. 字段(第四层)fileld 具体存储某种类型的数据(实际存储单元)
数据库中常用的关键字
row:行
column:列(field)
数据库基本操作
-- xxxx (注释)
创建数据库
基本语法:create datebase数据库名字【库选项】
库选项:数据库的相关属性
字符集:charset 字符集 代表当前数据库下的所有表存储的数据默认指定的字符集(如果不指定,采用DBMS默认的UTF-8)
create database 数据库名称 charset 字符集名称;
create database myfatabase charset gbk;
校对集:collate 校对集 随字符集
显示数据库
每当用户通过sql指令创建一个数据库,系统就会产生一个对应的存储数据的文件夹(通常存储在安装目录是data下)
并且每个数据库文件夹下都有一个opt文件,保存的数对应的数据库选项
显示全部
基本语法:show databases;
显示部分
基本语法:show databases like ‘匹配模式’;
_:匹配当前位置单个字符
%:匹配指定位置多个字符
显示数据库创建语句
基本语法:show create database 数据库名字;
看到的指令并非原始指令,已经被系统加工过
选择数据库
如果要操作数据必须要进入到对应的数据库才行
基本语法:use 数据库名字
修改数据库
修改数据库 库选项(字符集和校对集)
基本语法:alter database 数据库名字 charset=字符集
mysql5.5之前rename 可修改数据库名字,5.5后不行
删除数据库
基本语法:drop database 数据库名字;
删除虽简单,不要轻易删,做好安全操作,确保数据没问题。
对应的文件夹和opt文件都被删除了
数据表操作
创建数据表
普通创建表
基本语法:create table 表名(字段名 字段类型[字段属性],字段名 字段类型[字段属性], .....)[表选项];
表必须放在数据库下,两种方式将表放在指定数据库下
1. 在数据表名字前面加上数据库名字,用“.”连接 数据库.数据表
create table mydatabase.class(name varchar(10));
2.在创建数据表前进入到某个具体数据库 use 数据库名字;
use database;
create table newtable(name varchar(10));
默认创建到当前所在数据库
表选项,与数据库选项类似
engine:存储引擎,MySQL提供的具体的存储数据方式,默认innodb(5.5以前默认myisam)
charset:字符集,只对当前自己表有效(级别比数据库高)
collate:校对集,只对当前自己表有效
复制已有表结构
从已经存在的表复制(只复制结构,表中有数据不复制)
基本语法:create table新表名 like 表名; 只要使用数据库.表名,就可以在任何数据库下访问其他数据库的表名
use test;(进入test数据库)
create table teacher like mydatabase.teacher;
alter user ‘root’@’localhost’ identified with mysql_native_password by ‘password’