关于mysql:数据库总结

34次阅读

共计 6636 个字符,预计需要花费 17 分钟才能阅读完成。

数据库服务概念介绍

数据库: 次要用于对大量数据信息能够进行无效的剖析解决
数据库服务器: 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 -proot
mysql>                                                      

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

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 4
Server version: 5.5.65-MariaDB MariaDB Server
Copyright (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 names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB >                                             # 进到了 php 库中

查看库外面有什么表

MariaDB > 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 > 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 数据类型 所占字节 值范畴
tinyint 1 字节 -128~127
smallint 2 字节 -32768~32767
mediumint 3 字节 -8388608~8388607
int 4 字节 范畴 -2147483648~2147483647
bigint 8 字节 +-9.22*10 的 18 次方

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

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

查看表单的具体信息

MariaDB > 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 > drop table test;
Query OK, 0 rows affected (0.00 sec)   # 数据库中个别命令执行胜利都显示这一条
查问失常

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

MariaDB > 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 代表有哪些主机能够与数据库建设连贯

正文完
 0