概念
数据库: 可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库的优势
1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。
2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket
4.效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
数据
1. 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机.
2. 在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,
如:
1 alex,不详,83,1935,山东,oldboy
3. 单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思,相当于定义表的标题
如:
id,name,sex,age,birth,addr,company # 字段/列名
1, jack,男, 20, 1998, 天山, 阿里 # 数据
数据库 (DataBase)
1. 数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
2. 过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用
3. 数据库是长期存放在计算机内、有组织、可共享的数据集合。
4. 数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享
数据库管理系统 (DBMS)
数据库管理系统 (DataBase Management System) --- 系统软件
如: MySQL、Oracle、SQLite、Access、MS SQL Server
1. mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
2. oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
3. sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。
数据库管理员: DBA(Database Administrator)
数据库服务器、数据管理系统、数据库、表与记录的关系
记录: 1 jason 13234567890 22(多个字段的信息组成一条记录,即文件中的一行内容)
关联:
- 数据库服务器-:运行数据库管理软件
- 数据库管理软件:管理-数据库
- 数据库:即文件夹,用来组织文件/表
- 表:即文件,用来存放多行内容/多条记录
数据库系统的特点
1. 数据结构化
2. 数据共享,冗余度低,易扩充
3. 数据独立性高
4. 数据由DBMS统一管理和控制
- 数据的安全性保护
- 数据的完整性检查
- 并发控制
- 数据库恢复
初始数据库
数据库管理软件分类
1. 关系型数据库需要有表结构
如: sqllite,db2,oracle,access,sql server,MySQL
2. 非关系型数据库是key-value存储的,没有表结构
如: mongodb,redis,memcache
初识SQL语句
1. 进入mysql客户端
1) 登录mysql, 默认用户登陆没有操作的权限, 用管理员root用户登陆
mysql -u root -p 123 -h 10.10.10.112 -P 3306
2) 远程登录
mysql -u root -p 123 -h 10.10.10.112 -P 3306
-u # 指定用户
-p # 指定密码
-h # 指定ip地址
-P # 指定端口
3) 查看当前用户
select user();
4) 给当前数据库设置密码
set password = password('root');
5) 退出mysql
exit / quit
账号操作
1. 创建账号
create user 'jason'@'192.168.11.%' IDENTIFIFD BY '123'; # 指定网段
create user 'jason'@'192.168.11.55'; # 指定某机器的ip
create user 'jason'@'%'; # 允许所有机器连接
2. 查看某个用户权限
show grants for 'jason'@'192.168.11.55';
3. 给账号授权
grant all on *.* to 'jason'@'%';
flush privileges; # 刷新是授权激励生效
4. 创建账号并授权
grant all on *.* to 'jason'@'%' identified by '123';
1. SQL: 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统.
2. SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
1. 操作数据库
增: create database db charset utf8;
查: show databases;
改: alter database db charset latin1;
删: drop database db;
2. 操作表 (先切换到表下: use db)
增: create table t1(id int, name char);
查: show tables;
改: alter table t1 modify name char(3);
alter table t1 change name name1 char(2);
删: drop table t1;
3. 操作表中的记录
增: insert into t1 values(1, 'jack'), (2, 'jason');
查: select * from t1;
改: update t1 set name='ran' where id=2;
删: delete from t1 where id=2;
清空表:
delete from t1; # 如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
truncate table t1; # 数据量大,删除速度比上一条快,且直接从零开始
auto_increment # 自增
primary key # 主键(不能重复且不能为空)