mysql——介绍及安装与基本用法

一、数据库的概述

  • 数据库作用:数据持久化保存,高可靠,高可用,数据的快速提取。

  • 数据库存储类型:关系型数据库 非关系型数据库。

1.1、关系型数据库

  • 其存储结构是二维表格,反映事物及其联系的数据是以表格形式保存的

  • 在每个二维表中,每一行称为一条记录,用来描述一个对象的信息,每一列称为一个字段,用来描述对象的一个属性。

  • 关系型数据库:
    MySQL(oracle公司),sql server(微软公司),access(微软公司),oracle,db2(IBM公司),sybase(sybase公司)

1.2、非关系型数据库

  • 非关系型数据库存储方式

    • 键-值方式(key–value),以键为依据存储、删、改数据
    • 列存储(Column-oriented), 将相关的数据存储在列族中
    • 文档的方式,数据库由-系列数据项组成,每个数据项都
    • 有名称与对应的值
  • 非关系型数据库(统称NOSQL):

    • redis(内存数据库/缓存数据库): K-V键值对 key-value 变量名-值
    • memcache (内存数据库/缓存数据库) :K-V键值对
  • 非关系型数据库的优点:

    • 数据库高并发读写的需求
    • 对海量数据高效率存储与访问
    • 数据库的高扩展性与高可用性的需求

二、mysql数据库的安装

mysql数据库的安装非常简单,这里我整理出了一份安装mysql-5.7.20的脚本。

#安装编译环境
yum install gcc gcc-c++ ncurses ncurses-devel bison cmake -y

#创建mysql系统用户且无法登陆
useradd -s /sbin/nologin mysql

#解压安装包
tar xzvf mysql-boost-5.7.20.tar -C /opt/

#移动到安装包路径下
cd /opt/mysql-5.7.20/

#编译安装
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

make && make install

#mysql安装目录的属组和属组修改
chown -R mysql:mysql /usr/local/mysql

#修改配置文件
vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES


#更改配置文件的属主和属组
chown mysql:mysql /etc/my.cnf


#系统识别mysql命令,加入环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile

#初始化数据库
cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data 

#复制启动脚本使系统可以启动
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

systemctl daemon-reload
systemctl start mysqld

#开启开机自启动mysql
systemctl enable mysqld


#设置数据库管理员密码
mysqladmin -u root -p password 
Enter password: 
New password: 
Confirm new password: 

#登陆数据库
mysql -uroot -p

#给root用户设置权限
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

三、mysql的基本操作

3.1、首先启动mysql查看3306端口是否开启。

[root@localhost ~]# netstat -anpt | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      1080/mysqld         

3.2、进入数据库:mysql -uroot -p

[root@localhost ~]# mysql -uroot -p
Enter password:      #密码

3.3、查看数据库的列表信息

mysql> show databases;    #命令不区分大小写,大写可Tab键补齐

在这里插入图片描述

3.4、查看数据库中的数据表信息

mysql> use mysql;      #use后跟库名
mysql> show tables;    #查看库中的表

在这里插入图片描述

3.5、显示数据表的结构

describe [数据库名.]表名
例如:
describe student.stu;
或者
先切换到student库,再显示表结构。

在这里插入图片描述

四、SQL语句

4.1、SQL语言分类

4.4.1、SQL语言

  • 是Structured Query Language的缩写,即结构化查询语言
  • 是关系型数据库的标准语言
  • 用于维护管理数据库,如数据查询、数据更新、访问控制、对象管理等功能

4.4.2、SQL分类

  • DDL:数据定义语言
  • DML:数据操纵语言
  • DQL:数据查询语言
  • DCL:数据控制语言

4.2、DDL语句

  • DDL语句用于创建数据库对象,如库、表、索引等
    1、使用DDL语句新建库、表
    创建数据库
    在这里插入图片描述
    创建数据表:CREATE TABLE 表名(字段定义…)
mysql> create table 表名称(   
#定义字段
#字段名、类型、是否为空;定义主键(唯一)     
id int(4) not null primary key,
name char(10) not null, 
address varchar(50) default 'nj');

在这里插入图片描述

2、使用DDL语句删除库、表
删除指定的数据表:DROP TABLE [数据库名.]表名 (若在数据库中,命令不带库名即可删除)
在这里插入图片描述
删除指定的数据库:DROP DATABASE 数据库名
在这里插入图片描述

4.3、DML语句

DML语句用于对表中的数据进行管理
包括以下操作:

  • INSERT:插入新数据
  • UPDATE:更新原有数据
  • DELETE :删除不需要的数据

1、向数据表中插入新的数据记录

  • INSERT INTO 表名(字段1,字段2, …) VALUES(字段1的值,字段2的值,…)
  • INSERT INTO 表名 VALUES(字段1的值,字段2的值,…)
#第一种插入记录的方法:
insert into stu (id,name,address) values (2,'lisi','上海'),(3,'wangwu','北京');
#第二种插入记录方式:
insert into stu values (4,'yiyi','北京');

在这里插入图片描述
注意:如果 id 类型设定为 auto_increment ,则插入记录时不需要再写每条记录的id号,可以自动生成,但是insert 插入记录时不能用第二种方式,只能用第一种。

#decimal 指浮点类型  primary key 指主键 
#auto_increment 指字阵列 varchar指可变长字符串
mysql> create tabl(id int not null primary key auto_increment,name char(20) not null,address varchar(50) not null default '南京');

在这里插入图片描述
在这里插入图片描述
2、修改、更新数据表中的数据记录
update 表名 set 字段名1=值1[,字段名2=值2] where 条件
表达式

update stu set address='温州' where id=4;

在这里插入图片描述
3、在数据表中删除指定的数据记录
delete from 表名 where 条件表达式

delete from stu where name='wangwu';

在这里插入图片描述

4.4、DQL语句

DQL是数据查询语句,只有一条: SELECT

  • 用于从数据表中查找符合条件的数据记录
  • 查询时可不指定条件
    select 字段名1,字段名2… from 表名
select * from stu;     # ’*‘ 匹配所有字段
select name from stu;  #  指定name字段

在这里插入图片描述

  • 查询时指定条件
    select 字段名1,字段名2… from 表名 where 条件表达式
select * from stu where id=2; # 查询id=2 的所有字段内容

在这里插入图片描述

4.5、DCL语句

  • 设置用户权限(用户不存在时,则新建用户)
grant 权限列表 on 数据库名表名 to '用户名'@'来源地址' identified by ‘密码';
  • 查看用户的权限
show grants for 用户名@来源地址

在这里插入图片描述
在这里插入图片描述

  • 撤销用户的权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'来源地址';

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值