MySQL的基本使用
1.数据库:数据库就是一种特殊的文件,其中存储着需要的数据
2.数据库分为关系型数据库和非关系型数据库
关系型数据库:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
非关系型数据库:
NoSql、Cloudant、MongoDb、redis、HBase
补充:
oracle:在以前的大型项目中使用,银行,电信等项目
mysql:web时代使用最广泛的关系型数据库
ms sql server:在微软的项目中使用
sqlite:轻量级数据库,主要应用在移动平台
关系型数据库的特点:
1)关系型数据库,是指采用了关系模型来组织数据的数据库
2)关系型数据库的最大特点就是事务的一致性
关系型数据库的优点
1)容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说 更容易理解
2)使用方便:通用的SQL语言使得操作关系型数据库非常方便;
3)易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;
4)支持SQL,可用于复杂的查询。
关系型数据库的缺点
1)为了维护一致性所付出的巨大代价就是其读写性能比较差;
2)固定的表结构;
3)高并发读写需求(高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。);
4)海量数据的高效率读写;
非关系型数据库
非关系型数据库的特性
1、使用键值对存储数据;
2、分布式;
3、一般不支持ACID特性;
4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
非关系型数据库的优点
1)无需经过sql层的解析,读写性能很高;
2)基于键值对,数据没有耦合性,容易扩展;
3)存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。
非关系型数据库的缺点
1)不提供sql支持,学习和使用成本较高;
2)无事务处理,附加功能bi和报表等支持也不好;
ACID:
数据库事务必须具备ACID特性,ACID分别是 Atomic原子性,Consistency一致性,
Isolation隔离性,Durability持久性。
3.SQL:SQL是结构化查询语言,是一种用来操作RDBMS的数据库语言,当前关系型数据库都支持使用SQL语言进行操作。
主要的SQL语句:
DQL:数据查询语言,用于对数据进行查询,如select
DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete
DDL:数据定义语言,进行数据库、表的管理等,如create、drop
4.MySQL:关系型数据库
5.shell-mysql:
(1)命令行的连接:打开终端 运行命令 (mysql -uroot -ppython)注:root为用户 python 是用户
(2)退出登录: exit/ ctrl + d/quit
(3)登录成功后,输入如下命令查看效果
查看版本:select version();
显示当前时间:select now();
6.数据库的操作
(1)查看数据库:show databases;
(2) 使用数据库: use 数据库的名字;
(3) 查看当前使用的数据库: select database();
(4)创建数据库: create database 数据库名 charset=utf8;
例:create database python charset=utf8;
(5)删除数据库:drop database 数据库的名字
例:drop database python;
7.数据表的操作
(1)查看当前数据库中所有表:show tables;
(2)查看表结构: desc 表名;
(3) 创建表:
(auto_increment表示自动增长)
CREATE TABLE table_name(
column1 datatype contrai,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY(one or more columns));
例:
创建班级表
create table classes(
id int unsigned auto_increment primary key not null,
name varchar(10));
创建学生表
create table students(
id int unsigned auto_increment primary key not null,
name verchar(20) default " ",
age tinyint unsigned defult 0,
height decimal(5,2),
gender enum("男",“女”,“人妖”,‘保密’),
cls_id int unsigned default 0
)
(4)修改表-添加字段
alter table 表名 add 列名 类型;
例:alter table students add birthday datetime;
(5) 修改表-修改字段:重命名版
alter table 表名 change 原名 新名 类型以及约束;
例:alter table students change birthday birth datetime not null;
(6)修改表-修改字段:不重命名版
alter table 表名 modify 列名 类型及约束;
例:alter table students modify birth date not null;
(7)修改表-删除字段
alter table 表名 drop 列名;
例:alter table students drop birthday;
(8)删除表
drop table 表名;
例:drop table students;
(9)查看表的创建语句
show create table 表名;
例:show create table classes;
8.数据的增删改查(curd)
curd的解释: 代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)
(1)查询基本使用
查询所有列
select * from 表名;
例:select * from classes;
查询指定列(可以使用as为列或表指定别名)
select 列1,列2,... from 表名;
例:select id,name from classes;
(2)增加
全列插入:值的顺序与表中字段的顺序对应
insert into 表名 values(...)
例:insert into students values(0,’郭靖‘,1,'蒙古','2016-1-2');
部分列插入:值的顺序与给出的列顺序对应
insert into 表名(列1,...) values(值1,...)
例:insert into students(name,hometown,birthday) values('黄蓉','桃花岛','2016-3-2');
全列多行插入:值的顺序与给出的列顺序对应
insert into 表名 values(...),(...)...;
例:insert into classes values(0,'python1'),(0,'python2');
insert into 表名(列1,...) values(值1,...),(值1,...)...;
例:insert into students(name) values('杨康'),('杨过'),('小龙女');
(3)修改
update 表名 set 列1=值1,列2=值2... where 条件
例:update students set gender=0,hometown='北京' where id=5;
(4)删除
delete from 表名 where 条件
例:delete from students where id=5;
逻辑删除,本质就是修改操作
update students set isdelete=1 where id=1;
(5)数据备份 、恢复
备份
运行mysqldump命令
mysqldump –uroot –p 数据库名 > python.sql;
按提示输入mysql的密码
恢复
mysql -uroot -p 数据库名 < python.sql