最后一个寒假,马上就正式进入行业了,要学的东西很多。
首先,我打算把数据库的知识补上。
这篇笔记是在Windows环境下写的
一、基本概念
1、数据 Data
2、数据库 Database
3、数据库服务器 Database Server
数据库的使用者有两类:
数据库工程师(DBA)
开发人员
几种常见的数据库:
关于MySQL:
1、C/S模式:
客户端与服务端通过网络连接交互数据
2、Linux/Windows
MySQL在Linux和Windows上都有发行版,正式部署时通常在Linux上
二、安装
1、官网下载 MySQL,并安装
2、配置,修改配置文件my.ini的以下项:
·将字符集改为gbk以支持中文编码(默认为拉丁字符集)
·添加一行,设置为 区分大小写
3、重启MySQL服务
4、配置防火墙,或直接关闭防火墙
5、配置环境变量,将 XX/MySQL/bin 路径添加至PATH环境变量
6、测试,cmd下使用mysqladmin,或者使用SQLyog(一款客户端软件)测试
三、数据库的登陆
cmd下执行下图的命令
(注意每个语句都应以分号结尾)
但还有一种更为简单的方式,就是用之前提到的客户端工具,在可视化的环境中进行操作,接下来的操作我都会用SQLyog进行.
四、创建数据库和表
数据指的是表格状的数据。行Row,列Column
行:每一行称为一个记录(Record)
列:每一列称为一个字段(Field)
添加和删除表:
一个库(DataBase)中可以存放多个表,表中可以有多个列,每个列的数据类型主要有4种:
1、整数: tinyint, smallint, mediumint, int, bigint
2、小数: float, double
3、字符串:char, varchar
4、长文本:text
5、时间:data, time, datetime, timestamp
6、二进制数据:blob
等...
编辑表的格式:
在新建表时,要设定其每一列的属性(类型、索引、自增、默认值),统称为schema(大纲)
编辑表的内容:
添加一个数据,然后保存
增、删、改:在SQLyog的可视化环境下,实现这些都是很容易的
五、表的设计——列(字段)的属性、主键、索引
每个列(字段)有以下属性:
1、列名
建议以英文命名,命名规则可以参照C++的那2种风格
不要用SQL关键字(如int、text、type)作为列名
2、数据类型
1、整数: tinyint(1 byte), smallint (2 byte), mediumint (3 byte) , int (4 byte),
long(8 byte)
2、小数: float, double
3、字符串:char, varchar
4、长文本:text
5、时间:date, time, datetime, timestamp
6、二进制数据:blob(大块数据)
3、长度:当数据类型为字符串类型时,需要指定长度
4、主键:用于唯一地标识一条记录,一旦将某个字段设置成主键,那之后添加的数据,该字段的内容就不能重复了
(扩展——联合主键:有时,可以把多个字段联合起来,构成表的主键,一般认为不推荐这样使用,而是应该给每条记录设立一个单独的ID)
5、非空:是否允许为空
6、自增:所设置的列的值随着添加数据而自动跟随当前最大值增加(仅当初始化时没指定的情况)
8、无符号:是否是无符号数
9、注释:
10、索引:用于加快排序和查找 (增加数据的时间开销加大,空间占用变多,但查找比较方便)
索引分为普通索引和唯一索引,唯一索引的字段不允许重复
主键其实也是一种唯一索引
全文索引:对于大文本进行加速检索