mysql 数据库

MySQL是一种开放源代码的关系型数据库管理系统,也是跨平台的库 ,PHP与很多数据库结合都很紧密。由于,PHP和MySQL都是开源免费的。所以PHP一直对于MySQL等数据库都有很好的支持。

一.数据库的五个基本单位

数据库服务器

数据库

数据表

数据字段

数据行

对上面的五个基本单位进行说明:

    数据库服务器:是指用来运行数据库服务的一台电脑。在中小型企业通常为一台。在数据存储量计算量很大的时候可以存在多台。多台数据库服务器共同来存储或计算。由于数据安全非常重要,我们经常会对数据库服务器里面的数据进经备份。

    数据库:一个数据库服务器里面有可以有多个数据库。主要用来分类使用。我们可以建立交通信息数据库、游戏数据库、酒店开房数据库... ... 主要用来将各个不同用途的数据,按照业务进行大块的划分。

    数据表:例如在游戏数据库中。根据这一款游戏又分为了不同的数据表。专门用来区分游戏不同的数据。例如:用户数据(用户、密码);人物数据;所有装备和装备信息;用户的充值信息;药品、魔力药水信息... ...等

    数据字段:也叫数据列。就是我们日常所见表格里面的列。在表格中,我们会将一张用户表分成多个列。如下(表一)所示:用户编号、用户名、性别、年龄是字段。在真正的数据库中数据字段需要换成英文需要写成:id、username、sex、年龄。

    数据行:真正的数据存在每一个表的行里面。字段(列)划分出来了一个表应该按照什么样的格式存数据。而行,是真正的数据。每一行需要遵循数据字段(列)的规范和要求进行存入数据。

2,mysql连接数据库

一,在phpstudy 找到mysql数据库点击进去

二,在windows 环境中,cmd命令行中进入mysql数据库

在命令行中通过下面命令进入数据库

mysql -h localhost -u root -p

-h  表示数据库链接地址,链接本地可不填

-u 表示要登陆的用户

-p 表示使用密码吗登录

注意:通常我们不直接输入密码。而是在回车之后,输入密码。因为,密码输入时的字符是不可见的,输完密码直接回车登录。防止旁边有人把重要的密码看走。如果没有什么别的问题,登陆成功之后会出现下面内容:

mysql -u root -p

 Enter password:

 Welcome to the MySQL monitor.  Commands end with ; or \g.

 Your MySQL connection id is 7

 Server version: 5.6.25 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

 affiliates. Other names may be trademarks of their respective

 owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

上面的中文意思翻译过来是说,欢迎使用MySQL的命令行操作工具。每一个命令结束可以输入\g 或者 ;

mysql当前是第 7次连接。

当前数据库的版本是5.6.25社区支持版。遵循GPL协议。

版权所有:2000至 2015。归Oracle及其子机构拥有所有权。

如果需要帮助的话,通过 ‘help;’ 或者 ‘\h’ 命令来显示帮助内容,通过 ‘\c’ 命令来清除命令行历史。

mysql>

mysql > 表示等待输入指令。

注:

在登陆成功后有这么一句提示,可能大家不太理解:

Your MySQL connection id is 7

表示第7次连接登陆,每登陆一次这个id为加1。下一次显示的会是第8次。

二,mysql数据库操作

1,创建数据库

create datdbases      数据库名字

create databases   php;     创建名字是php的数据库

“Query OK” 表示上面的命令执行成功,

2,查看数据库

show databases;  显示当前服务器的所有数据库

注意:

show是指显示

database 是指数据库

databases 是数据库的复数形式,指全部数据库。

3.选中数据库

use  库名  

use php; 进入使用php数据库

注意:

use 是指使用;

库名 是存在当前数据库系统中的具体的数据库的名称;

4,查看数据库中的表

show tables;    显示当前数据库下所有的表

使用use 进入到某个数据库后可以使用show tables;

5,删除数据库

drop  database 库名

drop database php;     删除php数据库

注意:

drop 是汉语可以翻译为指掉下来,不要了的意思

database 是指库

php 是指要删掉的库的名称

【切记】注:数据库删除后,下面的所有数据都会全部删除,所以删除前一定要慎重并做好相应的备份。

三,mysql 数据表操作

先看总共有哪些数据库,创建新数据库,在进入新数据库,查看数据库中是否有表,在新数据库中创建表

1,创建表

create table 表名(字段名1字段类型,字段名2字段类型,......字段名n字段类型); 

create table php user(username varchar(20),passwd varchar(32));   创建一个表名叫user的表,第一个字段为username、表的字段类型为varchar长度为32个长度。第二个字段为password,类型也为varchar,长度也为32个长度。

注释:

int,代表整型。float,代表浮点。charvarchar代表字符串即可。

2,查看表字段结构信息

desc  表名;

desc user;  查看user表的表结构

3,查看表创建的语句

show create table  表名  \G;

show create table user \G;     查看user的创建语句 看到创建表时的所有信息

   :上面表的创建 SQL 语句中,除了可以看到表定义以外,还可以看到表的 engine(存储引擎) 和 charset(字符集)等信息。“\G”选项的含义是使得记录能够按照字段竖着排列,对于内 容比较长的记录更易于显示。

4,删除表

drop table 表名;

drop tabe user;    删除表user

注:删除表。表和数据均会丢失,请勿必删除重要表之前备份数据。

5,指定表引擎和字符集

在创建表最后,我们常用MyISAM或者InnoDB引擎。在指定引擎时,我们可以使用:

ENGINE=InnoDB

指定表的默认字符集:

DEFAULT CHARSET=utf8

效果如下:

CREATE TABLE emp (

     useraname varchar(10) DEFAULT NULL,

     password date DEFAULT NULL,

 )ENGINE=InnoDB DEFAULT CHARSET=utf8;

四,mysql 数据字段操作

1,查看表结构

desc user;

2,修改表的字段类型

alter table 表名  modify  字段名 varchar(20);

alter table  user modify username varchar(20);   将user表的username的类型改为varchar(20)

:  type 指的是类型

3,增加表字段

alter table 表名 add column 字段名 类型;

alter table user add column age int(3);   添加一个字段为age,类型为整型长度为3

4,增加字段时控制字段顺序

alter  table 表名 add 字段名 字段类型  after 字段名;

alter  table user add email  varchar(60) after createip;   在user表中,在createip后增加一个字段为email,类型为varchar,长度为60

alter table user add id int(10) first;   在user表中在最开始的位置增加一个字段为id,类型为int,长度为10

5,删除表字段

alter table 表名 drop column 字段名;

alter table user drop column age;  在user表中删除字段age

6,表字段改名

alter table 表名 change 字段原名 字段新名 字段类型;

alter table user change email  em varchar(60);    在user表中将字段中的email字段名字为em

7,修改表字段排列顺序

在前的字段增加和修改语句(add/change/modify)中,最后都可以加一个可选项 first|after。

         增加表字段时我们已经学过了如何调整顺序。我们现在在来看看另外的change或modify如何来调整顺序。

我们用first做个小实验。

使用modify调整顺序

alter table user modify em varchar(60) first;   在user表中的em 字段放在了最开始的位置

8,修改表名

alter  table 旧表名 rename 新表名;

alter table user rename  new_user;   将user表名改为new_user

desc new_user;   查看新的表结构

五,MySQL数据库类型

MySQL中存的是数据,只要是数据,我们就会规定数据的类型,在表的字段中规定了使用的是某个数据类型,那么,再插入数据中就要使用对应的数据类型,并且,要遵守数据类型的长度要

1,整形。                                                 

mysql 数据类型所占字节值范围
tinyint1字节-128~127
smallint2字节-32768~32767
mediumint3字节-8388608~8388607
int4字节-2147483648~2147483647
bigint8字节+-9.22*10的18次方

:整型的长度不同,在实际使用过程也就不同。

2,浮点类型

mysql 数据类型所占字节值范围
float (m,d)4字节单精度浮点型,m总个数,d小数位
double(m,d)8字节双精度浮点型,m总个数,d小数位
decimal(m,d)decimal是存储为字符串的浮点数

3,字符类型

MySQL数据类型

所占字节

值范围

CHAR

0-255字节

定长字符串

VARCHAR

0-255字节

变长字符串

TINYBLOB

0-255字节

不超过255个字符的二进制字符串

TINYTEXT

0-255字节

短文本字符串

BLOB

0-65535字节

二进制形式的长文本数据

TEXT

0-65535字节

长文本数据

MEDIUMBLOB

0-16 777 215字节

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215字节

中等长度文本数据

LOGNGBLOB

0-4 294 967 295字节

二进制形式的极大文本数据

LONGTEXT

0-4 294 967 295字节

极大文本数据

VARBINARY(M)

允许长度0-M个字节的定长字节符串

值的长度+1个字节

BINARY(M)

M

允许长度0-M个字节的定长字节符串

4,时间类型

MySQL数据类型

所占字节

值范围

date

3字节

日期,格式:2014-09-18

time

3字节

时间,格式:08:42:30

datetime

8字节

日期时间,格式:2014-09-18 08:42:30

timestamp

4字节

自动存储记录修改的时间

year

1字节

年份

5,复合类型

MySQL数据类型

说明

举例

set

集合类型

set(“member”, “member2″, … “member64″)

enum

枚举类型

enum(“member1″, “member2″, … “member65535″)

一个 ENUM (enum)类型只允许从一个集合中取得一个值;而 SET 类型允许从一个集合中取得任意多个值。

六,MySQL 字符集

1,英文字符集 

字符集说明字节长度
ASCLL美国标准信息交换代码单字节
GBK汉字内码扩展规范双字节
unicode万国码4字节
UTF-8Unicode的可变长度字符集编码1到6个字节

         ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。

其中:

         0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。

         32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。

         65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

GBK

         GBK 向下与 GB 2312 编码兼容。是中华人民共和国定义的汉字计算机编码规范。早期版本为GB2312。

Unicode

         Unicode(统一码、万国码、单一码)Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。以满足跨语言、跨平台进行文本转换、处理的要求。

UTF-8

         是一种针对Unicode的可变长度字符编码,也是万国码。因为UNICODE比ASCII占用大一倍的空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即UTF(Universal Transformation Format)

实际工作中要使用的编码

gbk_chinese_ci         简体中文, 不区分大小写

utf8_general_ci        Unicode (多语言), 不区分大小写

注意:

 mysql在写utf-8的时候写的是utf8。不加中间的中横线。

七,mysql 索引

索引用于快速找出在某个列中有一特定值的行

         当然索引也不易过多,索引越多写入,修改的速度越慢。因为,写入修改数据时,也要修改索引。

1,mysql的索引类型

普通索引:最基本的索引,它没有任何限制。

唯一索引:某一行启用了唯一索引则不准许这一行列的数据有重复的值,针对这一列的每一行数据都要求是唯一的

主键索引:他是一种特殊的唯一索引,不允许有空值,一般是在建表的时候同时创建主键索引,常用于用户id ,类似于书中的页码

全文索引:对于需要全局搜索的数据,进行全文索引

普通索引

alter table 表 add index(字段)

alter table  user  add index(username);   为user表的username 字段增加索引

唯一索引

alter table 表 add unique(字段);

alter table user add unique(email); 为user表中的Email 增加唯一索引

全文索引

alter table 表 add fulltext(字段);

alter table user add fulltext(content);  为user 表中的content字段增加唯一索引

主键索引

alter table 表 add  primary key(字段);

alter table user add primary key(id);   为user表中的id 字段增加主键索引

创建表时也可以声明索引

创建表时可在创建表语句后加上对应的类型即可声明索引:

PRIMARY KEY(字段)

 INDEX [索引名] (字段)

 FULLTEXT [索引名] (字段)

 UNIQUE[索引名] (字段)

注:中括号中的索引名,代表可选。

整体示例如下:

CREATE TABLE test (
     id INT NOT NULL , 
     username VARCHAR(20) NOT NULL , 
     password INT NOT NULL , 
     content VARCHAR(20)
     PRIMARY KEY (id), 
     INDEX pw (password), 
     UNIQUE (username),
     FULLTEXT (content)
 ) ENGINE = InnoDB;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值