登录
首页 >  数据库 >  MySQL

数据库总结

来源:SegmentFault

时间:2023-01-23 09:52:38 334浏览 收藏

小伙伴们有没有觉得学习数据库很有意思?有意思就对了!今天就给大家带来《数据库总结》,以下内容将会涉及到MySQL,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

数据库服务概念介绍

数据库: 主要用于对大量数据信息可以进行有效的分析处理
数据库服务器: 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]>                                             # 进到了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代表有哪些主机可以与数据库建立连接

理论要掌握,实操不能落!以上关于《数据库总结》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>