初入python,尝试获得A股交易数据(6)——了解mysql

1.mysql 

数据库:存取数据。

关系型数据库和非关系型数据库,关系型数据库通过sql语句来进行操作。

没有sql语句的叫非关系型数据库Nosql,Nosql最常用你得数据库是Mongodb和Redis

redis一般用作缓存,存储的是我们经常用的数据,一般的数据是存储在mysql和oracle中的。

分布式内存数据库:把很多台电脑看作一台电脑

内存数据库:所有的数据都存储在内存中。

磁盘数据库

2.mysql三范式(经过研究和使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式)

第一范式: 列不可拆分

第二范式:唯一标识 不是主键

第三范式:引用主键 主键是唯一的,主键可以保证文件的唯一性。

后一个范式都是在前一个范式上建立的

3.E-R模型

E表示entry,实体。 R表示relationship 关系 一个实体转换为数据库中的一个表

  1. 关系描述两个实体之间的对应规则,包括,,一对一,一对多 ,多对多

    关系转换为数据库表中的一个列,在关系型数据库中一行就是一个对象

    操作:数据库的操作:创建、删除

    表的操作: 增 删 改

    数据的操作:增删改查,简称crud

    4.数据完整性:

    char(10) "niu "空格一并存入

    字段类型:数字(包含decimal小数),字符串,日期,布尔(bit 实际上是0和1)

    5.约束:

    非空主键primary key 主键只能有一个 not null

    唯一 unique 可以有多个,物理上的存储的结构是由主键维护的

    默认 default

    外键foregin key

    设计表结构:

    学生表结构: id name gender address

    科目表结构:id name

    图形窗口操作:创建数据库 创建表 添加字段 逻辑删除

------------------------------------------##分割线##------------------------------------------

5.10日更

安装MySQL到最后一步一直出错,无法运行实验,只好先从百度上找一点MySQL查询语句,等之后安好再补充

查询数值型数据:

?
1
SELECT * FROM tb_name WHERE sum > 100;

 查询谓词:>,=,<,<>,!=,!>,!<,=>,=<

二查询字符串

?
1
2
3
4
SELECT * FROM tb_stu WHERE sname = '小刘'
SELECT * FROM tb_stu WHERE sname like '刘%'
SELECT * FROM tb_stu WHERE sname like '%程序员'
SELECT * FROM tb_stu WHERE sname like '%PHP%'

三查询日期型数据

?
1
SELECT * FROM tb_stu WHERE date = '2011-04-08'

 注:不同数据库对日期型数据存在差异:

?
1
2
3
4
5
6
(1)MySQL: SELECT * from tb_name WHERE birthday = '2011-04-08'
 
(2)SQL Server: SELECT * from tb_name WHERE birthday = '2011-04-08'
 
 
  (3)Access: SELECT * from tb_name WHERE birthday = #2011-04-08#

四查询逻辑型数据

?
1
2
SELECT * FROM tb_name WHERE type = 'T'
SELECT * FROM tb_name WHERE type = 'F'

 逻辑运算符:and or not

五查询非空数据

?
1
SELECT * FROM tb_name WHERE address <> '' order by addtime desc

六利用变量查询数值型数据

?
1
SELECT * FROM tb_name WHERE id = '$_POST[text]'

注:利用变量查询数据时,传入SQL的变量不必用引号括起来,因为PHP中的字符串与数值型数据进行连接时,程序会自动将数值型数据转变成字符串,然后与要连接的字符串进行连接

七利用变量查询字符串数据

?
1
SELECT * FROM tb_name WHERE name LIKE '%$_POST[name]%'

完全匹配的方法"%%"表示可以出现在任何位置

八查询前n条记录

?
1
SELECT * FROM tb_name LIMIT 0,$N;

 limit语句与其他语句,如order by等语句联合使用,会使用SQL语句千变万化,使程序非常灵活

九查询后n条记录

?
1
SELECT * FROM tb_stu ORDER BY id ASC LIMIT $n

十查询从指定位置开始的n条记录

?
1
SELECT * FROM tb_stu ORDER BY id ASC LIMIT $_POST[ begin ],$n

 注意:数据的id是从0开始的

十一查询统计结果中的前n条记录

?
1
SELECT * ,(yw+sx+wy) AS total FROM tb_score ORDER BY (yw+sx+wy) DESC LIMIT 0,$num

十二查询指定时间段的数据

 SELECT  要查找的字段 FROM 表名 WHERE 字段名 BETWEEN 初始值 AND 终止值

?
1
SELECT * FROM tb_stu WHERE age BETWEEN 0 AND 18


十三按月查询统计数据

?
1
SELECT * FROM tb_stu WHERE month ( date ) = '$_POST[date]' ORDER BY date ;

 注:SQL语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询

 year(data):返回data表达式中的公元年分所对应的数值

 month(data):返回data表达式中的月分所对应的数值

 day(data):返回data表达式中的日期所对应的数值

十四查询大于指定条件的记录

?
1
SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age;

十五查询结果不显示重复记录

 SELECT DISTINCT 字段名 FROM 表名 WHERE 查询条件


猜你喜欢

转载自blog.csdn.net/qdu5er/article/details/80256723