数据库服务概念介绍

数据库: 次要用于对大量数据信息能够进行无效的剖析解决
数据库服务器: MySQL Maridb
数据库: 存储数据分类 用户信息--用户信息库 商品信息---商品 交易信息---领取业务
数据表: 数据表信息
数据字段: 存储具体内容信息,存储信息标准
数据行: 实在每一条非法的数据信息

数据库服务环境装置部署

windows零碎中部署数据库: https://dev.mysql.com/downloads/installer/

启动PHPstudy程序--->启动MySQL5.7.26

形式一: 命令行操作

命令行中切换到MySQL所在门路

C:Users\zh>d:                                                  # 切换到文件所在盘D\>cd d:\use\phpstudy_pro\Extensions\MySQL5.7.26\bin>mysql.exe -uroot -proot                                    # cd到具体门路后输出mysql.exe -uroot -prootmysql>                                                      

留神:也能够用其它两种办法进入命令行的路劲

1.本地文件夹进入想去的门路,而后下面鼠标左键选中,默认全选,而后输出cmd--->回车,就进去了2.后面同上,在文件夹外面shift+右键有个“在此处关上命令窗口”选项,点它就进去了。

形式二: 连贯数据库(图形界面操作)
装置连贯数据库程序软件: Navicat 装置部署

实现近程连贯数据库:

本地建设连贯: localhost == 127.0.0.1

留神:形式二应该不罕用,因而没有尝试去部署,具体操作步骤不熟。

Linux零碎中部署数据库: https://dev.mysql.com/downloads/mysql/

[root@oldboy72~]#yum install -y  mariadb(命令包) mariadb-server(程序包)             #下载数据库[root@oldboy72~]#systemctl start mariadb                                          # 启动数据库

形式一: 连贯数据库(命令行)

[root@oldboy72~]#mysql -uroot#                                     进入数据库命令Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 4Server version: 5.5.65-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]>                                                     # 进入胜利[root@oldboy72]#mysqladmin -uroot password "明码"     # 批改默认明码,不能批改明码?

形式二: 连贯数据库(图形界面)
如何和虚拟主机数据路服务建设连贯???
留神:Linux简直不部署图形化界面吧?所以这里不深入研究。


数据库命令与操作

;:分号,数据库中命令结束语辨认符,只有加分号零碎才会辨认你这条命令实现了。

创立数据库信息:
MariaDB [(none)]>create database php;                      # 创立了一个名为php的库MariaDB [(none)]>show   databases;                         # 查看领有什么库+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || php                |                                     # 在这里| test               |+--------------------+5 rows in set (0.00 sec)MariaDB [(none)]>drop database php;                       # 删除指定库
留神:mysql装置完之后,登陆后发现只有两个数据库:show databases;
Database
information_schema
test

,mysql> use mysql
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
拜访被回绝,起因就是在删除数据库时(rpm -e mysql*)没有删除洁净,须要把/var/lib/mysql的目录全副删除洁净,而后再重新安装即可。

库有了,咱们要切换到库外面去

MariaDB [(none)]> use php;                                 # use 选定指定库的名字Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedMariaDB [php]>                                             # 进到了php库中

查看库外面有什么表

MariaDB [php]> show tables;+---------------+| Tables_in_php |+---------------+| xyb           |                            # 有一个名为xyb的表单,这是之前创立好的+---------------+1 row in set (0.00 sec)

如何创立表单?
语句格局: create table 表名 (字段名1 字段类型,字段名2 ....字段名n 字段类型n);
操作命令: create table xueyuan (name varchar(15),sex char(5),age int(5),xueli char(10),jingyan bool,xinzi float(10,2));

MariaDB [php]> create table test(name varchar(15),sex char(5),age int(5),xueli char(10),jingyan bool,xinzi float(10,2));Query OK, 0 rows affected (0.00 sec) # 创立了一个名为 test 的表单。
整型
MySQL数据类型所占字节值范畴
tinyint1字节-128~127
smallint2字节-32768~32767
mediumint3字节-8388608~8388607
int4字节范畴-2147483648~2147483647
bigint8字节+-9.22*10的18次方

整型的长度不同,在理论应用过程也就不同。

浮点类型
MySQL数据类型所占字节值范畴
float(m, d)4字节单精度浮点型,m总个数,d小数位
double(m, d)8字节双精度浮点型,m总个数,d小数位
decimal(m, d)decimal是存储为字符串的浮点数
字符类型
MySQL数据类型所占字节值范畴
char0-255字节定长字符串
varchar0-255字节变长字符串
tiniyblob0-255字节不超过255个字符的二进制字符串
tinytext0-255字节短文本字符串
blob0-65535字节二进制模式的长文本数据

查看表单的具体信息

MariaDB [php]> desc test;畛域(字段)   类型(字段数据) 有效的(空) 钥匙   守约     额定的+---------+-------------+------+-----+---------+-------+| Field   | Type        | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| name    | varchar(15) | YES  |     | NULL    |       || sex     | char(5)     | YES  |     | NULL    |       || age     | int(5)      | YES  |     | NULL    |       || xueli   | char(10)    | YES  |     | NULL    |       || jingyan | tinyint(1)  | YES  |     | NULL    |       || xinzi   | float(10,2) | YES  |     | NULL    |       |+---------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)

查看表单内是否有内容:
语法格局:select * from 表单;
语法命令:select * from xyb;

批改数据库中表的名称:
语句格局: alter table 旧表名 rename 新的表名;
操作命令: alter table test rename test01;

**删除表信息
语句格局: drop table 表名;
操作命令: drop table oldboy;**

MariaDB [php]> drop table test;Query OK, 0 rows affected (0.00 sec)   # 数据库中个别命令执行胜利都显示这一条查问失常

**表单的字段与字段数据都能够增、删、改、查,字段能够减少、插入、删除。
其命令格局后面三个简直一样,前面要做什么操作,换单词而已。**

MariaDB [php]> desc test;                                        # 创立了一个表单畛域(字段)   类型(字段数据) 有效的(空) 钥匙   守约     额定的+---------+-------------+------+-----+---------+-------+| Field   | Type        | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| name    | varchar(15) | YES  |     | NULL    |       || sex     | char(5)     | YES  |     | NULL    |       || age     | int(5)      | YES  |     | NULL    |       || xueli   | char(10)    | YES  |     | NULL    |       || jingyan | tinyint(1)  | YES  |     | NULL    |       || xinzi   | float(10,2) | YES  |     | NULL    |       |+---------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)
批改字段数据类型信息      语句格局: alter table 表名 modify 字段名 批改后的数据类型;      操作命令: alter table test modify sex varchar(10);减少表中字段信息:      语句格局: alter table 表名 add column 字段名 字段类型;      操作命令: alter table test add column oldboy date;        · 减少表中字段信息: 能够指定管制字段增加的地位      语句格局: alter table 表名 add  字段名   bool after 在哪个字段后增加;      操作命令: alter table test add oldgirl bool after age;             减少表中字段信息: 将指定字段插入到第一列      语句格局: alter table 表名 add  字段     类型 first;      操作命令: alter table test add oldbaby char first;          · 删除表中字段信息:      语句格局: alter table 表名 drop column 字段名称;      操作命令: alter table test drop column oldbaby;          · 批改字段名称信息:      语句格局: alter table 表名 change 原字段名称 批改后字段名  字段类型;      操作命令: alter table test change xueli      edu      varchar(15);          · 批改已有字段程序:      语句格局:       alter table 表名  modify 字段名 类型 first;        --- 间接将指定字段移到第一列      alter table test modify 字段名 类型 after 字段名;  --- 将字段挪动到指定列之后

**数据库索引
索引概念介绍: 能够晋升查找指定数据检索效率,相似于字典。
索引分类介绍: 一般索引、惟一索引(不能有字段信息反复)、主键索引(字段信息不能为空)。
索引查看、创立与删除:
查看表单索引:**

语法格局:show index from 表名 \G语法命令:show index from xyb \G

索引创立: 一般、MUL。

语法格局: alter table   表     add index(字段);操作命令: alter table xueyuan add index(name);

索引创立:惟一、 UNI。

语法格局: alter table   表     add UNIQUE(字段)操作命令: alter table xueyuan add UNIQUE(xueli);

索引创立: 主键、PRI。

语法格局: alter table      表  add PRIMARY KEY(字段)操作命令:  alter table xueyuan add primary key(jingyan);

删除索引信息,此命令可删除一般、惟一索引,主键索引须要其它命令格局删除。

语法格局:drop index 索引名   on  表名语法命令:drop index jingyan ON  xyb

留神:此命令满满删除不掉惟一索引。

删除主键索引信息

语法格局:alter table 表单 drop primary key;语法命令:alter table xyb drop primary key;

留神:此命令有时候删不掉?没弄明确啥状况。

按条件搜寻表单内合乎的数据信息:

语法格局: select    字段信息/*   from      表单    where             查问字段条件操作命令: select  name,sex,age  from    xueyuan  where    age=23 and sex="女" or sex="男";

匹配条件符号信息 >、<、>=、<=、!=
匹配条件逻辑符号 and or
勾销反复信息:
语法格局: select distinct 字段 from 表名;

表单中增加数据信息:
示例1:

语法格局: insert into   表名   value(字段01数据,字段02数据,字段03数据,..,字段n数据);操作命令: insert into xueyuan value("张三","男",23,"本科",0,9000);

示例2:

语法格局: insert into 表(字段01,字段02,字段03) value(字段数据01,字段数据02,字段数据03);操作命令: insert into xueyuan(name,sex,jingyan) value("李四","女",1);

在MySQL装置过程中很容易疏忽掉,字符集这个参数(源码装置参数-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci)。亦或者是MySQL最后搭建这不是本人,当初他人在装置时没有留神到这个问题。造成当初当初字符集与需要不统一。例如:当初字符集不是utf-8导致显示中文乱码,解决办法如下。
首先,以root登录MySQL,执行命令:show variables like 'character_set%'; 查看以后MySQL默认的字符集,如果有问题,先退出mysql。
编辑MySQL的配置文件my.cnf。默认该文件在/etc/my.cnf
批改内容为:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
[mysql]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
port = 3306
basedir = /usr/local/mysqldatadir = /dataserver_id = 1
character-set-server=utf8
socket = /var/lib/mysql/mysql.sock
保留退出,而后重启下mariadb,在进入mysql就好了,更改字符集之前创立的表单不失效。


数据库权限

查看数据库总共有有哪些权限:select * from mysql.userG;
查看mysql这个库外面的user表的权限

MariaDB [(none)]> select user,host from mysql.user;+------+-----------+| user | host      |+------+-----------+| root | 127.0.0.1 || root | ::1       ||      | localhost || root | localhost |# 这个权限代表root只能应用本地连接治理数据库 |      | oldboy72  || root | oldboy72  |+------+-----------+# user代表这个数据库里有哪些用户能够操作、治理数据库。 # host代表有哪些主机能够与数据库建设连贯