1.数据库
-
学习数据库主要学习的就是如何对数据进行增删改查操作.
增加(插入数据) 删除数据 修改数据 查询数据 -
为什么使用数据库软件?
之前在webserver时通过IO技术已经操作过数据,其实这部分代码相当于自己写了一个数据库软件,只不过功能较少执行效率较低,将来工作中不管开发什么网站都需要对数据进行增删改查操作,这种使用频率较高而且开发过程复杂的内容在互联网行业中肯定会有一个通用的解决方案. -
DBMS:DataBaseManagementSystem数据库管理系统(数据库软件),包括:MySQL/Oracle/SQLserver/DB2等
-
学习数据库主要学习如何和数据库软件进行交流
通过SQL语言和数据库软件进行交流 -
常见的DBMS介绍:
- MySQL: Oracle公司产品, MySQL在08年被Sun公司收购,09年Sun公司被Oracle公司收购,开源软件, 被收购后MySQL创始人从Oracle离开创建了MariaDB,MariaDB就是MySQL软件的一个分支. 市占率第一
- Oracle: Oracle公司产品, 性能最高价格最贵的数据软件. 市占率第二
- SQLserver: 微软公司产品 .net语言使用此数据库 市占率第三.
- DB2: IBM公司产品
- SQLite: 轻量级数据库软件,安装包只有几十k. 主要 应用在移动设备和嵌入式设备中
-
开源和闭源:
开源:开发源代码, 盈利方式:靠卖服务, 有技术大拿无偿维护升级.
闭源:不开放源代码, 盈利方式:靠卖产品(软件)和卖服务, 有技术大拿攻击找漏洞,但是产品公司会花钱养一群技术大拿维护和升级.
2.SQL语言
-
Structured Query Language:结构化查询语言,用户程序员和数据库软件进行交流
-
执行SQL语言之前需要先连接数据库软件
- windows: 开始->MySQL/MariaDB->MySQL Client 点击运行 然后输入自己的密码 回车
- linux: 在桌面右键->打开终端 输入以下指令
mysql -uroot -p 回车 输入密码 再回车
-
退出命令: exit;
Access denied for user 'root'@'localhost' (using password: YES) 密码错误
3.SQL分类
- DDL: 数据定义语言, 负责数据库和表相关的操作
- DML: 数据操作语言, 负责数据增删改
- DQL: 数据查询语言, 负责查询数据
- DCL: 数据控制语言, 负责控制用户权限相关
- TCL: 事务控制语言, 事务相关
DDL
数据库相关SQL
- 数据库软件中要想保存数据需要先建库再键表
- 查询所有数据库
- 格式: show databases;
- 创建数据库
- 默认字符集格式: create database 数据库名;
create database db1; - 指定字符集格式: create database 数据库名 character set gbk/utf8;
create database db2 character set gbk;
create database db3 character set utf8;
- 查询数据库详情
- 格式: show create database 数据库名;
show create database db1;
- 删除数据库
- 格式: drop database 数据库名;
drop database db1;
- 使用数据库
- 如果需要进行表操作后者数据操作 必须使用某个数据库之后再进行
- 格式: use 数据库名;
use db2;
4.数据库相关SQL 回顾
- 查询所有 show databases;
- 创建 create database 数据库名 character set utf8/gbk;
- 查询详情 show create database 数据库名;
- 删除 drop database 数据库名;
- 使用数据库 use 数据库名;
5.数据库相关练习
- 分别创建mydb1和mydb2 第一个utf8 第二个gbk
create database mydb1 character set utf8;
create database mydb2 character set gbk; - 查询所有数据库检查是否创建成功
show databases; - 分别查询mydb1和mydb2检查字符集是否正确
show create database mydb1;
show create database mydb2; - 先使用mydb1 再使用mydb2
use mydb1;
use mydb2; - 删除两个数据库
drop database mydb1;
drop database mydb2;