发表于: 2018-07-30 23:42:40
1 861
今天完成的事情:
安装并按照学习教程学习了一些MYSQL的一些知识。
数据库的概念
持久化存储的方法:
用大脑记住数据
写在纸上
写在计算机内存中
写成磁盘文件
企业数据存储检索的问题
存储大量数据
大量数据的检索和访问
保持数据信息的一致。完整
数据共享和安全
通过分析整合 产生新的有用信息
数据挖掘
数据库
是用户存放数据,访问数据,操作数据的存储仓库,用户的各种数据被有组织的存放在数据库中。可以随时被有权限的用户,查询,统计,添加,删除,和修改。
是长期存储在计算机内的,有组织,可共享的数据集合。数据库系统是由普通的文件系统发展而来的。
数据库系统具有高效的数据独立性,即不依赖于特定的数据库应用程序
数据库系统的数据冗余小,可以节省数据的存储空间:
另外数据库系统还很容易实现多个用户数据共享。
数据库的发展史
萌芽阶段---文件系统
使用磁盘文件来存储数据
初级阶段---第一代数据库
出现了网状模型,层次模型的数据库
中级阶段----第二代数据库
关系型数据库和结构化查询语言(sql)
高级阶段----新一代数据库
关系-对象 型数据库
数据库管理系统
一个真正的数据库系统由硬件和软件两个方面构成。比如我们要使用oracle数据库,需要安装oracle公司提供的数据库服务器软件和一台用于安装数据库管理系统的高性能计算机服务器
数据库系统的发展经历了层次模型,网状模型及关系模型的几个阶段。当今应用最皮鞭的是关系型数据库管理系统。目前,市场上流行的几种大数据库 oracle mysql等都是关系型数据库管理
系统
关系型数据库
关系模型数据库采用表组织数据,一个数据库有许多个表组成,多个表数据之间存在着关系,在这些表上的数据操作依赖于关系,关系用来描述多个表之间的数据一寸,包括一对一,一对多,多对多的关系。
桌面型的关系模型数据库
ms access
网络线的关系模型数据库
oracle
mysql
概念模型:基于客户的想法和观点所形成的认识和抽象。
实体:客观存在的,可以被描述的事物。例如员工部门。
属性:用于描述实体所具有的特性和特征。如使用编号,姓名。工资等来属性描述员工的特征。
关系:实体之间的联系例如
一对一:人和身份证
一对多:班级和学生
多对对:学生和课程
sql语句
结构化查询语句(structured query language)
在关系型数据库上执行数据造作, 数据检索以及数据维护的标准语言
使用sql语句,程序员和数据库管理员可以完成如下任务
改变数据库的结构
更改系统的安全设置
增加用户对数据库或表的许可权限
在数据库中检索需要的信息
对数据库的信息进行更新
sql语句分类
mysql致力于支持全套的ANSI ISO QSL标准
在MTsql数据库中SQL 语句主要可以划分为以下几类:
DDL 数据定义语言 定义对数据库对象(库表列索引)的操作
CREATE DROP ALTER RENAME TRUNCATE
dml数据库操作语言 定义对数据库记录的操作
INSERT DELETE UPDATE SELECT
DCL 数据库控制语言,定义对数据库,表 字段 用户访问的权限和安全级别。
GRANT REVOKE
Transaction Contrl事物控制
COMMIT ROLLBACK SAVEPOINT
SQL语句的书写规范
在数据库系统中SQL 语句不区分大小写(建议关键字大写)
但字符串常量区分大小写(数据是区分大小写的
sql语句可用单行或多行书写以";"结尾
关键词不能跨多行或简写
用空格和缩进来提高语句的可读性
子句通常位于独立行 便于编辑 提高可读性
SELECT*FRO tb_table
注释
sql标准:
/**/多行注释
“**”单行注释
MYsql注释:
“#”
语法:
SHOW DATABASES[LIKE wild];
如果使用like wild不符wild字符串可以是一个使用sql的“%”和“_”通配符的字符串
功能:列出在mysql服务器主机上的数据库
MYSQL自带的数据库:
information schema 主要存储了系统中的一些数据库对象信息:如用户表信息,列信息 权限信息 字符集信息 分区信息(数据字典表)
MYSQL存储了系统的用户权限信息及帮助信息
Test系统自动创建的测试数据库,任何用户都可以使用
创建数据库
语法:
CREATE DATABASES[IF NOT EXISTS]数据库名;
功能:用给定的名字创建一个数据库。
如果数据库已经纯在发生了一个错误。
删除数据库
语法
DROP DATABASE[IF NOT EXISTS]数据库名
功能:删除数据库中的所有表和数据
要小心使用这个命令
语法
use数据库名
功能:吧制定数据库作为默认(当前)数据库使用,用于后续语句。
数据库对象的命名规则
必须以字母开头
可以包括数据和三个特殊字符(#_$)
不要使用MYSQL的保留字
同一Schema下的对象不能同名
建表的语句
标准的建表(table)语法(列定义之间可以英文逗号隔开);
数据表的每行称为一条记录(record)
一列成为一个字段(field)
主键列:唯一能够标书每条记录的列。
CREATE TABLE[SCHEMA,]table
(column datatype[DEFAULT expr],.....
—)engine=存储机制
MYSQL支持多种列类型:
数值类型
日期时间类型
字符串(字符)类型
日期/时间类型
类型 描述
data 日期
dateime 日期和时间的组合
TIMESTAMP 时间戳
TIME 时间
YEAR 两位和四位的年
SHOW
语法:
SHOW TABLES[from 数据库名][LIKE wild];
功能 显示当前数据库中已有的数据表的信息
简单的建表语句
CREATE TABLE表名(
列名 列类型,
列名 列类型
)
功能:在当前数据库中创建一张表
SELECT{*,column[alias],...}
FORMtable;
说明:
select列名列表。*表示所有列
FROM提供数据源(表名/视图名)
默认选择所有行
使用distinct 关键字可以从查询结果中清除重复行
where 限制所选择的记录
使用where子句在from子句后
SELECT{*,column[alias],...}
FORMtable WHERE ...=...;
WHERE中的字符串和日期值
字符串的日期要用单引号括起来
字符串是大小写敏感的,日期值是格式铭感的
where中的比较运算符
= > >= < <= <>
其他比较运算符
between...and...在两个值之间 且包含最小值和最大值
in(list) 匹配所有列出的值
like 匹配一个字符模式
is null 是空值
where 列名 BETWEEN 1500 AND 3000;
使用in运算符
使用in 算符获得匹配列表值的记录sql
where 列名 in( , , ,);包含在(中的值)
使用like运算符
查询条件可包含文字字符或数字
(%)可表示零或多个字符
(_)可表示一个字符
where 列名 LIKE '_关键字%'
is NULL运算符
where 列名 is null
逻辑运算符
and 必须满足所有条件
or 满足其中一个条件
not取反
where 列名 not in( , , ,);包含在(中的值)
对结果集排序
查询语句执行的查询结果,数据是按插入顺序排列
实际上需要按某列的值大小排序排列
按某列排序采用order by 列名[desc]列名...
设定排序列的时候可采用列名,序列号和列别名
如果按多列排序 没列的asc desc 必须单独设定
order by 列名[desc]数据(从高到底)【asc】(从低到高)
明天计划的事情:
1今天学习了数据库的一些概念发展史和select的基础检索功能。明天打算学习数据库的增删改。
遇到的问题:
感觉最近越来越依赖这种视频教学了,看到一大串文字的教程就有点看不下去。但是看视频的话感觉进度又太慢了,可真是纠结qaq
收获:
学习了数据库的一些概念发展史和select的基础检索功能
评论