MYSQL之数据库初识、安装详解、sql语句基本操作
MYSQL之数据库初识及安装详解
1.什么是数据库?
1.什么是数据?(data)
描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机
在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:
1,zhang,不详,18,2001,wan,swimming
单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思,相当于定义表的标题
id,name,height,age,birth,birth_addr,hobby # 字段/列名
1, zhang,不详, 18, 2001, wan, swimming #数据
这样我,们就可以了解到zhang,身高不详,年龄18,出生于2001年,住在安徽,爱好是游泳
2.什么是数据库?(databases,简称DB)
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用
数据库是长期存放在计算机内、有组织、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享
2.为什要用数据库?
第一,将文件和程序存在一台机器上是很不合理的。
第二,操作文件是一件很麻烦的事
数据库的优势
1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。
2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket
4.效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
可以理解为 数据库 是一个可以在一台机器上独立工作的,并且可以给我们提供高效、便捷的方式对数据进行增删改查的一种工具。
如此就帮助我们解决了上面出现的问题,如果将所有的数据都存储在一个独立的机器上,而对用户提供服务的机器只是存放你写的代码。
3.什么是数据库管理系统?(DataBase Management System 简称DBMS)
如何科学地组织和存储数据,如何高效获取和维护数据成了关键,这就用到了一个系统软件---数据库管理系统。
如MySQL、Oracle、SQLite、Access、MS SQL Server
mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。
数据库管理员 DBA(Database Administrator)
4.数据库管理软件的分类
管理数据的工具有很多种,不止mysql一个。
最常使用的分类还是根据他们存取数据的特点来划分的,主要分为关系型和非关系型。
关系型数据库:数据与数据之间可以有关联合限制的,关系型数据库通常都是表结构,也意味着在使用关系型数据库的时候,要先确定表结构;数据存储在硬盘上。
例如:MYSQL,oracle,sqlite,db2,sqlserver
非关系型数据库:通常都是以k、v键值形式存储数据,没有表结构;数据存在内存中。
例如:redis,mongodb(文档型数据库 非常接近关系型的非关系型数据),memcache
5.MYSQL数据库
本质就是一款基于网络通信的应用软件
任何基于网络通信的软件 底层都是socket
mysql的架构
类似于 socket的客户端和服务端
流程:
1. mysql服务端先启动,监听在某一个特定的端口(3306)
2. mysql客户端连接服务端
3. mysql客户端就可以发送相关的操作命令,去操作服务端存储的数据
MYSQL是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了数据操作的速度,并提高了灵活性。
MYSQL不单单支持MYSQL的客户端来操作,也支持其他编程语言直接操作,Python,Java,C++,PHP等,他们语法都不一样,但都能操作MYSQL数据库。
在MYSQL中,客户端(mysql)发送一条SQL语句,服务端(mysqld)接收命令并相响应,从数据库中查找数据并返回。
库 >>> 文件夹
表 >>> 文件
记录 >>> 文件内一行行的数据叫做一条条的记录
表头 就是表格的第一行数据
字段 字段名+字段类型
6.数据库服务器、数据管理系统、数据库、表记录之间的关系
记录:1 朱葛 13234567890 22(多个字段的信息组成一条记录,即文件中的一行内容)
表:userinfo,studentinfo,courseinfo(即文件)
数据库:db(即文件夹)
数据库管理系统:如mysql(是一个软件)
数据库服务器:一台计算机(对内存要求比较高)
总结:
数据库服务器-:运行数据库管理软件
数据库管理软件:管理-数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记录
MYSQL的安装
下载及启动
1.下载地址:https://dev.mysql.com/downloads/mysql/
下载之后 是将MySQL的服务端和客户端都下载了下来
解压
查看文件目录
MYSQL->bin->mysql.exe(客户端)/mysqld.exe(服务端)
服务端
mysqld
客户端
mysql
2.启动流程:
先启动服务端mysqld(cmd以管理员身份运行,不然权限不足,报错。)
再启动客户端mysql(可以是普通的cmd)
1) 启动mysqld
1.切换到bin目录下
2.执行mysqld
ps:做前期MySQL配置的时候 终端建议你用管理员身份运行(”运行”--->输入”cmd"--->右键点击“cmd.exe”,以管理员身份运行
2) 启动mysql(终端可以是普通cmd)
1.切换到bin目录下
2.执行mysql -h 127.0.0.1 -P 3306 -uroot -p
其中:h表示本机(localhost),127.0.0.1是本机循环地址,P表示MYSQL端口(port),uroot表示用户名,p表示用户密码;所有参数都是以空格分开。
步骤2可以简写为:mysql -uroot -p,IP和port不需要指定,默认就是本地的。
注意:mysql在初始登陆的时候 是没有密码的 直接回车即可
mysql中的sql语句,是以分号结束的,不敲分号,默认你没有输入完,客户端还会让你继续输入
如果不输入用户名和密码 默认是访客模式登陆 所能用到的功能(库)很少,即在cmd内直接mysql回车,省去-uroot -p。
3)客户端退出登陆
exit;
quit;
查看所有的数据库
show databases;
查看某个进程
tasklist |findstr 名称
杀死进程
taskkill /F /PID 进程号
配置环境变量及作系统服务
制作环境变量
将启动文件所在的路径添加到系统的环境变量中,这样就不需要切换到MYSQL/bin所在的磁盘区启动mysql客户端及服务端mysqld了。直接cmd读入mysql -uroot -p 连接服务端了。
注意:配置完之后一段要重新启动mysql服务端及cmd终端
将mysqld制作成系统服务(电脑一启动,服务端就自己启动,只需要启动客户端mysql连接)
制作系统服务 你的cmd终端一定要是管理员身份
cmd终端输入以下:
mysqld --install # mysqld添加到系统服务
查看系统服务
services.msc # cmd输入
修改密码
没有密码的情况下
mysqladmin -uroot -p password 123
有密码的情况下
mysqladmin -uroot -p123 password 123456
当命令输入错误的时候 可以用\c取消前面的命令 cancel
破解密码
1.现将已经启动的服务端停掉
2.修改管理员用户对应的密
update mysql.user set password=password(123) where user='root' and host='localhost';
3.关闭当前服务端 重新以校验用户名密码的方式启动
4.正常以用户名密码的方式 连接mysql服务端
配置文件
\s 查看 mysql服务端版本信息
在MySQL程序中重新建一个my.ini文件
# my.ini文件内容
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
sql_mode="STRICT_TRANS_TABLES,PAD_CHAR_TO_FULL_LENGTH,ONLY_FULL_GROUP_BY "
[client]
default-character-set=utf8
[mysql]
user='root' # 用户名
password=123 # 我们设置的密码
default-character-set=utf8
通常情况下配置文件的后缀都是ini结尾
mysql自带的配置文件(my-default.ini)不要修改
但是你可以新建一个配置文件 my.ini
mysql服务端在启动就会自动加载你的my.ini配置文件内的配置
修改完配置文件之后需要先将服务端停止 重新启动 才能生效
修改了配置文件一定要重启服务端
数据库的基本操作
1. 操作文件夹(库)
增:create database db1 charset utf8;
查:show databases; # 查所有
show create database db1; 查单个库的编码方式
改:alter database db1 charset latin1; # 修改编码
删: drop database db1; # 删库
2.操作文件(表)
在操作表的时候 需要先指定库
指定库: use 库名
先切换到文件夹下:use db1
查看当前所在的库: select database()
增:create table t1(id int,name char) charset utf8; 不指定字符编码会报错
查(三种):1)show tables; # 查看某个库下面的所有的表
2)show create table userinfo; # 查看指定表的表头所有的字段的名称及对应的约束条件;
3)desc userinfo; <==> describe userinfo; # 与2)相同,区别就是以表格的形式列出信息;
改:alter table t1 modify name char(3);
alter table 表名 modify 字段[字段类型] [字段约束条件]; # 修改字段类型及约束条件
alter table t1 change name name1 char(2);
alter table 表名 change 旧表名 新表名 字段[字段类型] [字段约束条件]; # 不仅修改字段类型及约束条件,还修改表名。
删:drop table t1;
3.记录
先创建一个库或者指定一个已经存在的库
切换到该库下 创建表
然后再操作记录
create database db1;
create table userinfo(id int,name char(32),password int);
增
insert into userinfo values(1,'jason',123); 插入单条数据
insert into userinfo values(1,'jason',123),(2,'egon',123),(3,'tank',123); 插入多条数据
查
select * from userinfo; 查询所有的字段信息
select name from userinfo; 查询指定字段信息
select id,name from userinfo where id=1 or name=tank; 带有筛选条件的字段信息
改
update userinfo set name='kevin' where id=1; 修改数据的一个字段信息
update userinfo set name='jason',password=666 where id=1; 修改数据的多个字段
删
delete from userinfo where id =1; 指定删符合条件的数据
delete from userinfo; 将表中的数据全部删除(单条删除,类似于对Excel逐行删除),如果有自增id,新增的数据,仍然是以删除前的最后一个id号数作为起始
truncate table userinfo;数据量大,删除速度比delete快(类似于对Excel使用Ctrl+A,全选一次性删除),且直接从零开始
*auto_increment 表示:自增
*primary key 表示:约束(不能重复且不能为空);加速查找
MYSQL之数据库初识、安装详解、sql语句基本操作的更多相关文章
- nodejs mysql 操作数据库方法一详解
nodejs mysql 数据查询例子 时间 2014-11-11 15:28:01 姜糖水原文 http://www.cnphp6.com/archives/59864 1.安装nodejs 2 ...
- MySQL数据库图文安装详解及相关问题
(尊重劳动成果,转载请注明出处: http://blog.csdn.net/qq_25827845/article/details/53366444冷血之心的博客) 首先说明:安装目录中不能有中文和空 ...
- Oracle数据库的安装详解
1.写在安装前的话 可能有很多的菜鸟十分害怕大型软件的安装,因为安装过程中的一些错误很让他们头疼.下面我就写一个教程,希望能对大家有帮助,在安装ORACLE之前给大家一点点的意见: (1)尽量要安装L ...
- Net Core中数据库事务隔离详解——以Dapper和Mysql为例
Net Core中数据库事务隔离详解--以Dapper和Mysql为例 事务隔离级别 准备工作 Read uncommitted 读未提交 Read committed 读取提交内容 Repeatab ...
- 重新学习MySQL数据库7:详解MyIsam与InnoDB引擎的锁实现
重新学习Mysql数据库7:详解MyIsam与InnoDB引擎的锁实现 说到锁机制之前,先来看看Mysql的存储引擎,毕竟不同的引擎的锁机制也随着不同. 三类常见引擎: MyIsam :不支持事务,不 ...
- MySQL数据库(一)—— 数据库介绍、MySQL安装、基础SQL语句
数据库介绍.MySQL安装.基础SQL语句 一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 ...
- 数据库基础知识详解四:存储过程、视图、游标、SQL语句优化以及索引
写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正. 11.存储过程 存储过程是事先经过编译并存储在数 ...
- MySQL数据类型以及基本使用详解
MySQL数据类型以及基本使用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL服务器的主要组件 我们知道MySQL的主要组件主要是由服务端(mysqld)和客户端 ...
- 数据库开发-pymysql详解
数据库开发-pymysql详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python支持的MySQL驱动 1>.什么是驱动 与MySQL通信就是典型的CS模式.Se ...
随机推荐
- 保存cookie 到本地
#encoding: utf-8 from urllib import requestfrom http.cookiejar import MozillaCookieJar #创建一个cookieja ...
- HanLP-实词分词器详解
在进行文本分类(非情感分类)时,我们经常只保留实词(名.动.形)等词,为了文本分类的分词方便,HanLP专门提供了实词分词器类NotionalTokenizer,同时在分类数据集加载处理时,默认使用了 ...
- 面向服务架构之RPC原理与实例
1.RPC概述 RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样.主要是为了应对当前互 ...
- 小记--------spark-Wordcount经典案例之对结果根据词频进行倒序排序
还是以经典案例Wordcount为例: 逻辑思路: 1.先把文本按空格切分成每个单词 flatMap() 2.将每个单词都转换成Tuple2类型(hello ,1) map() 3.将 ...
- Intel Driver and Support Assistant 安装失败
Intel Driver and Support Assistant 以下简称 Intel DSA. Intel DSA 依赖 Microsoft Visual C++ 2015-2019 Redis ...
- 关于springcloud hystrix 执行 hystrix.stream 跳转失败的问题
经过观看网友的总结:应该时版本的问题.某些版本没有对/hystrix.stream进行配置 所以解决方案(网友答案): 需要配置类配置下面 @Bean public ServletRegistrati ...
- Jmeter的操作流程
1.1 什么是 JMeter Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具.用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域 ...
- 从入门到自闭之Python随机模块
导入:import random 随机小数:random.random():大于0小于1之间的小数 指定数字之间的小数,不包含指定的最大值:random.uniform() 随机整数:random.r ...
- 一份非常完整、详细的MySQL规范
一.数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名 ...
- echarts-迁徙图地点图标颜色修改
引用:https://gallery.echartsjs.com/editor.html?c=xLSy9AUmlA var uploadedDataURL = "/asset/get/s/d ...