当前位置:阳光沙滩 >Php > 查看文章

1.前言

先让大家乐一下下吧,不知道怎么给下面这图片配文:疯狂的程序员,可以不?欢迎在评论区配文哈,喜欢的就点赞把答案顶起来,哈哈!

屏幕快照 2017-01-20 09.14.33

数据库有很多种,这里所说的Mysql的话,一般用于中小型企业。这里面的话,更多的文字是用于描述怎么使用Mysql数据库,并且结合PHP语言来使用。其实,每一种编程语言,都提供了操作数据库的API,但他们都有一个共同的特点,可以执行SQL语句。

对数据库的操作呢,主要分为以下这几大块。操作层次是数据库,数据表,数据字段内容。

2017-01-19_144323

如果你是想看视频的话,欢迎点击这里:

Android Sqlite数据库详解(视频+思维导图)

SQL语句for Android iOS Sqlite(视频+笔记+图解)

MySql的安装和配置(图文+视频)

2.Mysql数据定义语言

数据定义语言,翻译过来就是:Data definition language 简称 DDL。在进行对数据操作之前,我们先要有数据库,所以这里的话,数据的定义。

2.1.数据库定义

2.1.1.查看数据库

语法:

show databases;

PS:注意这个databases有s,是复数哈。

2.1.2.创建数据库

语法:

craete database [if no exists] 数据库的名称 [charset 字符集] [collate 排序规则];

解析:

1、中括号部分可以选择不写(记得上学的时候英语老师说过哈)

2、if not exists用于判断要创建的数据库是否已经存在,如果存在则不会创建,否则创建,如果没有这条语句的话,那么创建的时候 ,如果存在了,那么就会报错啦,所以建议大家不要懒哈,把它也写上吧。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sunofbeaches       |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql>

看上面已经存在了一个数据库为sunofbeaches

如果我直接创建的话,则会报错如下:


mysql> create database sunofbeaches;
ERROR 1007 (HY000): Can't create database 'sunofbeaches'; database exists
mysql>

要是我这样写的话,则没有事,只是警告而已:

mysql> create database if not exists sunofbeaches charset utf8;
Query OK, 1 row affected, 1 warning (0.00 sec)

3、要注意的地方是这个database是没有s的,跟show databases这个不一样。大家想想英语老师的话就知道了哈。

2.1.3.修改数据库

语法:

alter database 数据库名 character set = 新的字符集名 collate = 新的排序方式;

举个例子:修改数据库sunofbeaches的字符集为gbk

mysql> alter database sunofbeaches character set=gbk;
Query OK, 1 row affected (0.00 sec)

2.1.4. 删除数据库

我们先查看一下现有的数据库:


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sunofbeaches       |
| test               |
+--------------------+
5 rows in set (0.00 sec)

删除数据库的语法是:

drop database 数据库名称;

那么我们就去删除数据库sunofbeaches,然后再查看一下数据库:

mysql> drop database sunofbeaches;
Query OK, 1 row affected (0.12 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

我们可以看见,sunofbeaches这个数据库已经没有了。

2.1.5.选择/使用数据库

语法:

use 数据库名称;

执行如下:

mysql> use sunofbeaches;
Database changed

2.1.6. 查看当前所使用的数据库

select database();

执行如下:

mysql> select database();
+--------------+
| database()   |
+--------------+
| sunofbeaches |
+--------------+
1 row in set (0.00 sec)

2.2.数据类型(字段field类型)

数据库当然用于存储数据,为了方便使用,所以在数据库里也有数据类型这个概念,而不是所有都以二进制的形式存储。在android中使用到的Sqlite的话,数据类型,本质上只有两种,一种是整形,一种是字符串。但是在Mysql中的话,则有比较多的类型,下面的话,我就用思维导图的形式向大家展示吧:

2017-01-19_172550

是不是挺多的呀,哈哈,没关系吧,下面就给大家解释一下吧:

PS:我要去买菜了,晚上吃完饭有空再写吧。

晚饭回来,精彩继续!

这里我们先尝试地去看一下,怎么样去创建数据表哈,后面我们再详细地说明一下。这里的话,只是说一下这个数据类型怎么使用的嘛。

create table 表名 (字段名字1  数据类型[(长度)] [unsigned] [zerofill],字段名字2 数据类型,.....字段名字n 数据类型);

从上面这个创建数据表的语句来看,我们在创建数据表的时候 ,需要数据类型。

下面的话就根据上面这个思维导图说明一下即可:

2.2.1.整数类型

2017-01-19_205702

tinyint(1字节), smallint(2字节), mediumint(3字节),int(4字节), bigint(8字节)

想到一个好玩的事,呵呵,网上看的哈!晚上下班回家,被警察拦住了,问:int是多少个字节的?答曰:4个字节。警察说:回去吧,别太累了!旁白:这么晚下班的,不是程序员就是贼,科科…

具体的存储范围这里就不说了,大家都知道的。比如说1个字节=8位,它的存储范围是-128~127。其他的大家就去算一下吧,一般来说,代码写多了,就知道或者习惯用那个类型来存储了,只有出问题了,你才会去找原因的,呵呵。

2.2.2.小数类型

float单精度浮点型:不是精确数,一般来说不设定长度
double双精度浮点:不是精确数,一般不设定长度
decimal定点型:精确数,通常,定点型需要设定长度,形式为:decimal(总长, 小数位数)

2.2.3.日期时间类型

关于时间的相间类型有这里:date, time, datetime, year, timestamp

大家都能看懂,最后一个timestamp呢是时间戳的意思,从1970年开始算起到当前的时间戳。

另外这里要注意的是,时间日期应该用单引号引起来。

2.2.4.字符串类型

字符串的话,常用的有两个,分别是varchar和char,这两个间呢,varchar是长度可变的,而char是长度不可变的,varchar的最大长度为65532,而char的最大长度为256个字符.在使用的时候 varchar需要设定长度,eg:varhcar(20)

text:是文本类型,它呢,可以存储超大的文本,和前面的两相比,效率稍微低一点。

blob:也是超大的二进制文本,一般用于存储图片。

enum:枚举,用于存储选择性的数据,效率比较高,可以存储65535个。使用方式:

enum(‘选项1’,’选项2’….)

set:是集合的意思,就像表单中的多选一样。使用方式跟enum是一样的。

2.3.数据表的定义

接下来,我们看看数据表的创建,前面创建数据库则是create database,同理过来,创建数据表当然是crate table啦。OK,具体还是看下面的详细说明吧:

2.3.1.创建表

语法:

create table [if not exists] 表的名字(字段1名字 字段的数据类型,字段2的名字  字段的数据类型[(长度)] [unsigned] [zerofill]...);

创建表里头的内容不算多,

未完,待续….我先去找个女朋友!

 

2.4.数据表的设计(了解)

 

 

 

7K
为您推荐
各种观点