MySQL基本命令操作及数据库基本概念

1、数据库的基本概念

2、主流数据库介绍

3、关系型非关系型数据库介绍

4、Mysql 安装方法

5、Mysql 基本操作命令

1、数据库的基本概念:

数据库的组成

数据:     描述事物的符号记录

       包括数字,文字、图形、图像、声音、档案记录等

          以“记录”形式按统一格式进行存储

表:        将不同的记录组织在一起,用来存储具体数据

数据库: 表的集合,是存储数据的仓库

      以一定的组织方式存储的相互有关的数据集合

 

数据库的管理系统(DBMS):

是实现对数据库资源有效组织、管理和存取的系统软件

功能:数据库的建立和维护功能、数据定义功能、数据操控功能、数据库的运行管理功能、通信功能

数据库系统(DBS)

是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成

用户可以通过DBMS或应用程序操作数据库

2、主流数据库介绍:

MySQL数据库介绍:

一款深受欢迎的开源关系型数据库     Oracle旗下的产品,遵守GPL协议,可以免费使用与修改
特点

  1. 性能卓越、服务稳定
  2. 开源、无版权限制、成本低
  3. 多线程、多用户
  4. 基于C/S(客户端/服务器)架构
  5. 安全可靠

主流数据库介绍:  

SQL Server (微软公司产品)    Oracle (甲骨文公司产品) DB2 (IBM公司产品)    MySQL(甲骨文公司收购)

面向Windows操作系统            面向所有主流平台                面向所有主流平台      免费、开源、体积小

简单、易用                              安全、完善、操作复杂         大型、安全、完善

  

3、关系型非关系型数据库介绍:

关系型数据库: 硬盘中读写

a)关系数据库系统是基于关系模型的数据库系统

b)关系数据库的存储结构是二维表格

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

c)关系模型可用简单的"实体-关系-属性"来表示

  1. 实体 :也称为实例,对应现实世界中可区别与其他对象的“事件”或“事物” 如银行客户、银行账户等
  2. 关系 :实体集之间的对应关系称为联系,也称为关系 如银行客户和银行账户之间存在“储蓄”的关系
  3. 属性 :实体所具有的某一特性,一个实体可以有多个属性 如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性

  

非关系型数据库:

  存储数据不以关系模型为依据,不需要固定的表格式,内存中读写  键值对

非关系型数据库的优点:

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

4、Mysql 安装方法:

  将安装包拖至/opt目录下,编一个脚本文件,然后source执行脚本,等脚本执行完成,

即可使用mysql -u root -p点击回车即可进入。 本博主亲测 无修改100%  一键部署。(source 执行 否则会因为环境变量问题 出现报错)。

  1. #!/bin/bash
  2. echo -e "\033[31m =====正在验证当前为仅主机还是NAT模式===== \033[0m"
  3. ping -c1 -W1 www.baidu.com &> /dev/null
  4. if [ $? -eq 0 ];then echo -e "\033[31m 检测当前为NAT模式,为您配置在线yum源 \033[0m"
  5. mkdir -p /etc/yum.repos.d/repo.bak
  6.  
  7. mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null
  8.  
  9. wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null
  10.  
  11. yum clean all &> /dev/null
  12. yum list &> /dev/null
  13. echo -e "\033[31m 在线源已配置完成 \033[0m"
  14.  
  15. else
  16. echo -e "\033[31m 检测当前为仅主机模式,为您配置本地yum源 \033[0m"
  17. mount /dev/sr0 /mnt &> /dev/null
  18. cd /etc/yum.repos.d/
  19. mkdir -p /etc/yum.repos.d/repo.bak
  20.  
  21. mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null
  22.  
  23. echo '[local]
  24. name=local
  25. baseurl=file:///mnt
  26. enabled=1
  27. gpgcheck=0' > /etc/yum.repos.d/local.repo
  28. yum clean all &> /dev/null
  29. yum makecache &> /dev/null
  30.  
  31. df -h | grep "/mnt"
  32. if [ $? -ne 0 ];then
  33. echo -e "\033[31m 检测当前为仅主机模式,但光盘未连接! \033[0m"
  34. else
  35. echo -e "\033[31m 本地yum源已配置完成 \033[0m"
  36. fi
  37. fi
  38.  
  39. #关闭系统防火墙和安全机制
  40. systemctl stop firewalld
  41. systemctl disable firewalld
  42. setenforce 0
  43.  
  44. echo -e "\033[31m 检查安装包是否正确,请耐心等待 \033[0m"
  45. ls /opt | egrep "^mysql-boost-5.7.20.tar.gz$"
  46. if [ $? -eq 0 ];then
  47. echo -e "\033[31m 接下来进入正式配置,请耐心等待 \033[0m"
  48. else
  49. echo -e "\033[31m 请准备正确安装包mysql-boost-5.7.20.tar.gz \033[0m"
  50. exit
  51. fi
  52.  
  53. #安装Mysql环境依赖包
  54. yum -y install \
  55. ncurses \
  56. ncurses-devel \
  57. bison \
  58. cmake \
  59. gcc \
  60. gcc-c++ \
  61. make
  62.  
  63. #创建程序用户,便于准确控制访问用户
  64. useradd -M -s /sbin/nologin mysql
  65.  
  66. #编译安装
  67. cd /opt
  68. tar xzvf mysql-boost-5.7.20.tar.gz -C /opt
  69.  
  70. cd /opt/mysql-5.7.20/
  71. cmake \
  72. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  73. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
  74. -DSYSCONFDIR=/etc \
  75. -DSYSTEMD_PID_DIR=/usr/local/mysql \
  76. -DDEFAULT_CHARSET=utf8 \
  77. -DDEFAULT_COLLATION=utf8_general_ci \
  78. -DWITH_EXTRA_CHARSETS=all \
  79. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  80. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  81. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  82. -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
  83. -DMYSQL_DATADIR=/usr/local/mysql/data \
  84. -DWITH_BOOST=boost \
  85. -DWITH_SYSTEMD=1
  86.  
  87. #编译及安装
  88. make && make install
  89.  
  90. #修改mysql 配置文件
  91. echo '[client]
  92. port = 3306
  93. socket=/usr/local/mysql/mysql.sock
  94.  
  95. [mysqld]
  96. user = mysql
  97. basedir=/usr/local/mysql
  98. datadir=/usr/local/mysql/data
  99. port = 3306
  100. character-set-server=utf8
  101. pid-file = /usr/local/mysql/mysqld.pid
  102. socket=/usr/local/mysql/mysql.sock
  103. bind-address = 0.0.0.0
  104. skip-name-resolve
  105. max_connections=2048
  106. default-storage-engine=INNODB
  107. max_allowed_packet=16M
  108. server-id = 1
  109.  
  110. 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
  111.  
  112. #更改mysql安装目录和配置文件的属主属组
  113. chown -R mysql:mysql /usr/local/mysql/
  114. chown mysql:mysql /etc/my.cnf
  115.  
  116. #设置路径环境变量
  117. echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib">> /etc/profile
  118. source /etc/profile
  119.  
  120. #初始化数据库
  121. cd /usr/local/mysql/bin/
  122. ./mysqld \
  123. --initialize-insecure \
  124. --user=mysql \
  125. --basedir=/usr/local/mysql \
  126. --datadir=/usr/local/mysql/data
  127.  
  128. #添加mysqld系统服务
  129. cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
  130.  
  131. systemctl daemon-reload
  132. systemctl start mysqld.service
  133. systemctl enable mysqld

  

5、Mysql 基本操作命令:

常用的数据类型:

int 整型
float 单精度浮点 4字节32位
double 双精度浮点 8字节64位
char 固定长度的字符类型
varchar 可变长度的字符类型
text 文本
image 图片
decimal (5,2) 5个有效长度数字,小数点后面有2位

查看当前服务器中的数据库:

  1. SHOW DATABASES; #大小写不区分,分号“;”表示结束

  

查看数据库中包含的表:

  1. USE 数据库名;
  2. SHOW TABLES;

  

查看表的结构(字段):

  1. USE 数据库名;
  2. DESCRIBE [数据库名.]表名;
  3. 可缩写成:DESC 表名;

SQL语句:

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

SQL语言分类:

DDL 数据定义语言,用于创建数据库对象,如库、表、索引等
DML 数据操纵语言,用于对表中的数据进行管理
DQL 数据查询语言,用于从数据表中查找符合条件的数据记录
DCL 数据控制语言,用于设置或者更改数据库用户或角色权限

  

a)创建新的数据库:

  1. CREATE DATABASE 数据库名;

  

b)创建新的表:

  1. CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

  #主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。

  1. 例:create database sanguo;
  2. use sanguo;
  3. create table CLASS1 (id int not null,name char(10) not null,sex char(1),primary key (id));

  

c)删除指定数据表:

  1. DROP TABLE [数据库名.]表名; #如不用USE进入库中,则需加上数据库名

  

d)删除指定的数据库:

  1. DROP DATABASE 数据库名;
  2.  
  3. 例:show databases;
  4. drop table SANGUO.chibi;
  5. use SANGUO;
  6. show tables;
  7.  
  8. drop database SANGUO;
  9. show databases;

  

管理表中的数据记录

a)向数据表中插入新的数据记录:

  1. INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);
  2.  
  3. 例:create database sanguo;
  4.  
  5. use sanguo;
  6.  
  7. create table chibi (id int not null,name char(20) not null,sex char(1) not null,primary key (id));
  8.  
  9. insert into chibi (id,name,sex) values(1,'zhangsan','男');

  

b)查询数据记录:

  1. SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
  2.  
  3. 例:select * from CLASS2;
  4. select name,sex from CLASS2 where id=1;

  

c)修改、更新数据表中的数据记录:

  1. UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
  2.  
  3. 例:insert into CLASS2 (id,name,sex) values(2,'lisi','女');
  4. insert into CLASS2 (id,name,sex) values(3,'wangwu','男');
  5. select * from CLASS2;
  6.  
  7. update CLASS2 set id=4 where name='zhangsan';
  8. select * from CLASS2;
  9.  
  10. update CLASS2 set name='sicong',sex='男' where id=2;
  11. select * from CLASS2;

  

d)在数据表中删除指定的数据记录:

  1. DELETE FROM 表名 [WHERE 条件表达式];
  2.  
  3. 例:delete from CLASS2 where id=4;
  4. select * from CLASS2;

  

修改表名和表结构

a)修改表名:

  1. ALTER TABLE 旧表名 RENAME 新表名;
  2.  
  3. 例:alter table CLASS2 rename CLASS3;
  4. show tables;
  5. select * from CLASS3;

  

b)扩展表结构(增加字段):

  1. ALTER TABLE 表名 ADD address varchar(50) default '地址不详';

  

#default ‘地址不详’:表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用

  1. 例:alter table CLASS3 add address varchar(50) default '地址不详';

  

c)修改字段(列)名,添加唯一键:

  1. ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
  2.  
  3. 例:alter table CLASS3 change name student_name varchar(20) unique key;
  4. select * from CLASS3;
  5.  
  6. insert into CLASS3 (id,student_name,sex) values (1,'zhangsan','男');
  7. select * from chibi;
  8. insert into chibi (id,student_name,sex) values (4,'zhangsan','男');

  

d)删除字段:

  1. ALTER TABLE 表名 DROP 字段名;
  2.  
  3. 例:alter table chibi drop address;

  

MySQL基本命令操作及数据库基本概念的更多相关文章

  1. MySQL基本命令和常用数据库对象

    MySQL基本命令: 连接远程主机的MySQL服务(为了保证安全性,执行下面命令时,可以省略-p后面的密码,执行命令后系统会提示输入密码) mysql -p 密码 -u 用户名 -h 主机地址 --d ...

  2. MySQL丨01丨数据库基本概念

    以前记录数据可能很少也很简单,比如说老王借了老李半斤肉,这样的数据老李直接就写到墙上就行了. 后来数据多了人们就以表格的方式开始记录,写到一张A4纸上,比如学生的档案,有表头和序号等. 表头里有姓名. ...

  3. mySQL CRUD操作(数据库的增删改查)

    一.数据库操作 1.创建数据库 create database 数据库名称 2.删除数据库 drop database 数据库名称   二.表操作 1.创建表 create table 表名 (    ...

  4. mysql 基本命令操作

    1. 查看存储引擎 show engines; 2. 查看数据存储位置 show variables like 'datadir': 3. 存储引擎 create table mytest engin ...

  5. MySQL系列:走进数据库,相关概念你都明白吗?

    数据库,一个我们常常提到的名词,但是你有没有想过,它到底是什么意思呢,而我们常说的 MySQL.Oracle 等又到底指什么呢? 数据库 数据库(DataBase),简称 DB,是数据库是存储数据的集 ...

  6. 数据库mysql 基本命令

    .....= =.... 进入mysql: mysql -uroot ; 创建一个数据库: create database [数据库名字]; (注意最后的分号不能漏) 删除一个数据库:drop dat ...

  7. MySql学习 (一) —— 基本数据库操作语句、三大列类型

    注:该MySql系列博客仅为个人学习笔记. 在使用MySql的时候,基本都是用图形化工具,如navicat.最近发现连最基本的创建表的语法都快忘了... 所以,想要重新系统性的学习下MySql,为后面 ...

  8. mysql 数据库基本概念

    mysql 数据库基本概念 一.数据库的集中控制优点1.降低存储数据的冗余度2.更高的数据一致性3.存储的数据可以共享4.可以建立数据库所遵循的标准5.便于数据维护完整性6.能够实现数据的安全性 二. ...

  9. mysql之数据库基本概念(mysql学习笔记一)

    数据库系统   数据库管理系统(DBMS)+数据库(DATABASE)(+数据库管理员) DBS=dbms+db 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...

随机推荐

  1. Jsonschema2pojo从JSON生成Java类(命令行)

    1.说明 jsonschema2pojo工具可以从JSON Schema(或示例JSON文件)生成Java类型, 在文章Jsonschema2pojo从JSON生成Java类(Maven) 已经介绍过 ...

  2. Notepad++快速选中多行

    我们在编辑文章的时候, 通常需要选择多行连续的文本, 可以使用Shift+鼠标选择多行文本, 如果一次需要选择的文本太多, 比如选择10000到20000行之间的文本, 鼠标要拉好久,手一累一抖,又要 ...

  3. SpringBoot 与 SpringCloud 的版本对应详细信息

    "spring-cloud": { "Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M ...

  4. 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 ...

  5. 攻防世界-进阶-[re1-100]

    一.收集程序信息 64位的ELF文件,没有壳 二.放入IDA 使用64位IDA打开文件,先进行静态分析查看伪代码,进入main函数 通过这段可以得知输入的内容存储到了input中(这里我将bufwri ...

  6. 乒乓球队比赛,甲队有abc三人,乙队有xyz三人。 抽签得出比赛名单:a不和x比,c不和x,z比, 利用集合求出比赛名单

    import java.util.HashMap; import java.util.Map; /** * 乒乓球队比赛,甲队有abc三人,乙队有xyz三人. * 抽签得出比赛名单:a不和x比,c不和 ...

  7. Keepalived高可用、四层负载均衡

    目录 Keepalived高可用 高可用简介 常用的工具 问题 名称解释 VRRP协议 部署keepalived 下载安装 Keepalived配置 保证nginx配置一样 解决keepalived的 ...

  8. 【转载】select case break引发的血案

    原文请看:select case break引发的血案 我也遇到了,浪费了一个多小时. 牢记: for { switch var1{ case "not match": go En ...

  9. Servlet监听器统计网站在线人数

    本节我们利用 Servlet 监听器接口,完成一个统计网站在线人数的案例.当一个用户登录后,显示欢迎信息,同时显示出当前在线人数和用户名单.当用户退出登录或 Session 过期时,从在线用户名单中删 ...

  10. IoC容器-Bean管理(bean生命周期)

    1,生命周期 即从对象创建到对象销毁的过程 2,bean生命周期 (1)通过构造器创建bean实例(无参数构造) (2)为bean的属性设置值和对其他bean的引用(调用set方法) (3)调用bea ...