MySQL-数据库安装及基本SQL语句
一数据库基本概念
基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。
如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。
但是会出现以下问题:1 数据安全问题,如果电脑挂了怎么办,无法做到集群。
2 数据格式不统一,数据无法共享;
3 并发问题。。。
以上问题是所有开发者都面临的问题,所以有人就站出来说,我给你们开发好一个专门存储管理数据的软件,这就是数据库(RDBMS 数据库管理系统),市面上的数据库软件有很多种类,
其中大致可以分为两类;
1 关系型数据库:oricle, db2, access ,spl server,mysql
2 非关系型数据库:redis mongodb memcache
这两种类型分别又有什么样的特点呢:关系型数据库,存储数据的时候,对于数据条件限制;其次数据与数据之间有关联。
非关系型数据库,数据存储方式是k,v键值对的形式存储,数据与数据间么有关联,值没有条件限制。
总结:mysql就是帮助我们远程在文件上做相应操作的
MYSQL 数据库的安装
1 启动
服务端启动 mysqld
客户端启动 mysql -uroot -p
2 查看所有库 show databases;
3 环境变量设置:将bin 文件路径添加到环境变量
4 将mysql制作成系统服务(开机自启)
1 关掉服务:查找进程号tasklist |findstr mysql 杀掉进程:taskkill /F /PID 进程号
2 执行命令:mysqld --install
3 重启服务:net start mysql
查看本机服务:services.msc
5 更改密码: mysqladmin -uroot -p原密码 password 新密码
6 破解密码:
1.先关闭服务端
cmd找进程:tasklist|findstr mysql
杀进程:taskkill /PID 进程号
2.以跳过用户密码认证模式重新启动服务端
mysqld --skip-grant-tables
3.以管理员登录
4.修改mysql库里面的user表
update mysql.user set password=password(123) where user='root' and host='localhost';
5.先关闭跳过验证的服务端,以正常模式启动服务端
6.输入用户名密码正常登陆
7.解决编码问题
数据库初始化:mysqld --initialize-insecure
查询服务器启动错误: mysqld --console
[mysqld] #服务端配置
port = 3306 # 默认端口号
basedir=D:\mysql # 文件目录
datadir=D:\mysql\data # 数据库目录
max_connections=200 # 客户端最大连接数
character-set-server=utf8 # 统一字符编码
collation-server=utf8_general_ci # 排序规则
default-storage-engine=INNODB # 默认存储引擎为innodb
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=utf8 # 同一字符编码utf-8
[client]
default-character-set=utf8 # 统一字符编码utf-8
基本的sql语句
对数据的增删改查
| 操作 | 库(文件夹) | 表(文件) | 记录 |
| 增 | create database 库名 charset utf8; | creat table 表名(name char,age int); |
insert into 库名.表名 values(‘egon’,18); into 可加可不加,库名不指定,默认就是在当前库下 |
| 改 | alter database 库名 charset utf8; |
alter table 表名 modify name char(15); alter table 表名 column 字段名 字段类型;新增列 |
update 库名.表名 set name='dsb' where age=18; |
| 查 |
show databases; show create database 库名; |
show tables; show create table 表名;查看表详细信息 describe 表名;查看表结构 |
selcet age,name from 库名.表名; 库名可以不指定,默认当前库下。 select * from 表名; |
| 删 | drop database 库名; | drop table 表名; |
delete from 库名.表名 where age>3; delete from 库名.表名 where name=‘egon’ 这里注意如果少了引号,后面无论敲什么都没有用了需要将引号补全。 |
表操作
文件的格式有很多种,对应打开的软件也有很多种,例如 txt,pdf 等等,针对不同类型的文件,需要对应不同的软件帮助我们去操作。
查看所有的存储引擎 show engines;
四种需要了解的引擎:innodb myisam blackhole memory
| innodb | myisam | blackhole | memory |
|
两个文件(frm idb ) frm 空表 idb 数据 |
三个文件(frm MYd MYI) MYI 索引 |
一个文件(frm) | 一个文件(frm) |
存储引擎
不同的应用软件处理不同类型的数据
mysql5.5版本及以上默认的存储引擎是innodb;
innodb:支持行锁表锁,外键,事物,安全性更高,较myisam数据更安全;
myisam:仅仅支持表锁不支持行锁,查询速度较innodb更快;
memory:内存引擎,将所有的数据直接放在内存,一旦断电数据全部消失;
blackhole:一切存入其中的数据都会消失;
指定表的引擎:create table t1(id int,name char(16))engine=innodb;
MySQL-数据库安装及基本SQL语句的更多相关文章
- Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...
- 如何找出MySQL数据库中的低效SQL语句
面对业务的迅猛发展,DBA的一项重要工作就是及时发现数据库中的低效SQL语句,有的可以立刻着手解决(比如缺少合适的索引),有的需要尽快反馈给开发人员进行修改. MySQL数据库有几个配置选项可以帮助我 ...
- Django中使用mysql数据库并使用原生sql语句操作
Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件mysql数据库,版本5.7 ...
- 数据库安装和基本sql语句
数据库概念 文件作为数据进行存储,数据格式千差万别 将保存数据的地方统一起来 MYSQL--------->一款应用软件 用来帮你操作文件的 只要是基于网络通信,底层就是socket 服务端 - ...
- MySQL数据库优化技术之SQL语句慢查询定位
通过show status命令了解各种SQL的执行频率 MySQL客户端连接成功后,通过使用show [session|global] status 命令可以提供服务器状态信息: 其中的session ...
- mysql数据库表的基本操作sql语句总结
1,命令行登录命令 mysql -h localhost -u root -p C:\Users\lenovo>mysql -u root -p Enter password: ***** We ...
- MySQL数据库增删改查SQL语句(2018整理集合大全)
查看数据库 show databases; 使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 cre ...
- MySQL数据库(一)—— 数据库介绍、MySQL安装、基础SQL语句
数据库介绍.MySQL安装.基础SQL语句 一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 ...
- [MySQL数据库之数据库相关概念、MySQL下载安装、MySQL软件基本管理、SQL语句]
[MySQL数据库之数据库相关概念.MySQL下载安装.MySQL软件基本管理.SQL语句] 数据库相关概念 数据库管理软件的由来 数据库管理软件:本质就是个C/S架构的套接字程序. 我们在编写任何程 ...
- 数据库MySQL经典面试题之SQL语句
数据库MySQL经典面试题之SQL语句 1.需要数据库表1.学生表Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学 ...
随机推荐
- Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)-转帖篇
原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...
- HDU1241 - Oil Deposits【DFS】
GeoSurvComp地质调查公司负责探测地下石油储藏. GeoSurvComp现在在一块矩形区域探测石油,并把这个大区域分成了很多小块.他们通过专业设备,来分析每个小块中是否蕴藏石油.如果这些蕴藏石 ...
- [poj 3539] Elevator (同余类bfs)
Description Edward works as an engineer for Non-trivial Elevators: Engineering, Research and Constru ...
- Python面向对象----多态和鸭子类型
1. C#中多态实现的条件是 继承, 重写以及父类指向子类. 但是在弱类型Python里面, 实现多态的条件就显得很简洁, 只需要在子类中实现父类相同名称的方法即可. 2. 鸭子类型的解释: 若一个类 ...
- 《你又怎么了我错了行了吧》【Alpha】Scrum meeting 4
第四天 日期:2019/6/17 前言: 第4次会议在女生宿舍召开 对前面的系统改进有了方向,讨论了代码编写的分配问题 1.1 今日完成任务情况以及明天任务安排 姓名 当前阶段任务 下一阶段任务 刘 ...
- LiquidCrystal库函数
主要资料来源: 极客工坊-知识库 (LiquidCrystal库地址:http://wiki.geek-workshop.com/doku.php?id=arduino:libraries:liqui ...
- cogs 1164. 跑步
1164. 跑步 ★ 输入文件:runa.in 输出文件:runa.out 简单对比时间限制:1 s 内存限制:128 MB [题目描述] 路人甲准备跑N (5≤N≤500)圈来锻炼自 ...
- 漫说好管理vs.坏管理
天地会珠海分舵注:本文英文版来自Medium今日热点头条.漫画简单明了,全文差点儿没有多余的语言去装饰.两天内获得两千三百多个推荐,且读者的反馈也相当的热烈.中文版由天地会珠海分舵编译后分享给大家. ...
- Java向上转型和向下转型(附具体样例)
Java向上转型和向下转型(附具体样例) 熬夜整理的关于Java向上和向下转型的样例,很的通俗易懂哦~~~~ 一 ...
- TeamTalk Android代码分析(业务流程篇)---消息发送和接收的整体逻辑说明
第一次纪录东西,也没有特别的顺序,想到哪里就随手画了一下,后续会继续整理- 6.2消息页面动作流程 6.2.1 消息页面初始化的总体思路 1.页面数据的填充更新直接由页面主线程从本地数据库请求 2.数 ...