数据库
1. 项目中数据的存储方式
项目中使用到的数据可能有很多,如商城中的商品信息、论坛中的帖子、ATM中的交易记录、炒股应用中股票价格等等,这些数据可以有如下存储方式:
- 内存:速度快;但容量有限,非永久存储
- 自定义结构的文件:使用简单直接,但不便于大量数据查找
- Excel/Access等格式化文件:使用广泛,但灵活性不足
- 专用文件服务器:网络存储/云存储,可靠性高,但操作复杂
- 数据库服务器:存取效率高,尤其适合海量数据,但操作复杂
2. 数据库的种类
- 数据库(database)就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以向数据库发出增删改查命令来操作其中的数据
- 在数据库的发展过程中,经历了如下几个主要的阶段:
- 网状数据库:二十世纪六十年代初
- 层次性数据库:二十世纪六十年代末
- 关系型数据库(rdbms):二十世纪七十年代至今
- 非关系型数据库(Nosql):二十一世纪初至今
3. 关系型数据库
- 关系型数据库逻辑结构
Server->Database->Table->Row->Column
服务器-----数据库------表------行------列 - 常见的关系型数据库
- SQLite:微型数据库,常用于移动设备
- MySQL:开源中小型数据库,可用于各种操作系统
- PostgreSQL:开源中小型数据库
- SQL Server:Microsoft开发的中型数据库,只用于Windows系统
- Oracle:Oracle公司开发的中型大型数据库,可用于各种操作系统
- DB2:IBM公司开发的中大型数据库,常与IBM服务器搭配
4. 使用mysql数据库
- mysql
免费、开源、中小型数据库、兼容各种操作系统
瑞典 MySQL->SUN公司收购->Oracle公司收购
Martin(mysql原作者): mariaDB
Oracle: mysel - xampp
服务器套装,包含多个服务器端软件(apache,mysql…)xampp下载
- mysql部署结构
- 服务器端:负责存储/维护数据—银行总行的服务器机房
C:\xampp\mysql\bin\mysqld.exe 启动服务文件
确保3306端口不被占用 - 客户端:负责链接服务器,对数据增删改查—ATM机
C:\xampp\mysql\bin\mysql.exe 客户端工具
- 服务器端:负责存储/维护数据—银行总行的服务器机房
- 使用客户端连接服务器端
mysql.exe -h127.0.0.1 -P3306 -uroot -p- -h host 服务器的域名或IP地址,默认不能使用局域网IP
- -P port 端口号
- -u user 用户名 root是管理员用户
- -p password 密码,root的密码默认是空
- 命令的结尾不能+分号
练习: 尝试将各部分分别写错,查看有什么影响
mysql -uroot 简写形式
- 常用的mysql操作命令(规范应该关键字大写)
- QUITE; 退出
- SHOW DATABASES; 显示服务器下所有的数据库
- USE 数据库名称; 进入指定的数据库
- SHOW TABLES; 显示当前数据库所有的数据表
- DESC 表名; 表述表中都有哪些列(表头那些项)
练习: 查看phpmyadmin数据库以下表都有哪些列
pma__recent
pma__history
pma__favorite
- sql命令
SQL: Structured Query Language,结构化查询语言,主要是用于操作关系型数据库,包含有对数据的增删改查- sql命令的两种执行方式
交互模式:客户端输入一行,点击回车,服务器端执行一行;适用于临时性的查看数据/
脚本模式:客户端把所有要执行的命令写在一个脚本文件中,一次性的提交给服务器执行,适用于批量的操做数据
mysql -uroot<D:\tarena-web\Stage-one\1-server\MYSQL\day01\01.sql 回车
在连接mysql的同时,提交脚本文件,不能进入mysql操作
练习:编写脚本文件02.sql,显示所有的数据库,进入到数据库phpmyadmin,显示所有的数据表,查看表 pma__recent下有哪些列,最后提交给服务器执行
- sql命令的书写规范
一行SQL命令可以跨越多行,遇到分号结束;
SQL命令不区分大小写,习惯上关键字大写,非关键字小写
假设每一条SQL命令出现语法错误,则此条语句及后边所有的语句不再执行
SQL命令分为单行注释(#…)和多行注释(/…/),注释的内容不被服务器执行 - 常用的SQL命令
- 丢弃数据库,如果存在
DROP DATABASE IF EXISTS jd;
- 创建新的数据库
CREATE DATABASE jd;
- 进入数据库
USE jd;
- 创建保存数据的表
CREATE TABLE student( sid INT, name VARCHAR(8) sex VARCHAR(4), score INT );
- 插入数据
INSERT INTO student VALUES('1','tom','boy','92');
- 查询数据
SELECT * FROM student;
- 修改数据
UPDATE student SET name='kate',score='58' WHERE sid='2';
- 删除数据
DELETE FROM student WHERE sid='3';
- sql命令的两种执行方式