当前位置:Gxlcms > 数据库问题 > SQL 基础学习: 和深度学习资料

SQL 基础学习: 和深度学习资料

时间:2021-07-01 10:21:17 帮助过:10人阅读

:

Rails默认的轻量级数据库,集成于Rails中,在db/development.sqlite3这个档案中。

用途:单机用途。所以在实际部署的时候会换成MySQL等数据库服务器。 

 

MySQL: 

 目前流行的开源数据库。这是一个数据库服务器,要连接它需要数据库的账号密码。

 Mac上用 brew install mysql 安装MySQL,推荐再安装 Sequal Pro 这套Gui(Graphical User interface,图形用户界面)软件 

 


如果有人问你数据库的原理,叫他看这篇文章http://blog.jobbole.com/100349/ 

一些学习资料:

https://www.udacity.com/course/intro-to-relational-databases--ud197 

https://launchschool.com/books/sql/read/introduction 

https://www.codecademy.com/learn/learn-sql 

https://www.codecademy.com/learn/sql-analyzing-business-metrics

https://en.wikibooks.org/wiki/SQL_Exercises 

https://pgexercises.com/ 

http://sqlzoo.net/wiki/SQL_Tutorial 


 

rdbms的特点:

一 schema:使用前先定义tables和columns,同时定义每个column的Data Type.

Data Type:

varchar或text: 

Integer,Decimal,Float:

Blob二进制:可以存放档案。但是通常不建议把档案直接塞数据库,一来数据库塞太大不容易备份和管理、二来没有什么好处,因为你也没办法针对二进制档案进行条件搜寻和过滤。人们对于读档案也有心理准备会比较慢。所以通常只会在数据库里面纪录档案的 metadata 例如档名、大小、MimeType 等等,而实际的档案则放在档案系统上,或是上传到七牛或AWS S3等空间。

Boolean:

Date, Time, Datetime:

 pasting

create_table :events do |t|
  t.string :name
  t.text   :description
  t.integer :capacity
  t.integer :user_id, :null => false //这个是限制constraint,这里是不能为空;
大多验证一般放在rails model中,这样比较有弹性,在DB层是硬性条件,无法跳过。

  t.timestamps
end

 

二 SQL standard language (Structured Query Language)

所有关系型数据库都使用SQL的结构化查询语言,来操作database.for example:

1. INSERT INTO events VALUES ("RubyConf", 100);   //插入一条数据到events表

2. SELECT * FROM events;  //拿出所有数据

 

三 ACID(4个特性) 

 Transaction:a process of doing business.把一组动作打包一起执行。使用BEGIN;...COMMIT;   可以保证数据存取的正确性;要么一起成功,要么一起失败。

Atomicity: 一个transaction就是一个原子。

Consistency:一致性,保证transaction前后数据库的完整性没有被破坏。

Isolation:隔离性:数据库允许多个并发的transaction同时进行,互不干扰。 

Durability持久性:数据的修改是永久的。
 这4个特性,让关系型数据库在多人连线操作数据库的时候,保证数据的?。


 

SQL 基础学习: 和深度学习资料

标签:sys   org   launch   div   values   dev   12px   bre   安装mysql   

人气教程排行