简介
数据库是存放数据的仓库,数据不是直接放到数据库中,数据库中放表,表中放数据。
发展史
- 层次模型
- 层次模型是一种导航结构
- 优点:查询同一类数据,效率高
- 缺点:不同类,效率低。而且,层次结构会造成数据无效。
- 网状模型
- 网状模型解决了层次模型数据无效的问题,但没有解决导航问题
- 关系模型
- 关系:两个表的公共字段叫关系
- 记录和记录之间通过属性之间的关系来进行连接。
- 优点:保证数据独立性,并形成数据集之间的关系。
- 缺点:多表查询时候效率低
SQL语句介绍
Structured Query Language,结构化查询语言,是用来操作关系型数据库的。
常用的关系型数据库:
- Access
- MySQL
- SQL server
- Oracle
标准SQL是所有关系型数据库都支持的操作语句,标准SQL也叫SQL-92。但是每个数据库在标准SQL的基础上又扩展了自己的东西。
扩展:
- SQL server T-sql
- oracle PL/Sql
- MySQL MySQL
连接数据库
端口号是3306,端口号可以省略。如果是本地MySQL,数据库地址可以省略
退出数据库:
- exit
- quit
- \q
数据库操作
- 创建
- 语法:create database 数据库名 [charset=字符编码];
- 数据库utf-8不需要加-,utf8.
- 如果创建已经存在的数据库,会报错。所以,一般创建时,判断一下。
- create database if not exists 数据库名;
- 如果创建的数据库,是系统关键字,也会报错。但是,加上反引号(`:键盘1的前面)就没事了,不是单引号。
- 显示数据库的查询语句:show create database 数据库名;
- 查询
- 语法:show databases;
- 更改
- 语法:alter database 数据库名 charset=xx;
- 删除
- 语法:drop database if exists 数据库名;
- 选择数据库
- 语法:use 数据库名;
数据表的操作
概念:
- 行也叫记录,一行就是一条记录。行也叫实体。
- 列也叫字段,一列就是一个字段。字段也叫属性。
- 一个表可以有多个字段
操作:
- 创建表
- 主键的特点:不能重复,不能为空。一个表只能有一个主键,但是主键可以由多个字段组成。
- 数据类型
- int :整型
- decimal(总位数,保留位数):小数
- char(n):字符,定长为n
- varchar(n):可变字符,但不能超过n
- text:大段文本
- 查看表
- 查看所有表:show tables;
- 查看表结构:describe/desc 表名;
- 删除表
- 语法:drop table 表名1【,表2....】;
数据操作
- 插入数据(增)
- 语法:insert into 表名(字段1,字段2) alues(值1,值2);
- 插入的值个数、顺序和字段一致时,字段才可以省略。
- 自动增长auto_increment:可以使用null
- 默认值:使用default
- 删除数据(删)
- 语法:delete from 表名 [where 条件];
- delete from 表名:删除表数据,但是表还在
- 修改数据(改)
- 语法:update 表名 set 字段1=值1,字段2=值2 where 条件;
- 查看数据(查)
- 语法:select 列名(字段) from 表名 [where 条件] [ order by 字段 排序] [ limit 限制];
- asc升序、desc升序、默认升序
- limit:用于分页,limit x,y:从x开始,取y条记录,x从0开始,当为0时,可以省略
- 查询所有:select * from 表名;
- 语法:select 列名(字段) from 表名 [where 条件] [ order by 字段 排序] [ limit 限制];
运算符
- 算数运算符
- >、 <、 >=、 <=、 =(等于:即可表示赋值,也可表示比较)、 <>(不等于)
- 逻辑运算符
- and(与)、 or(或)、 not(非)
聚合函数
select sum(字段)from 表名;
- Sum():求和
- Avg():求平均值
- Max():最大值
- Min():最小值
- Count():记录数