一、历史
数据库技术:
- 人工管理 数据不保存,没有文件的概念,数据面向应用
- 文件系统 文件形式多样,程序直接有一定的独立性,数据长期保存在外存上,数据存取基 本以记录为单位
- 数据库系统 结构化的数据结构,较高的数据独立性、最低的冗余度、实现数据共享、数据一 致性和可维护性(故障的发现和恢复、并发控制、安全性和完整性控制)
按照数据模型发展,数据库技术分为: DB
- 层次和网状数据库管理系统
- 关系数据库管理系统(RDBMS)
- 后关系数据库技术阶段
二、概述
- 数据库 (DB) 是长期存储在计算机内、有组织、可共享的数据的集合。
- 数据库管理系统(DBMS) 位于用户和操作系统之间的一层数据管理软件,对数据库进 行统一管理和控制,用户通过 DBMS 访问数据库中表内的数据
- 结构化查询语言 (SQL) 只关注结果,不关注过程
数据库主要特点:
(1)实现数据共享 所有用户可同时存取数据库中的数据
(2)减少数据的冗余度
(3)数据的独立性 逻辑结构和应用程序相互独立
(4)数据集中管理
(5)数据一致性和可维护性 (安全性控制、完整性控制、并发控制、故障的发现和恢复吧)
oracle 与 mysql 对比:
oracle 更适合跨国企业,对费用不敏感,对性能和安全要求高
mysql 体积小,速度快,总体拥有成本低、开源
三、安装
sudo apt-get install mysql-serber-8.0
Y
查看账号、密码并复制 、登录
mysql -u账号 -p密码
修改密码,退出命令行,重新登录
启动数据库
sudo service mysql start
关闭数据库
sudo service mysql stop
重启数据库
sudo service mysql restart
四、卸载
1、查看 mysql 依赖
dpkg --list|grep mysql
2.、卸载mysql
sudo apt-get remove mysql-common
sudo apt-get autoremove --purge mysql-server-8.0
3、清除残留数据
dpkg -l|grep ^rc|awk '{print$2}' |sudo xargs dpkg -P
4、再次查看mysql 剩余依赖项
dpkg --list|grep mysql
5、如果第四步还有数据,继续删除剩余依赖项
sudo apt-get autoremove --purge mysql-apt-config
五、对象
数据库对象 create 创建、alter 修改、delete 删除
表(存储数据的逻辑单元)、
数据字典(系统表,系统维护)、
约束(数据校验)、
视图(投影,映射,数据的逻辑显示)、
索引(提高查询性能)、
存储过程(用于完成一次完整的业务处理)、
存储函数(用于完成一次特定的计算)、
触发器(事件监听)
六、操作
SQL 为了与关系型数据库通讯而使用的语言,几乎所有关系型数据库都支持 SQL ,但不同数据库之间存在一定的差异
第一代编程语言 机器语言 面向机器 二进制代码
第二代编程语言 汇编语言 指令
第三代编程语言 高级开发语言 C C++ java
第四代编程语言 只告诉计算机需要做什么
提高可能性,子句分行写,关键字不能简写,也不能换行
1、SQL 的分类
- DDL 数据定义语言
用来定义数据库对象:数据库、表、列等
关键字 :CREATE、ALTER、DROP、RENAME、TRUNCATE
- DML 数据操作语言
用来对数据库中表的数据进行增删改
关键字:INSERT、 DELETE、 UPDATE
- DQL 数据查询语言
用来查询数据库中表的记录(数据)
关键字:SELECT 、WHERE
- DCL 数据控制语言
用来定义数据库的访问权限和安全级别、以及创建用户
关键字:GRANT(赋权)、 REVOKE(撤销权限)
2、标识符
字母、数字、下划线 @、#、¥
长度小于 128 位
字符串型和日期时间类型的数据可以使用单引号 '' 表示
列的别名,尽量使用 " " ,不建议省略 as
3、注意事项
MySQL 在 Wincows 环境下是 大小写 不敏感的
MySQL 在Linux环境下 是大小写 敏感的
- 数据库名、表名、表的别名、变量名是严格区分大小写的
- 关键字、函数名、列名(字段名)、列的别名(字段的别名)是忽略大小写的
建议:
数据库名、表名、表的别名、字段名、字段的别名 等都小写
关键字、函数名、绑定变量等都大写
注释:
单行注释 #注释文字
单行注释 -- 注释文字 -- (-- 后面必须包含一个空格)
多行注释 /* 注释文字 */
4、操作命令
(1)显示所有数据库
show databases;
(2)创建数据库
create database if not exists db01;
(3)选择数据库
use db01;
(4)查看当前在哪个数据库下面
select database();
只有使用了 use ,进入了具体的数据库才能查询到内容
(5)显示数据库的创建过程
show create database db01\G;
(6)删除数据库
drop database db01;
(7)查看系统变量
show variables;
(8)查看以 auto 开头的所有变量
show variables like 'auto%';
(9)临时设置变量
set character_set_server=gbk; 只对当前开启的窗口生效
(10)显示系统状态,获得数据库运行信息
show status;
(11)显示哪个线程正在运行
show [full] processlist;
如果不使用 [full] ,那么只有头 100 字符被显示
(12)列出对一个用户必须发出以重复授权的授权命令
show grants for root@localhost ;
(13)执行 sql 文件
source /home/master/briup_create.sql
source /home/master/briup_populate.sql
(14)查看表的构建语句
show create table briup.s_emp; 数据库名.表名
(15)查看表结构
describe s_emp;
或
desc s_emp;
(16)查看 s_emp 表中 以 ls 开头的列的信息
show columns from S_emp like 'la%';
(17)显示某个表的索引
show index from s_emp [from briup];
(18)查询数据库支持的引擎
show engines;
/// InnoDB (默认值) 支持事务、外键约束、灾难恢复、自动添加列属性 auto_increment
CSV (不支持索引)
MEMDRY (基于内存)
ARCHIVE BLACKHOLE MyISM