MySQL的基本使用

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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值