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 学 ...
随机推荐
- KEEPALIVED+LVS+MYCAT实现MYSQL高可用环境搭建
一.安装keepalived和ipvsadm 注意:ipvsadm并不是lvs,它只是lvs的配置工具. 为了方便起见,在这里我们使用yum的安装方式 分别在10.18.1.140和10.18.1.1 ...
- Windows自调试Redis
一.安装Redis 1. Redis官网下载地址:http://redis.io/download,下载相应版本的Redis,在运行中输入cmd,然后把目录指向解压的Redis目录. 2.启动服务命令 ...
- twemproxy 安装与配置
转自:http://blog.csdn.net/u011183653/article/details/21240749 说到twemproxy就不得不说要一下redis,这是因为twemproxy是为 ...
- python中的各个包的安装,用pip安装whl文件
在安装之前,一直比较迷惑究竟如何用,安装完后,发现竟然如此简单 首先我一般用的是python27,官网下载python27msi安装window7 64位后,已经自带了Pip 和 easy_insta ...
- PL/SQL控制语句
本节要点: l 选择结构控制语句 if条件控制语句 Case语句 l 循环结构控制语句 基本loop循环 for循环 while循环 嵌套循环 PL/SQL既然是面向过程的编程语言,那么它就有针对 ...
- 单机 & 弱联网手游 防破解、金币改动 简单措施
手游经常使用破解方法 对于一个弱联网或者单机游戏,能够从下面方面去破解: 1.找得到存档文件的,直接破解改动存档文件. 2.找不到存档文件,就在游戏执行时借助一些软件来改动数值,比方用各种改动器手游助 ...
- sql查询语句中的乱码 -- 前面加N
直接运行sql出出现乱码,在中文字符前加N就能够正常显示了.N的含义就是用nvarchar格式显示.
- Android 对话框(Dialog) 及 自己定义Dialog
Activities提供了一种方便管理的创建.保存.回复的对话框机制,比如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...
- Linux3.5内核以后的路由下一跳缓存
在Linux3.5版本号(包括)之前.存在一个路由cache.这个路由cache的初衷是美好的,可是现实往往是令人遗憾的.下面是陈列得出的两个问题:1.面临针对hash算法的ddos问题(描写叙述该问 ...
- Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the server requires
Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the server requires ...