本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
mysql数据库基础
manongba · 450浏览 · 发布于2019-06-24 +关注

事务:是作为一个单元的一组有序的数据库操作,如果组当中所有操作都成功,则事务执行成功,如果有一个操作执行失败,则事务执行失败,回滚操作。

事务的特性:

  • 原子性:事务包含的所有操作全部成功,要么全部失败回滚;成功必须完全应 用到数据库,失败则不能不能对数据库产生影响。

  • 一致性:事务执行前和执行后必须处于一致状态。

  • 隔离性:当多用户并发访问数据库时候,数据库为每一个用户开启一个事务, 这个事务不被其他事务操作干扰,多个并发事务直接互相隔离。

  • 持久性:一旦事务被提交了,那么数据库当中的数据改变是永久性的,即便数 据库系统发生故障,也不会丢失事务操作。

 

事务的回滚:事务是用户定义的一组数据库操作。这些操作要么全做,要么全不做,回滚会自动是将该事务完成的操作撤销。//(类似于打游戏死了,重新读档?)


数据库提供的四种隔离等级:(如果我们不考虑隔离性,会导致脏读)

  • 脏读:在一个事务处理的过程当中读取另一个没有提交的事务当中的数据,然后使用了数据。

    A向B转账100元,A通知B查看账户,B发现已经到账,转账操作过程当中,事务发生问题,进行回滚,B再查账发现没有成功。


  • 不可重复读:在一个事务之内,多次读取一条数据,这个事务没有结束,另一个事务也访问这个数据,第二个事务访问数据要对数据进行修改,那么一个数据两次事务读到的结果可能不一样。

    事务A首先读取了一条数据,然后执行逻辑的时候,事务B将这条数据改变了,然后事务A再次读取的时候,发现数据不匹配了,就是所谓的不可重复读了。


  • 幻读:有两个事务,第一个操作所有的数据,第二个操作一条数据,第二个事务没有提交,第一个事务查看到的数据是之前的。

      以上的问题都处于数据库没有隔离性。

 

隔离性的四个等级

Read uncommited(读未提交),最低级别,任何情况都可以发生。

Read commited(读已提交),可以避免脏读。

Repeatable read(可重复读),可以避免脏读,不可重复读的发生。

Serializable(串行化),可以避免脏读,不可重复读,幻读的发生。


数据库分类

  • 关系型数据库:是建立在在关系模型的基础上的数据库,借助集合,代数等数学概念和方法来处理数据。

    Oracle,db2,sqlserver,access,Mysql,sqlite//(然而只认识mysql


  • 非关系型数据库(nosql not only sql):以key-value形式存储的文档数据库

    Redis、mongodb

 

使用mysql数据库需要连接数据库

Mysql  -u  -p  -h

-u 用户,默认有root用户,root用户是mysql数据库的管理员用户,拥有最高的权限。所以默认不允许远程登录root用户。

-p 密码,用户对应的密码

-h 主机,默认是localhost(127.0.0.1)代表本机,


Mysql结构

Mysql是数据库类型。在mysql当中,存放的Database 数据库、Table 表、Field(column) 字段、Value 值

 

对比office的Excel来看

Mysql   --->     Excel

Database    --->     file

Table   --->     Sheet

Field   --->     表头

Value   --->     数据

 

Sql语法规则

1、分号结尾

2、所有sql文档,系统变量大写//(感觉大写后都不认识了...)

3、Mysql本身大小写不敏感

 

查询数据库命令

SHOW DATABASES;

 

创建数据库

CREATE DATABASE  ?  CHARSET=UTF8;

//(CHARSET+UTF8 这个可以不加,不过最好加上)

//?处写你给数据库起的名字,下面也一样,还有就是一定要记得有分号啊啊!!!

//所有代码一律英文输入,

 

使用数据库

USE ?;

//?=你的库名

 

查看表

SHOW TABLES;


创建表格式

CREATE TABLE ?(a b,.....) CHARSET=UTF8;

//a表示字节名,b表示这个字节的类型

//如果a是字符串类型必须给定长度


示例

CREATE TABLE student(id INT,name CHAR(32),age INT,major CHAR(32),class CHAR(32), phone CHAR(32)) CHARSET=UTF8;

//有没有发现,我给的长度都是偶数?一个汉字占两个字节,如果是奇数的话,如果存满了,最后一个汉字怎么放进去?拿刀劈一半放进去?

 

 

字段类型:

  Int:

    TINYINT 微整数   1个字节  能表示的数-128-127

    SMALLINT 小整数  2个字节  自己算去

    MEDIUMINT 中等整数 3个字节  自己算去

    INT  整数  4个字节       能表示的数-2147483648-2147483647

    BIGINT 大整数 8个字节  自己算。。。

 

Float  4个字节

//浮点数啦

Char 字符

//字符串

Varchar 字符

 

Char和varchar 都需要指定长度,如果字符的长度不够char的长度,以空格填充

Varchar 按照字符的长度设定长度

 

Char类型的字符串不可以用空格结尾

 

Date  3字节  1998-12-21

 

TIME 3字节 23:24:24

 

 

 

 

查看表结构

 

DESC ?;

//?=你的表名

 

插♂入数据:

INSERT INTO ?(a,b...) VALUE(c,d...);

//a=你的字段名 c=打算添加的内容,如果是字符串类型要加引号,数字不用加

案例

INSERT INTO student(id,name,age,major,class,phone) VALUE(1,"比利海灵顿",18,"wrestling","0506","110");

 

查询数据库数据

SELECT a FROM b;

//a=*     

//b=你的表名

所有字段可以用*代替,在工作当中一般不允许用*

懒得写了


相关推荐

使用SELECT语句检索数据

奔跑的男人 · 793浏览 · 2019-06-03 09:33:43
部署MySQL延迟从库的几个好处

吴振华 · 657浏览 · 2019-05-14 21:57:51
MongoDB凭什么跻身数据库排行前五?

iamitnan · 716浏览 · 2019-06-18 10:04:56
Oracle开启和关闭的几种模式

qq2360248666 · 738浏览 · 2019-06-04 10:18:47
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页