MySQL
一.数据库简介
存储数据的仓库。
在我们的日常生活中,如超市会员信息,银行卡,学生信息。
1.了解数据库中的几个关键词
**(a)数据:**所谓的数据就是我们要记录的信息,包括了文字,时间,数字,图像等
等的一些内容。
(b)数据库 Database 简称 DB:指长期存储在计算机内的有组织的可共享的数据集
合。
©数据库管理系统 Database Management System 简称 DBMS:是数据库系统的核
心软件之一。
(d)数据库应用程序 Database Application:界面化工具,负责与 DBMS 进行通信,
访问和管理 DBMS 中存储的数据,允许用户插入,修改,删除数据库中的数据:
我们常说的数据库,实质上是数据库管理系统,目前,较为流行的数据库管理系统
有 mysql,sqlserver,oracle 和 DB2 等。
二.数据库的分类
1.关系型数据库
关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中数据,用自己的话来说就是由多张互相连接的表组成的数据库;
1.优点
(a)表结构,格式一致,易于维护
(b)使用通用的SQL语言操作,使用方便,可用于复杂查询
(c)数据存储在磁盘上,安全
2.缺点
(a)读写性能较差,不能满足于海量数据高效率读写
(b)不节省空间,因为建立在关系模型,就要遵循某些规则,某些字段不用也要分配空间;
(c)表结构固定,不灵活;
常见的关系型数据库有:mysql,sql server,oralcle,DB2,Microsoft Access
2.非关系型数据库
又称为NoSQL(Not Only SQL),不仅仅是SQL,通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
1.优点
(a)存储数据的格式可以是key-value形式,文档形式,图片形式等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型
(b)速度快,效率高,可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘
©大数据量的维护和处理非常轻松
(d)具有扩展简单,高并发,高稳定性,成本低的优势
(e)可以实现数据的分布式处理
2.缺点
(a)暂时不提供SQL支持,学习和使用成本较高
(b)没有事务处理,没有保证数据的完整性和安全性,适合处理大量数据,但是不一定安全
©功能没有关系型数据库完整
常见的非关系型数据库有:
Neo4j,MongoDB,Redis,Memcached,memcacheDB和HBase等
三.MySQL简介
MySQL是一个关系型数据库管理系统,有瑞典MySQLAbB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的应用软件之一,是一个免费开开源的关系型数据库管理系统,但也不意味着该数据库是完全免费,MySQL适合中小型软件,被个人用户以及中小企业所青睐。
1.特点
(a)是开源的,隶属于Oracle旗下
(b)支持大型数据库,可以处理拥有上千万条记录的大型数据库
©使用标准的SQL语言形式
(d)可以运行于多个操作系统上,并且支持多种语言,编程语言C,C++,Python,Java等
(e)支持多线程,充分利用CPU资源
(f)是可以定制的,采用了GPL协议,你可以修改源码来开发自己的MySQL系统。
四.MySQL基本操作
什么是SQL?
SQL(Structured Query Language)结构化查询语言
是一种数据库查询和程序设计语言,用于存取数据以及查询,更新和管理关系数据库系统;
一.SQL包含四部分:
(1)数据定义语言(Date Definition Language,DDL)
用来创建或删除数据库以及表等对象,主要包含以下几种命令:
drop:删除数据库或表等对象
create:创建数据库或表等对象
alter:修改数据库或表等对象的结构
(2)数据操作语言(Data Manipulation Language,DML)
用来变更表中的记录,主要包含以下几种命令
insert:向表中插入新数据
update:更新表中的数据
delete:删除表中的数据
(3)数据查询语言(Data Query Language,DQL)
用来查询表中的记录,只要包含 select 命令,来查询表中的数据
(4)数据控制语言(Data Control Language,DCL)
用来确认或者取消对数据库中数据进行的变更,除此之外还可以对数据库中的用户的用户设定权限,主要包含以下几种命令:
grant:赋予用户操作权限
revoke:取消用户的操作权限
commit:确认对数据库中的数据进行的更改
rollback:取消对数据库中的数据进行的变更
注意:SQL语句不区分大小写,语句结尾要以分号结尾
二.用户操作
1.查看用户及作用域
select user,host from mysql.user;
2.查看用户权限
show grants for ‘root’@‘localhost’;
3.创建用户
create user ‘用户名’@‘作用域’ identified by ‘密码’;
flush privileges; – 属性权限表
4.给用户授权
grant 权限 on 数据库名.表名 to ‘用户名’@‘作用域’;
权限为 all privileges 或 all 是所有权限
单个权限select update insert delete 等,单个权限之间用逗号隔开
5.修改用户密码
alter user ‘用户名’@‘localhost’ identified by ‘新密码’;
6.撤销用户权限
revoke 权限 on 数据库名.表名 from ‘用户名’@‘作用域’;
7.删除用户
drop user ‘用户名’@‘作用域’;
三.数据库操作
1.查询所有数据库
show databases;
2.创建数据库
第一种:create database 数据库名;
第二种:create database if not exists 数据库名 default character set 字符集;
3.修改数据库
alert database 数据库名 default character set 字符集;
4.查询数据库信息
show create database test02;
5.删除数据库
drop database 数据库名;
6.选择跳转数据库
use 数据库名;
7.查看当前使用的是哪个数据库
select database();
四.MySQL数据类型
大致可分为:数值类型(整数,浮点数),日期时间,字符串,二进制等类型;
1.整数类型
int 整数 4字节 -2147483648-2147483647 21亿
2.小数类型
float 单精度浮点型 4字节
double 双精度浮点型 8字节
3.日期时间类型
date YYYY-MM-DD
datetime YYYY-MM-DD HH:MM:SS
4.字符串类型
char(num) 定长字符串
varchar(num) 变长字符串
五.MySQL中的注释
解释说明的 记笔记用的
1.#单行注释 只能注释掉#以后的当前行
2.–空格 也可以单行注释
3./* */ 多行注释 需要讲注释内容写在斜杠星和星斜杠内 换多少行都可以
六.MySQL对表的操作
1.创建表
create table 表名(字段名 类型,字段名,类型…字段名 类型);
#判断是否存在,如果存在就删除
drop table if exists day01;
#创建表
create table day01(
id int,
name varchar(22),
age int,
phone varchar(15)
);
#查看表中所有字段
select * from day01;
#查看所有表
show tables;
2.修改表名
alter table 表名 rename to 新表名;
#修改表名
alter table day01 rename to test01;
3.查看表的字符集(编码方式)
show table status from 数据库名 like '表名';
#查看表的字符集
show table status from sjkkf02 like 'test01';
4.修改表的字符集
alter table 表名 character set 字符集;
#修改表的字符集
alter table test01 character set gbk;
5.查看表结构
desc 表名;
#查看表结构
desc test01;
6.修改字段名及类型
alter table 表名 change 旧字段名 新字段名 新数据类型;
#修改字段名及类型
alter table test01 change name names varchar(20);
7.修改字段名
alter table 表名 rename column 旧列名 to 新列名;
#修改id字段名
alter table test01 rename column id to ids;
8.修改字段类型
alter table 表名 modify 字段名 字段类型;
#修改字段类型
alter table test01 modify names varchar(30);
9.删除字段
alter table 表名 drop 字段名;
#删除age字段
alter table test01 drop age;
10.添加字段
alter table 表名 add column(列名 数据类型);
#添加age字段
alter table test01 add column(age int);
11.删除表
drop table 表名;
#删除表
drop table test01;
select * from test01;
desc test01;
七.MySQL对数据的操作
#创建表
create table test01(
id int,
name varchar(20),
age int,
phone varchar(15),
address varchar(50)
);
#查看表中所有数据
select * from test01;
1.插入数据
全字段插入
insert into 表名 values(对应的字段值.....对应的字段值);
#插入数据
insert into test01 values(1,'小小',20,'110','甘肃兰州');
选定字段插入
insert into test01(id,name,phone) values(2,'菜菜','120');
2.修改数据
update 表名 set 字段=值,字段=值.....字段=值 where 条件;
#修改数据
update test01 set age=20,address='甘肃兰州' where id=1;
select id,name,age from test01 where id = 2;
insert into test01 values(3,'嘟嘟',30,'120','甘肃武威');
update test01 set age=15,phone='119' where id=1 or id=3;
update test01 set age=20,phone='110' where id=1 and id=3; X
3.删除数据
delete from 表名 where 条件;
#删除数据
delete from test01 where id = 2;
select * from test01;
4.查询数据
查询表中所有数据
select * from 表名;
查询表中指定字段
select 字段名,字段名... from 表名;
根据条件查询所有数据
select * from 表名 where 条件;
5.where语句
where后跟条件
单条件查询 直接where后跟一个条件
select * from test01 where id = 2;