MySQL基本命令操作及数据库基本概念
MySQL基本命令操作及数据库基本概念
1、数据库的基本概念
2、主流数据库介绍
3、关系型非关系型数据库介绍
4、Mysql 安装方法
5、Mysql 基本操作命令
1、数据库的基本概念:
数据库的组成
数据: 描述事物的符号记录
包括数字,文字、图形、图像、声音、档案记录等
以“记录”形式按统一格式进行存储
表: 将不同的记录组织在一起,用来存储具体数据
数据库: 表的集合,是存储数据的仓库
以一定的组织方式存储的相互有关的数据集合
数据库的管理系统(DBMS):
是实现对数据库资源有效组织、管理和存取的系统软件
功能:数据库的建立和维护功能、数据定义功能、数据操控功能、数据库的运行管理功能、通信功能
数据库系统(DBS)
是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
用户可以通过DBMS或应用程序操作数据库
2、主流数据库介绍:
MySQL数据库介绍:
一款深受欢迎的开源关系型数据库 Oracle旗下的产品,遵守GPL协议,可以免费使用与修改
特点:
性能卓越、服务稳定
开源、无版权限制、成本低
多线程、多用户
基于C/S(客户端/服务器)架构
安全可靠
主流数据库介绍:
SQL Server (微软公司产品) Oracle (甲骨文公司产品) DB2 (IBM公司产品) MySQL(甲骨文公司收购)
面向Windows操作系统 面向所有主流平台 面向所有主流平台 免费、开源、体积小
简单、易用 安全、完善、操作复杂 大型、安全、完善
3、关系型非关系型数据库介绍:
关系型数据库: 硬盘中读写
a)关系数据库系统是基于关系模型的数据库系统
b)关系数据库的存储结构是二维表格
- 每一行称为一条记录,用来描述一个对象的信息
- 每一列称为一个字段,用来描述对象的一个属性
c)关系模型可用简单的"实体-关系-属性"来表示
实体 :也称为实例,对应现实世界中可区别与其他对象的“事件”或“事物” 如银行客户、银行账户等
关系 :实体集之间的对应关系称为联系,也称为关系 如银行客户和银行账户之间存在“储蓄”的关系
属性 :实体所具有的某一特性,一个实体可以有多个属性 如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性
非关系型数据库:
存储数据不以关系模型为依据,不需要固定的表格式,内存中读写 键值对
非关系型数据库的优点:
- 数据库可高并发读写
- 对海量数据高效率存储与访问
- 数据库具有高扩展性与高可用性
4、Mysql 安装方法:
将安装包拖至/opt目录下,编一个脚本文件,然后source执行脚本,等脚本执行完成,
即可使用mysql -u root -p点击回车即可进入。 本博主亲测 无修改100% 一键部署。(source 执行 否则会因为环境变量问题 出现报错)。
#!/bin/bash
echo -e "\033[31m =====正在验证当前为仅主机还是NAT模式===== \033[0m"
ping -c1 -W1 www.baidu.com &> /dev/null
if [ $? -eq 0 ];then echo -e "\033[31m 检测当前为NAT模式,为您配置在线yum源 \033[0m"
mkdir -p /etc/yum.repos.d/repo.bak mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null yum clean all &> /dev/null
yum list &> /dev/null
echo -e "\033[31m 在线源已配置完成 \033[0m" else
echo -e "\033[31m 检测当前为仅主机模式,为您配置本地yum源 \033[0m"
mount /dev/sr0 /mnt &> /dev/null
cd /etc/yum.repos.d/
mkdir -p /etc/yum.repos.d/repo.bak mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null echo '[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
yum clean all &> /dev/null
yum makecache &> /dev/null df -h | grep "/mnt"
if [ $? -ne 0 ];then
echo -e "\033[31m 检测当前为仅主机模式,但光盘未连接! \033[0m"
else
echo -e "\033[31m 本地yum源已配置完成 \033[0m"
fi
fi #关闭系统防火墙和安全机制
systemctl stop firewalld
systemctl disable firewalld
setenforce 0 echo -e "\033[31m 检查安装包是否正确,请耐心等待 \033[0m"
ls /opt | egrep "^mysql-boost-5.7.20.tar.gz$"
if [ $? -eq 0 ];then
echo -e "\033[31m 接下来进入正式配置,请耐心等待 \033[0m"
else
echo -e "\033[31m 请准备正确安装包mysql-boost-5.7.20.tar.gz \033[0m"
exit
fi #安装Mysql环境依赖包
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake \
gcc \
gcc-c++ \
make #创建程序用户,便于准确控制访问用户
useradd -M -s /sbin/nologin mysql #编译安装
cd /opt
tar xzvf mysql-boost-5.7.20.tar.gz -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_EXTRA_CHARSETS=all \
-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 配置文件
echo '[client]
port = 3306
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
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
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' > /etc/my.cnf #更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf #设置路径环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib">> /etc/profile
source /etc/profile #初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data #添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
5、Mysql 基本操作命令:
常用的数据类型:
int | 整型 |
---|---|
float | 单精度浮点 4字节32位 |
double | 双精度浮点 8字节64位 |
char | 固定长度的字符类型 |
varchar | 可变长度的字符类型 |
text | 文本 |
image | 图片 |
decimal (5,2) | 5个有效长度数字,小数点后面有2位 |
查看当前服务器中的数据库:
SHOW DATABASES; #大小写不区分,分号“;”表示结束
查看数据库中包含的表:
USE 数据库名;
SHOW TABLES;
查看表的结构(字段):
USE 数据库名;
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;
SQL语句:
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
SQL语言分类:
DDL | 数据定义语言,用于创建数据库对象,如库、表、索引等 |
---|---|
DML | 数据操纵语言,用于对表中的数据进行管理 |
DQL | 数据查询语言,用于从数据表中查找符合条件的数据记录 |
DCL | 数据控制语言,用于设置或者更改数据库用户或角色权限 |
a)创建新的数据库:
CREATE DATABASE 数据库名;
b)创建新的表:
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
例:create database sanguo;
use sanguo;
create table CLASS1 (id int not null,name char(10) not null,sex char(1),primary key (id));
c)删除指定数据表:
DROP TABLE [数据库名.]表名; #如不用USE进入库中,则需加上数据库名
d)删除指定的数据库:
DROP DATABASE 数据库名; 例:show databases;
drop table SANGUO.chibi;
use SANGUO;
show tables; drop database SANGUO;
show databases;
管理表中的数据记录
a)向数据表中插入新的数据记录:
INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...); 例:create database sanguo; use sanguo; create table chibi (id int not null,name char(20) not null,sex char(1) not null,primary key (id)); insert into chibi (id,name,sex) values(1,'zhangsan','男');
b)查询数据记录:
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式]; 例:select * from CLASS2;
select name,sex from CLASS2 where id=1;
c)修改、更新数据表中的数据记录:
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式]; 例:insert into CLASS2 (id,name,sex) values(2,'lisi','女');
insert into CLASS2 (id,name,sex) values(3,'wangwu','男');
select * from CLASS2; update CLASS2 set id=4 where name='zhangsan';
select * from CLASS2; update CLASS2 set name='sicong',sex='男' where id=2;
select * from CLASS2;
d)在数据表中删除指定的数据记录:
DELETE FROM 表名 [WHERE 条件表达式]; 例:delete from CLASS2 where id=4;
select * from CLASS2;
修改表名和表结构
a)修改表名:
ALTER TABLE 旧表名 RENAME 新表名; 例:alter table CLASS2 rename CLASS3;
show tables;
select * from CLASS3;
b)扩展表结构(增加字段):
ALTER TABLE 表名 ADD address varchar(50) default '地址不详';
#default ‘地址不详’:表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用
例:alter table CLASS3 add address varchar(50) default '地址不详';
c)修改字段(列)名,添加唯一键:
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key]; 例:alter table CLASS3 change name student_name varchar(20) unique key;
select * from CLASS3; insert into CLASS3 (id,student_name,sex) values (1,'zhangsan','男');
select * from chibi;
insert into chibi (id,student_name,sex) values (4,'zhangsan','男');
d)删除字段:
ALTER TABLE 表名 DROP 字段名; 例:alter table chibi drop address;
MySQL基本命令操作及数据库基本概念的更多相关文章
- MySQL基本命令和常用数据库对象
MySQL基本命令: 连接远程主机的MySQL服务(为了保证安全性,执行下面命令时,可以省略-p后面的密码,执行命令后系统会提示输入密码) mysql -p 密码 -u 用户名 -h 主机地址 --d ...
- MySQL丨01丨数据库基本概念
以前记录数据可能很少也很简单,比如说老王借了老李半斤肉,这样的数据老李直接就写到墙上就行了. 后来数据多了人们就以表格的方式开始记录,写到一张A4纸上,比如学生的档案,有表头和序号等. 表头里有姓名. ...
- mySQL CRUD操作(数据库的增删改查)
一.数据库操作 1.创建数据库 create database 数据库名称 2.删除数据库 drop database 数据库名称 二.表操作 1.创建表 create table 表名 ( ...
- mysql 基本命令操作
1. 查看存储引擎 show engines; 2. 查看数据存储位置 show variables like 'datadir': 3. 存储引擎 create table mytest engin ...
- MySQL系列:走进数据库,相关概念你都明白吗?
数据库,一个我们常常提到的名词,但是你有没有想过,它到底是什么意思呢,而我们常说的 MySQL.Oracle 等又到底指什么呢? 数据库 数据库(DataBase),简称 DB,是数据库是存储数据的集 ...
- 数据库mysql 基本命令
.....= =.... 进入mysql: mysql -uroot ; 创建一个数据库: create database [数据库名字]; (注意最后的分号不能漏) 删除一个数据库:drop dat ...
- MySql学习 (一) —— 基本数据库操作语句、三大列类型
注:该MySql系列博客仅为个人学习笔记. 在使用MySql的时候,基本都是用图形化工具,如navicat.最近发现连最基本的创建表的语法都快忘了... 所以,想要重新系统性的学习下MySql,为后面 ...
- mysql 数据库基本概念
mysql 数据库基本概念 一.数据库的集中控制优点1.降低存储数据的冗余度2.更高的数据一致性3.存储的数据可以共享4.可以建立数据库所遵循的标准5.便于数据维护完整性6.能够实现数据的安全性 二. ...
- mysql之数据库基本概念(mysql学习笔记一)
数据库系统 数据库管理系统(DBMS)+数据库(DATABASE)(+数据库管理员) DBS=dbms+db 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...
随机推荐
- Asp.Net Core 使用Monaco Editor 实现代码编辑器
在项目中经常有代码在线编辑的需求,比如修改基于Xml的配置文件,编辑Json格式的测试数据等.我们可以使用微软开源的在线代码编辑器Monaco Editor实现这些功能.Monaco Editor是著 ...
- Linux查看CPU详细信息
1.查看CPU详细信息 在Linux服务器上查看CPU详细信息: cat /proc/cpuinfo 输出结果: processor : 0 vendor_id : GenuineIntel cpu ...
- Kafka和RabbitMQ有哪些区别,各自适合什么场景?
经常有人问我 有个 xx 需求,我应该用 Kafka 还是 RabbitMQ ? 这个问题很常见,而且很多人对二者的选择也把握不好. 所以我决定写篇文章来详细说一下:Kafka 和 RabbitMQ ...
- K210,yolo,face_mask口罩检测模型训练及其在K210,kd233上部署
前段时间考研,再加上工作,时间很紧,一直没有更新博客,这几天在搞k210的目标检测模型,做个记录,遇到问题可以添加qq522414928或添加微信13473465975,共同学习 首先附上github ...
- [ python应用 ] python递归搜索文件,支持搜索多个文件,支持自定义处理动作
写了一个PyQT界面的版本:https://github.com/LongchuanYu/pyqt_project PATH = r'E:\MyDocument\新しいフォルダー\' # 要搜索的目录 ...
- mysql数据库忘记root密码怎么办?
mysql数据库忘记root密码怎么破解和修改 1.停止数据库的运行 [root@localhost ~]# /etc/init.d/mysqld stop 或者[root@localhost ~]# ...
- 第10组 Alpha冲刺 (3/6)(组长)
1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/13971668.html ·作业博客:https://edu.cnblogs.co ...
- Jenkins Hackfest 用户体验文档报告
Jenkins 技术文档是我们项目的重要组成部分,因为它是正确使用 Jenkins 的关键.好的文档可以指导用户,并鼓励选择好的实现方式.这是用户体验的关键部分.在最近的 Jenkins UI/UX ...
- 【原创】阿里三面:搞透Kafka的存储架构,看这篇就够了
阅读本文大约需要30分钟.这篇文章干货很多,希望你可以耐心读完. 你好, 我是华仔,在这个 1024 程序员特殊的节日里,又和大家见面了. 从这篇文章开始,我将对 Kafka 专项知识进行深度剖析, ...
- 如何使用Github搭建自己的博客
1.前期准备 sudo apt-get install npm sudo npm install hexo -g 首先使用如下命令创建项目,name是你要创建的博客的名字: hexo init {na ...