MySQL数据库快速入门
一。MYSQL基础
简述:mysql是一种高效免费的数据库系统.虽然非常复杂不过用于做网站就不需要多高深的知识,知道一些基本概念就行了。安装了mysql后可以建立许多数据库,每个数据库又可以建立许多表,一般来说一个程序只使用一个数据库。
数据表由若干个“字段”组成。如下表。假设表的名字为user
编号 姓名 年龄 简介
1 张三 15 这是个白痴
2 李四 20 他经常跟张三比谁聪明
3 王五 18 他只比张三笨一点
……
假设人物有100万个。这个人物表里面,每一行就叫一个“记录”,每一列有个列名,如编号,姓名,年龄,简介这就是四个“字段”了。定义了字段,才知道这一列表示的是什么内容,大的表甚至有一百多个字段。注意字
段名不要用中文,但记录的内容里可以有中文(必须是gbk,gb2312或utf8编码)
通常操作数据库都使用通用的SQL语言。(其他数据库系统也用),用SQL语言操作数据库可以极大的简化程序操作。
1.试想如果上表中要得到一个按年龄排序的表,数据量达到几十万的时候将是很恐怖的一件工作,可能要辛苦一个月时间,而且为了维持顺序,每次加入新“记录”还得找半天位置。那学会数据库和SQL
语言后会怎么做呢?只需要一句
SELECT * FROM user ORDER BY 年龄
有了这句代码,数据库就把整个表的记录按年龄为顺序列出来,一句代码就完成了以前痛苦的工作。
3.然后修改呢?比如过了一年,每个人年龄增加了一岁,是不是一个个手动去改呢?再试试SQL语句操作数据库吧
UPDATE user SET 年龄=年龄+1
4.要删除20岁以下的所有人呢?
DELETE FROM user WHERE 年龄<20
添加一个新人物这样做
INSERT INTO user VALUES(100,’马六’,25,’这里填人物简介’)
注意,以上为了便于理解,将字段名设成中文了,实际上要用英文,最好用英文单词,有些字段甚至已经约定成俗了,例如姓名用name,密码用pass或者password等,别人一看就能理解你的数据表。
二:建立表.
开始不需要学习创建表的语句,用navicat操作或phpmyadmin就可以.
比如navicat的新建表.
在字段选项卡里,可以填入各字段的属性,
名称:即字段名(id,name之类的),
类型:是这个字段的值类型,例如年龄字段肯定用数字(int)吧,姓名肯定用字符串(varchar),而简介由于可能很久,通常用长文件型(text).
长度:通常指字符的最长限制,数字型不用定义,自动有限制.
十进制:不管
允许空:添加的时候是否允许不加值.
主键:数据库里一般有一个字段做为主键,每条记录的主键值绝不能相同,是记录的唯一标志.(比如人的身份证号),没有好的唯一标志,通常都是建一个id字段,设为主键,并且设为自动增加.(在navicat设计
表的时候,下方有个”自动递增”选项.这样添加的时候,不用添加id值,数据库会自动分配一个编号给它.每加一条记录,编号自动加1,永不重复.
例如上表,在navicat里这么创建表
名称 类型 长度 十进制 允许空? (主键?)
id int 主键(自动递增)
name varchar 20
age int
description text 是
text是长文本的,属于备注型,在查看记录的时候,要点上方的备注才能看到text的值.
除了上面的三种类型,常用的还有时间类型(datetime),布尔型(只有1和0两个值,表示真和假)
上面三种基本类型还有变型,例如smallint表示短整型,int能表示11位数字,而短整的就小一些.
设计表实战:一个日志表
根据需要可以继续加字段
一个通讯录的表
| 字段名 | 类型 | 长度 | 允许空? | 主键? | 备注 |
| id | int | 否 | 是 | 主键(自增列) | |
| name | varchar | 20 | 名字 | ||
| nick | varchar | 20 | 妮称、网名 | ||
| class | varchar | 20 | 类型 | ||
| varchar | 12 | ||||
| phone | varchar | 15 | 电话 | ||
| photo | varchar | 100 | 相片路径 | ||
| description | text | 1000 | 简介、备注 |
qq和电话虽然是数字,但是不用于数学计算,所以一般还是用字符型比较好.
上传图片的时候,实际上是上传到硬盘目录里,数据库只保存图片的地址而己(删除记录的时候根据地址再删了图片文件).虽然也可以把真正图片存入数据库,但那样做,会使数据库庞大而缓慢.这些可以以后再学现在最关键的是多设计一些表,然后在PHP里练习以下的四个语句。当然直接用navicat或phpmyadmin练习也可以,效率更高点。
三。简单SQL语法
简述:人们对于数据的操作不外乎“添加”“删除”“修改”“读取”这四种。这四种操作里
1.添加记录
INSERT INTO 表名(字段1,字段2,字段3) VALUES(值1,值2,值3)
解释:格式都是这样子的,如果看得懂英语很容易理解什么意思,具体应用中自己替换”表名”,字段名和值三个部分.
实例:仍然以上表为例.但不再用中文字段名,而用英文代替.编号=id,姓名=name,年龄=age,简介=description
2.删除记录
DELETE FROM 表名 WHERE 条件
解释:如果没有后面的WHERE 条件,将会删除整个表,一般情况下都限定条件的.
实例:
3.修改记录
UPDATE 表名 SET 字段1=值1,字段2=值2 WHERE 条件
解释: 修改记录的字段值,多少个字段要改就写多少个”字段=值”
实例:
4.读取记录.
SELECT * FROM 表名 WHERE 条件 ORDER BY 字段 LIMIT 数字
解释:这是最常用到的语句.
实例: 注意:LIMIT子句必须写在最后,条件子句(WHERE)和排序子句(ORDER)随便顺序都可以,像HTML的属性一样,没有先后和依附关系.
四:SQL进阶
1.复合条件:稍微复杂一点的情形中,可能不只需要一个条件.
例如我要年龄>20的,并且编号>1000的,这就需要复合条件了,其实也非常简单,用and或or把条件组合起来就行了.
例:
能理解”并且”和”或者”的区别吧? 2.相反排序.与正排序比,反排序只需要加一个词
3.读取中间一部分记录.例如从10到204.读取一部分字段.有时候字段太多的时候管用.比如只想知道张三的编号
………
注意事项,各字段不用按顺序写,添加记录的时候也一样,不过字段名和值要一一对应,例如name字段放第二位,后面的姓名就填在第二位.
| 名称 | 类型 | 长度 | 允许空? | (主键?) | 备注 |
| id | int | 否 | 是 | 主键(自增列) | |
| title | varchar | 50 | 是 | 标题 | |
| content | varchar | 50 | 是 | 内容 | |
| addtime | datetime | 是 | 加入时间 | ||
| class | varchar | 20 | 是 | 分类 | |
| author | varchar | 20 | 是 | 作者 | |
| click | int | 是 | 点击数 |