Mysql数据库相关

1.数据库概念

  数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。用于存储和管理数据的仓库。mysql

2.关系型数据库

  oracle、MySQL、sql-server,数据有关联,一般用表来存储redis

3.非关系数据库

  redis、MongoDB、Hbase,数据无关联,一般采用键值对key-value的方式来存储,效率高sql

4.MySQL

1)启动命令数据库

  mysql -u 用户名 -p 密码数据结构

2)数据类型oracle

  经常使用的数据类型:int整数类型 double(5,2)小数类型 varchar字符串 date日期,只包含年月日
datetime日期类型 包含年月日时分秒 timestamp:时间戳类型 包含年月日时分秒ide

3)DDL,操做数据库、表函数

4.3.1操做数据库:crud编码

   1.c(create):建立 create database if not exists 数据库名; 2.r(retrieve):查询 show databases;查询数据库 //查询全部的数据库
    show create database 数据库名//查看数据库的编码
    3.u(update):修改 alter database 数据库名称 character set 字符集名称; 4.d(delete):删除 drop database 数据库名称 //判断数据库是否存在
    drop database if exists 数据库名称 5.使用数据库 select database(); //查询当前正在使用的数据库
    use 数据库  //使用数据库

4.3.2操做表:crudspa

1.c(create):建立 create table 表名( 列名1 数据类型1, 列名2 数据类型2, ... 列名n 数据类型n ); 2.r(retrieve):查询 show tables;//查询全部的表
    desc 表名;//查询表结构
    3.u(update):修改 alter table 表名 rename to 新的表名;//修改表名
    alter table 表名 character set utf8;//修改表的字符编码
    alter table 表名 add 列名 数据类型;//添加一列
    alter table 表名 change 列名 新列名 新数据类型;//修改列名称、类型
    alter table 表名 modify 列名 新数据类型;//修改类型
    alter table 表名 drop 列名;//删除列
    4.d(delete):删除 drop table 表名; drop table if exists 表名;

4)DML:增删改表中的数据

   1.添加数据 insert into 表名(列名1,列名2) values(值1,值2); //列名要和值一一对应 //若是表名后面不写列名,默认给全部的列添加值
    2.删除数据 delete from 表名 where 条件; //若是不加条件则删除表中的全部记录
    truncate table 表名;//先删除表,再建立一张同样的表
    3.修改数据 update 表名 set 列名1=值1,列名2=值2...where 条件; //若是不加条件,则会修改表中的全部数据

5)DQL:查询表中的数据

   select * from 表名;//查询表中的全部数据
    1.语法 select 字段列表 from 代表列表 where 条件列表 group by 分组字段 having 分组以后的条件 order by 排序 limit 分页限定 2.基础查询 1.多个字段的查询 select 字段1,字段2 from 表名; distinct //去除重复的结果集
 计算列: 通常可使用四则运算计算一些列的值。 ifnull(表达式1,表达式2)//表达式1:哪一个字段须要判断是否为null,表达式2:若是该字段为null后的替换值
        as //起别名 as也能够省略
    3.条件查询 1.where子句后跟条件 2.运算符 <,>,>=,<=,=,!=,<> between...and //在什么范围内
        in(a,b,c) null不能使用=来判断,要用is来判断 like:模糊查询 占位符:_:单个任意字符 %:任意多个字符 3.排序查询 order by 子句 升序:asc 降序:desc 若是有多个排序条件,则当前边的条件值同样时,才会判断第二条件 4.聚合函数 将一列数据做为一个总体,进行纵向计算。 1.count:计算个数 2.max:计算最大值 3.min:计算最小值 4.sum:计算和 5.avg:计算平均值 5.分组查询 1.语法:group by 分组字段; 2.注意: 1.分组以后查询的字段:分组字段、聚合函数 2.where和having的区别? where在分组以前进行限定,若是不知足条件,则不参与分组,having在分组以后进行限定,若是不知足结果,则不会被查询出来 having后面可使用聚合函数where不行 6.分页查询 limit 开始的索引,要显示的数目 公式:开始的索引=(当前的页码-1)*每页显示的条数 limit 是一个mysql“方言”

6)约束

4.6.1概念:对表中的数据进行限定,保证数据的正确性,有效性,完整性

1.主键约束 primary key alter table 表名 drop primary key; 自动增加: auto_increment alter table 表名 modify 列名 数据类型 auto_increment; 
2.非空约束 建立表时添加not null 建立表完后添加非空约束 alter table 表名 modify 列名 数据类型 not null;
3.惟一约束 unique值不能重复 删除惟一约束 alter table 表名 drop index 列名;
4.外键约束 让表与表产生关系,从而保证数据的正确性 constraint外键名称 foreign key (外键列名称) references 主表名称(主表列名称) 删除外键: alter table 表名 drop foreign key 外键名; 添加外键: alter table 表名 add constraint外键名称 foreign key (外键列名称) references 主表名称(主表列名称) 级联更新:on update cascade 级联删除:on delete cascade

5.数据库范式

1.第一范式(1NF):每一列都是不可分割的原子数据项
2.第二范式(2NF):在1NF基础上,消除对非主属性对主码的部分函数依赖
函数依赖:A-->B,若是经过A的属性(属性组)的值,能够肯定惟一B属性的值,则称B依赖于A
彻底函数依赖:A-->B,若是A是一个属性组,则B属性值的肯定须要依赖于A属性组中全部的属性值
部分函数依赖:A-->B,若是A是一个属性组,则B属性值的肯定只须要依赖于A属性组中的某一些值便可
传递函数依赖:A-->B,B-->C,若是经过A的属性(属性组)的值,能够肯定惟一B属性的值,若是经过B的属性(属性组)的值,能够肯定惟一C属性的值,则称C传递函数依赖于A
码:若是在一张表中,一个属性或属性组,被其余属性所彻底依赖,则称这个属性(属性组)为该码的表
3.第三范式(3NF):在2NF基础上,消除传递函数依赖

6.数据库的备份和还原

备份:mysqldump -u root -proot 数据库名称 > 保存的路径
还原:登陆数据库->建立数据库->使用数据库->执行文件 source 文件路径

7.多表查询

   1.内链接查询 1.隐式内链接:使用where条件消除无用数据 2.显式内链接 语法:select 字段列表 from 表名1 [inner] join 表名2 on 条件 2.外链接查询 1.左外链接: 语法:select 字段列表 from 表1 left [outer] join 表2 on 条件 查询的是左表全部数据以及其交集部分 2.右外链接: 语法:select 字段列表 from 表1 right [outer] join 表2 on 条件 查询的是右表全部数据以及其交集部分 3.子查询 查询中嵌套查询 1.子查询结果是单行单列的 子查询能够做为条件,使用运算符去判断,运算符:> >= < <= =
        2.子查询结果是多行单列的 子查询能够做为条件,使用运算符in去判断 3.子查询结果是多行多列的 子查询能够做为一张虚拟表

8.数据库事务

1)事务的基本介绍

1.概念
若是一个包含多个步骤的业务操做,被事务管理,那么这些操做要么同时成功,要么同时失败。
2.操做
1.开启事务:start transaction
2.回滚:rollback
3.提交:commit
3.MySQL数据库事务默认自动提交
select @@autocommit;//1表明自动提交0表明手动提交
修改默认的提交方式:set @@autocommit=0;

2)事务的四大特征

1.原子性:是不可分割的最小操做单位,要么同时成功,要么同时失败。
2.持久性:当事务提交或回滚后,数据库会持久化的保存数据
3.隔离性:多个事务之间,相互独立。
4.一致性:事务操做先后,数据总量不变

3)事务的隔离级别

多个事务之间隔离,相互独立的。

9.DCL管理用户

1)管理用户

      1.添加用户 create user '用户名'@'主机名' identified by '密码'; 2.修改用户密码 update user set password = password('新密码') where user='用户名'; set password for '用户名'@'主机名'=password('新密码'); 3.查询用户 user mysql; select * from user; 4.删除用户 drop user '用户名'@'主机名';

2)受权

     1.查询权限 show grants for '用户名'@'主机名'; 2.授予权限 grant 权限列表 on 数据库.表名 to '用户名'@'主机名'; all *.*
        3.撤销权限 revoke 权限列表 on 数据库.表名 from '用户名'@'主机名';
相关文章
相关标签/搜索