一、初识MySQL数据库 二、搭建MySQL数据库(重点) 三、使用MySQL数据库 四、认识MySQL数据库的数据类型 五、操作MySQL数据库的数据(重点)
一、初识MySQL数据库
###<1>数据库概述
1. 数据库
长期存储在计算机内的,由组织的可共享的数据集合
存储数据的仓库
文件
2. 数据库管理系统
操作和管理数据库的软件
软件
3. 数据库的类型
关系型:把复杂的数据结构归结为简单的二元关系(二维表的形式)
非关系型:NoSQL,Not Only SQL
键值存储数据库:Redis
文档存储数据库:MongDB,json/xml
列存储数据库:HBase
4. 主流的关系型数据库
Oracle:Oracle
收费
SQLServer:微软
开放性差
DB2:IBM
收费
5. 关系型数据的特点
由多张表和表之间的关系组成数据集合。(表的形式)
表由行和列组成
表的列:column ,字段,属性
表的行:row ,记录

###<2>MySQL概述
1. MySQL发展历程
瑞典MySQLAB 公司研发的开源的关系型数据管理系统
反对软件专利 copyright,copyleft
08被sun公司收购,09sun被Oracle
2. 版本
企业版:
商业的公司维护
收费,收取的服务费
社区版:
开源社区维护
免费
3. 特点
开源的关系型数据管理系统
短小精悍,速度快,总体拥有成本较低
被广泛的应用于中小型网站中
是LAMP流行网站架构的组成部分
# 二、搭建MySQL数据库
###<1>安装的方式
MSI安装:Windows Installer微软格式的安装包
ZIP安装:绿色版压缩包
###<2>注意事项(以前安装过MySQL数据库,卸载干净)
卸载MySQL数据库的步骤:
1. 关闭MySQL服务
2. 卸载MySQL数据库软件
3. 删除残留的数据
源安装位置
C://programData下的MySQL
注册表:xxxmachine/system/001~002~set/services/eventlog/application/mysql
###<3>安装MySQL数据库
MSI安装
编码
# 三、使用MySQL数据库软件
###<1>在DOS下启动MySQL服务
net start mysql
net stop mysql
###<2>登陆数据库
命令:mysql - 参数
参数:
-u 用户名
-p 密码
-P 指定端口号
-V 查看数据库的版本
-h 指定数据库的服务器地址
例如:
//登陆数据库,指定端口号和主机地址
mysql -uroot -proot -P3306 -h127.0.0.1
//登陆数据库,使用默认的端口和主机地址
mysql -uroot -proot
//密码不可见的方式登陆数据库
mysql -uroot -p回车
密码(不可见的)
//通过MySQL Command Line Client登陆MySQL数据库
//远程登陆MySQL数据库
mysql -uroot -proot -P3306 -h111.231.15.33
###<3>退出
方式一:exit
方式二:quit
方式三:\q
方式四:ctrl+c
###<4>修改密码
1. 停止MySQL服务
2. 在dos输入:mysqld --skip-grant-tables
3. 开启新的dos窗口,登陆mysql数据库(不需要密码)
4. 更改密码
use mysql (DB数据库,文件)
update user set password=password('123') where user='root';
5. 关闭dos窗口,结束mysqld进程
6. 重启MySQL服务
# 四、数据类型
MySQL支持多种数据类型:数值型,字符型,日期型
常用的数据类型:
1. 整型
int[(M)]:存储整数
例如:存储学生的年纪
stutAge int : 18
stutAge int unsigned : 18
stutAge int(5) zerofill: 00018 100000
总结:设置了zerofill属性的情况下,数据不足M位会在左侧补零;
超出的M位,则不受影响。
M只是一个预期值,和存储数据的范围没有关系。
2. 浮点型
float[(M,D)]:存储小数
例如:存储工资
salary float(6,2):存储的数据位数最多6位,其中有2位小数
9999.99,整数超出了范围直接报错,小数超出范围四舍五入操作
salary float: 没有限定
3. 字符型
char(): 固定长度的字符串类型,存储5,'5 '
会造成存储空间的浪费,速度快
varchar():变长的字符串类型,存储5,'5'
不存在存储空间的浪费,速度慢
text:大数据量的字符
blob:大数据量的字节
4. 日期类型
year:存储年份
time:时间类型,存储时间。hh:mm:ss
date:日期类型,存储日期。yyyy-MM-dd
datetime:日期+时间。yyyy-MM-dd hh:mm:ss
timestamp:时间戳类型。yyyy-MM-dd hh:mm:ss ,2037 年以前的时间可以存储
5. 举例
类型 字节 范围
tinyint 1byte -128~127(255)
smallint 2byte -32768~32767(65535)
mediumint 3byte 8百万(一千六百万)
int 4byte
bigint 8byte 9百多兆
注意:
short is better , age tinyint ungined ; 1 -128 ~ 127
选择合适的数据类型是数据库优化的一部分。
netstat -ano 列出当前端口使用的情况
tasklist 列出系统中正在运行的进程
taskkill 结束进程
# 五、操作MySQL数据库中的数据
###<1>SQL概述
SQL:Structure Query Language,定义和操作数据,维护数据的完整性和安全性。
被ISO国际化标准组织采纳为关系型数据库语言的国际标准。
简单易学,使用方便,面向非过程
###<2>组成
数据定义语言:DDL(Data Definition Language)
定义数据库和数据表
与数据无关
create drop alter
数据操纵语言:DML(Data Manipulation Language)
操作数据库中的数据
insert delete update
数据查询语言:DQL(Data Query Language)
查询数据的
无法更改数据
select
事务控制语言:TCL(Transaction Control Language)
事务控制语言
操作事务
commit rollback savepoint
数据控制语言:DCL(Data Control Language)
定义访问权限和安全级别
grant revoke
###<3>数据定义语言:DDL
###数据库操作
1. 创建数据库
语法格式:create database [if not exists] 数据库名称[default] character set 编码名称;
例如:
create database db1;
create database db1 if not exists;//忽视错误,显示警告
show warnings;//查看警告
create database db2 character set gbk;//指定数据库的字符集
2. 查询数据库
语法格式:
show databases;//查看所有数据库
show create database 数据库名称;//查看具体的一个数据库
3. 修改数据库
语法格式:alter database [if not exists] 数据库名称 character set = 编码格式;
例如:
alter database db2 character set=utf8;
4. 删除数据库
语法格式:drop database 数据库名称;
例如:
drop database db2;
###数据表操作
1. 创建表
指定数据库:use 数据库名称;
查看当前正在使用的数据库:select database();
语法格式:create table 表名称(字段1 字段1定义 , 字段2 字段2定义,......);
例如:创建老师表
create table teacher(
tid int,
tname varchar(20),
age tinyint unsigned,
gender enum('man','woman','other'),
shows varchar(100)
);
2. 查看数据表
语法格式:show tables[from 数据库名称];
例如:show tables from mysql;
查看表结构的语法格式:
desc 表名;
show columns from 表名;
3. 修改数据表(不建议操作)
3.1 更改表名称
方式一:alter table 表名 rename [as|to] 新的表名称;
方式二:rename table 旧的表名称 to 新的表名称[,旧的表名称2 to 新的表名称2,...]
例如:
alter table teacher rename teachers;
rename table teachers to teacher;
3.2 添加列
语法格式: alter table 表名称 add [column] 列名称 列定义[first | after 列名];
例如:
alter table teacher add birth date;
alter table teacher add birth2 date after gender;
alter table teacher add birth3 date first;
3.3 修改列定义
语法格式:alter table 表名称 modify 列名称 新的列定义 [ first | after 列表];
例如:
alter table teacher modfiy tid smallint first;
3.4 修改列名称
语法格式:alter table 表名称 change 旧的列名称 新的列名称 新的列定义 [ first | after 列表];
例如:
alter table teacher change birth birthday date after birth2;
3.5 删除列
语法格式:alter table 表名称 drop 列名
例如:
alter table teacher drop birth1, drop birth2;
4. 删除数据表
语法格式:
drop table 数据表名称;
例如:
drop table teacher;
###练习
###数据操纵语言:DML
1. 添加操作
语法格式:insert [into] 表名 [(列名1,列名2,....)] values|value (数值/表达式);
例如:
insert teacher value (2,'马云', 2,50,'我人生中的最大的错误就是创立了阿里巴巴');
insert teacher value (3,'东哥', 2,44,'我这个人脸盲,跟她在一起不是因为她漂亮,因为我根本不知道她漂不漂亮');
insert teacher value (4,'马腾哥',1,47,'只要你充够了钱,你就会变的更强');
insert teacher value (5,'丁磊',1,66,'我非常赞成大学生去卖猪肉');
2. 更改操作
语法格式:update 表名称 set 列名称=数值|表达式 ,列名称2=数值2|表达式2 ...... [where 条件]
例如:
udpate teacher set age=age-1;
update teacher set age = age +1 , gender=2;-- 同时更新多个字段的数值
update teacher set tname='丁三石' where tid=5; -- 带限制条件的更新
3. 删除操作
语法格式:delete from 表名 [where 条件];
例如:
delete from teacher where tid=5;
delete from teacher;
###数据查询语言:DQL
1. 语法格式:
select 表达式1,表达式2,.... from 表名
[
where 条件
group by 分组条件
having 条件
order by 排序列名
limit
]
2. 普通查询
语法格式:
select 表达式;//表达式可以是一个函数
select database();
select version();
select user();
select now();
select 列名列表 from 表名;
列名列表可以是* ,代表查询所有列,
每一个列名后面可以跟上 [as] 别名 ,表名后面也可以跟上[as] 别名
3. 条件查询
语法格式:where 条件表达式;
条件查询对数据进行过滤,在where后面,可以使用mysql支持的运算符和函数
MySQL支持的运算符:
= =! <> < > <= >=
and , or , not
null ,is not null
between...and , in(set)
例如:
select * from teacher where age <>44;
select * from teacher where tname in('马云','马腾哥');
4. 模糊查询
语法格式:like /not like + 通配符(%)/占位符(_)
例如:查询所有姓马的老师
select * from teacher where tname like '马%';
一、初识MySQL数据库 二、搭建MySQL数据库(重点) 三、使用MySQL数据库 四、认识MySQL数据库的数据类型 五、操作MySQL数据库的数据(重点)的更多相关文章
- {Python之线程} 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Threading模块 九 锁 十 信号量 十一 事件Event 十二 条件Condition(了解) 十三 定时器
Python之线程 线程 本节目录 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Thr ...
- MySQL集群搭建详解(三种结点分离)
本文将搭建一个最简化的MySQL Cluster系统,配置方法中的所有命令都是以root账户运行.这个MySQL Cluster包含一个管理结点.两个数据结点.两个SQL结点,这五个结点会分别安装在五 ...
- 【MySQL】如何最大程度防止人为误操作MySQL数据库?这次我懂了!!
写在前面 今天,一位哥们打电话来问我说误操作了他们公司数据库中的数据,如何恢复.他原本的想法是登录数据库update一个记录,结果忘了加where条件,于是悲剧发生了.今天,我们不讲如何恢复误操作的数 ...
- 基于MySQL的-u选项实现如何最大程度防止人为误操作MySQL数据库
在mysql命令加上选项-U后,当发出没有WHERE或LIMIT关键字的UPDATE或DELETE时,MySQL程序就会拒绝执行.那么,我们基于MySQL提供的这项设置,就可以轻松实现如何最大程度防止 ...
- Python开发【第十九篇】:Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- 转载的在DOS下操作mysql
转载原文地址:http://www.server110.com/mysql/201309/1070.html 一.连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1 ...
- Day12(补充) Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- 【Python之路】第十九篇--Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- Python操作MySQL:pymysql和SQLAlchemy
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- php操作mysql关于文件上传、存储
php+前端+mysql实现文件上传并储存 我们都知道很多网站都需要上传文件,最普遍的就是图片上传,即是用户头像等等: 关于mysql+php实现文件查询,存储大致两个方式, 1.直接把文件写入mys ...
随机推荐
- layer相关使用
父子页面传参数 转自:https://blog.csdn.net/babyxue/article/details/76854106 1.父页面打开子页面并向子页面传参数 function setCho ...
- puts,p,print的区别
共同点:都是用来屏幕输出的. 不同点: puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将先处理转义再输出 p 基本与puts相同,但不会 ...
- Java I/O流-总结(InputStream,OutputStream,Reader,Writer)
Java流总结 一. 流的分类 • 按数据流动方向 – 输入流:只能从中读取字节数据,而不能向其写出数据 – 输出流:只能向其写入字节数据,而不能从中读取数据 • 按照流所处理的数据类型 – 字节流: ...
- SQLServer数据库循环表操作每一条数据(游标的使用)
DECLARE @FunctionCode VARCHAR(20)--声明游标变量DECLARE curfuntioncode CURSOR FOR SELECT FunctionalityCode ...
- SQL Server拾遗
1.判断数据库中是否存在一个表 if exists( select * from sysobjects where id=OBJECT_ID(N'[dbo].[Users]') ) drop tabl ...
- [javaSE] 集合框架(共性方法)
Collection接口的常用方法 add(),添加一个元素 addAll(),添加一组元素 clear(),清空 remove(),移除一个 removeAll(),移除一组 size(),元素个数 ...
- C# 运算符 ++在前与++在后实例分析。
首先记住计算技巧“++在前先+1,++在后后+1”. static void Main(string[] args) { int i = 10; Console.WriteLine(i);//此时i的 ...
- Spring 配置数据源之一三兄弟
前期的准备工作,我们是使用的是maven,我们下载节点即可... 节点如下: <dependency> <groupId>org.springframework</gro ...
- Git 学习之git 分支(三)
Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的 ...
- scss-函数
在scss中除了可以定义变量,具有@extend和@mixins等特性之外,还自备了一系列的函数功能. scss本身带有大量的内置函数,具体可以参阅官网函数模块. 一.字符串函数 unquote($s ...