数据库基础知识(一)

纯文本数据库:

纯文本数据库是只用空格符、制表符和换行符来分割信息的文本文件。适用于小型应用,对于大中型应用来说,它有诸多限制:

① 只能顺序访问,不能进行随机访问;

②查找数据和数据关系或多用户同时访问进行写操作非常困难。

关系数据库:

由于纯文本数据库存在诸多局限,所以人们开始研究数据模型,设计各种类型的使用方便的数据库。在数据库的发展史上,最具影响的数据库类型有:层次模型,网状模型和关系模型。其中,关系模型是目前应用最广泛和最有发展前途的一种数据模型,其数据结构简单,当前主流的数据库系统几乎都采用关系模型。

数据库系统构成: 数据库,数据库管理系统(以及开发工具),应用系统,数据库管理员(和用户)比如: ACCESS  ,  SQL Server  ,  Oracle  ,  MySQL  ,  FoxPro  和  Sybase

SQL 即 Structured Query Language 。数据库系统通过SQL语言来管理数据库

SQL语言主要分为三个部分:

--DDL:即 Data Definition Language 主要用于定义数据库,表,视图,索引,触发器。比如 create , alter , drop 等

--DML: 即 Data Manipulation Language 主要用于数据的增删改查。 比如: Insert , select , update , delete 等

--DCL : 即 Data Control Language 主要用于控制用户的访问权限。 比如 :Grant , revoke 等

简单SQL命令:

-h : 党廉洁MySQL服务器不在同台主机时,填写主机名或IP地址

-u : 登录MySQL的用户名

-p :登录MySQL的密码

tips: 密码如果写在命令行的时候一定不能有空格。如果使用的系统为Linux并且登陆用户名字MySQL的用户名相同即可不用输入用户名和密码,LInux默认以root登录,

Windows默认用户是ODBC,免安装的用户root ,密码为空。


数据库操作:

创建数据库语法 : create database 数据库名

叙述: 创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建的适当权限,此语句失败。例如 mysql> create database student;

删除数据库:Drop database 数据库名


数据类型种类:

---数值列类型

---字符串列类型

---日期和时间列类型

---二进制数据类型

数值型:分为整点型和浮点型

整型:可以由十进制和十六进制表示,整数由数字部分组成;十六进制表示方法0x且后面加1-9和A-F的任意数字或字母

浮点型: 浮点型由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。

字符串: “abc” ‘abc10’

字符串中要用转义字符才能表示特殊符号,由单引号或者双引号括起来的字符或者数字

序列\0\'\" \b \n\r\t\\

说明NUL(ASCII 0) 单引号双引号退格新行 回车 制表符 反斜杠

日期和时间值:按“年-月-日”顺序

NULL值:是一种无类型的值,表示“空,什么也没有”二进制类型:是存放二进制数据的类型


浮点数类型和定点数类型 :插入值的精度高于实际定义的精度,系统将会自动四舍五入;如果不指定精度,浮点数和定点数都有默认的精度。

整数类型----数值列的完整性约束

AUTO_INCREMENT  : 自动标识列,在需要产生唯一标志符号或者顺序值的时候,可用此属性。值一般从1开始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时,MySQL会插入一个比该列中当前最大值大1 的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOT NULL,并定义为PRIMARY KEY 或者定义为UNIQUE键 。举例:create table t(id int auto_increment not null primary key);

无符号:此属性禁用负值,将数值的取值范围从零开始。举例:create table t(num tinyint , num2 tinyint unsigned);
NULLNOT NULL:默认为NULL,即插入值时没有在此字段插入值时自动填NULL如果指定NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。

        DEFAULT:可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。

ZEROFILL:前导零填充数值类型值以达到列的显示宽度。举例:create table test2(num1 int default 1num2 int zerofill);
float:浮点型,含字节数为432bit,数值范围为-3.4E38~3.4E387个有效位)
double:双精度实型,含字节数为864bit数值范围-1.7E308~1.7E30815个有效位)
decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)decimal的有效位数很大,达到了28,但是表示的数字范围与double相同,使用的时候会对计算时的性能有影响。
float f=345.98756f; double = 345.975423578631442;

字符串类型:对于可变长的字符串类型,其长度取决于实际存放在列中的值的长度。

字符串类型包括CHAR(0~255) , VARCHAR (0~65535) , TEXT

TEXT类型只能保存字符数据 TINYTEXT(0~255) TEXT(0~65535) MEDIUMTEXT(0~167772150)LONGTEXT(0~4294967295)

char   varchar    tetxt  的区别:   char为定长,另外两个变长;  char在保存的时候,右边会用空格来填充到指定的长度,在检索的时候会自动将后面的空格去掉,所以检索出来的数据需要再用trim之类的函数去处理;varchar在保存环境的时候,不进行填充,当值保存和检索时尾部的空格仍然保留;text不可以写默认值,后面如果指定长度,不会报错误,但是这个长度是不起作用的

总结 : char会造成空间浪费,但是有速度优势;而varchar节省了空间,但是速度不如前者;经常变化的字段用varchar;知道固定长度用char ;尽量用varchar 超过255字节只能用varchar灬这text;使用varchar的地方不能使用text。

日期与时间类型:

  YEAR :表示时间DATE :表示日期 TIME :表示时间DATETIME 和 TIMESTAMP  :表示日期和时间

常用数据类型:====    二进制数据类型(BLOB)文本数据类型(char,varchar,text)时间和日期(time , date , datetime)数值型数据(int,smallint,float,double)

货币数据类型(decimal)Bit数据类型:(bit)




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值