数据库
简而言之,就是存储数据,管理数据的仓库
关系型数据库
指存的数据有关系,一行就是一个用户的信息,每列就是要具体描述的数据Oracle,MySQL....
非关系型数据库
是指数据间的关系不紧密Redis,Solr....
MySQL
是免费的,是关系型数据库
服务器端:真正存数据的
客户端:链接服务器,访问服务器里的数据
SQL
是结构化查询语言,用来操作数据库
DML:数据操纵语言(CRUD)
DDL:数据定义语言(create....)
DCL:数据控制语言(分配权限)
数据库的操作
查看数据库 show databases;
新建数据库 create database 库名;
删除数据库 drop database 库名;
使用数据库 use 库名;
查看表 show tables;
新建表 create table 表名(字段1,字段2,字段3);
create table 表名(字段名称 字段类型(字段长度),字段名称 字段类型(字段长度));
删除表 drop table 表名;
查看表结构 desc 表名;
修改表 alter table 表名
添加字段 alter table 表名 add column 字段名 字段类型(字段长度);
新增表记录 insert into 表名 values(字段1的值,字段2的值,字段3的值);
查询表记录 select * from 表名;
修改表记录 update 表名 set 字段名=新值;
删除表记录 delete from 表名;
字段约束
主键约束:这个字段的值唯一并且不能为空.自动递增,这个字段的值由数据库自动维护
非空约束:列的值 不能为空
唯一约束:列的值 不能重复
检查约束:在范围内才可以
外键约束:用来维护两张表的关系
基本函数
lower( ) 转小写
upper( ) 转大写
length( ) 获取长度,一个数字或者字母占一个字节,一个汉字占三个字节
substr(1,2,3 ) 截取 1列名,2从哪开始,3截取多长
concat(1,2) 拼接 1列名,2要拼接的新值,可以拼接多个
replace(1,2,3) 替换 1列名,2要被替换的数据,3新数据
ifnull(1,2) 是null就替换新值 1列名,2新值
round(四舍五入)
ceil(向上取整)
floor(向下取整)
now(当前年月日时分秒)
year(当前年)
month(--月)
day(--日)
hour(--时)
minute(--分)
second(--秒)
条件查询
distinct(去重)
where(过滤条件)
like(模糊查询)
limit(分页)
order by(排序)
between..and(在..之间)
聚合函数
指把一列的值,聚合在一起,统一做分析
max(最大值)/min(最小值)/sum(和)/avg(平均数)/count(总记录数)
事务
为了保证数据的安全,如果要操作多条SQL,要么全成功,要么全失败
ACID特点
原子性:多条SQL是密不可分的,整体的结果要么全成功,要么全失败
一致性:保证数据的守恒,总和不变
隔离性:数据库支持高并发,但是操作之间是独立的,被隔离的
持久性:是指SQL语句对数据库的操作(增删改),影响是永久的
隔离级别
读未提交:性