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 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...
随机推荐
- Jsonschema2pojo从JSON生成Java类(命令行)
1.说明 jsonschema2pojo工具可以从JSON Schema(或示例JSON文件)生成Java类型, 在文章Jsonschema2pojo从JSON生成Java类(Maven) 已经介绍过 ...
- Notepad++快速选中多行
我们在编辑文章的时候, 通常需要选择多行连续的文本, 可以使用Shift+鼠标选择多行文本, 如果一次需要选择的文本太多, 比如选择10000到20000行之间的文本, 鼠标要拉好久,手一累一抖,又要 ...
- SpringBoot 与 SpringCloud 的版本对应详细信息
"spring-cloud": { "Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M ...
- python + pymysql连接数据库报“(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)")”
python + pymysql连接数据库报"(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)&quo ...
- 攻防世界-进阶-[re1-100]
一.收集程序信息 64位的ELF文件,没有壳 二.放入IDA 使用64位IDA打开文件,先进行静态分析查看伪代码,进入main函数 通过这段可以得知输入的内容存储到了input中(这里我将bufwri ...
- 乒乓球队比赛,甲队有abc三人,乙队有xyz三人。 抽签得出比赛名单:a不和x比,c不和x,z比, 利用集合求出比赛名单
import java.util.HashMap; import java.util.Map; /** * 乒乓球队比赛,甲队有abc三人,乙队有xyz三人. * 抽签得出比赛名单:a不和x比,c不和 ...
- Keepalived高可用、四层负载均衡
目录 Keepalived高可用 高可用简介 常用的工具 问题 名称解释 VRRP协议 部署keepalived 下载安装 Keepalived配置 保证nginx配置一样 解决keepalived的 ...
- 【转载】select case break引发的血案
原文请看:select case break引发的血案 我也遇到了,浪费了一个多小时. 牢记: for { switch var1{ case "not match": go En ...
- Servlet监听器统计网站在线人数
本节我们利用 Servlet 监听器接口,完成一个统计网站在线人数的案例.当一个用户登录后,显示欢迎信息,同时显示出当前在线人数和用户名单.当用户退出登录或 Session 过期时,从在线用户名单中删 ...
- IoC容器-Bean管理(bean生命周期)
1,生命周期 即从对象创建到对象销毁的过程 2,bean生命周期 (1)通过构造器创建bean实例(无参数构造) (2)为bean的属性设置值和对其他bean的引用(调用set方法) (3)调用bea ...