前言
Mysql目前是互联网行业中比较热门的一款数据库,无论是中小型企业,还是大型的如BAT企业,都会有用到mysql,大厂阿里巴巴还有自己改造后的mysql,说明这款数据库是多么受欢迎。作为一名开发者或者要走开发路线的同学们,是很有必要了解mysql的相关知识和基本应用。我们一起来学习和回顾mysql的基本知识。
正文
数据库词汇
数据:data,凡是能携带信息的媒介都是数据硬盘数据:保存在磁盘中,以二进制形式保存内存数据:运行在内存中数据库:Database,高效存储和处理数据的媒介(凡是存放数据的地方都可以称之为数据库),数据库分为两大阵营:关系型数据库,非关系型数据库。
关系型数据库
定义:建立在关系模型上的数据库。关系模型:通过各种关系来体现数据与数据之间的联系的模型。关系型数据库分类:大型(ORACLE,DB2),中型(mysql,SqlServer),小型(access)
通俗的来说,关系型数据库就是一张二维表(具有行和列,还有表头),用来管理表内的数据关系和表与表之间的关系。
非关系型数据库
定义:相对于关系型数据库,所有不是关系型数据库的数据库都是非关系型数据库,其保存数据的方式是以键值对方式保存。主要特点:
数据的计算和运行是在内存中进行
使用键值对来保存和表示数据
运行之后,会进行数据同步(将内存的数据写入到磁盘)
关系型数据库和非关系型数据对比
保存数据的介质不同(关系型在磁盘,非关系型在内存)
非关系型数据库效率比关系型数据库高得多
关系型数据库比非关系型数据库安全
SQL
即Structured Query Language,结构化查询语言;一种关系型数据库操作语言,也是一种编程语言;SQL包含三个部分:DDL:Data Definition Language,数据定义语言,库和表的维护create,drop,alterDML:Data manipulation Language,数据操作语言(DQL:Data Query Language),数据的查询,selectDCL:Data Control Language,数据控制语言,用于数据库的权限管理,grant,revoke
我们平时用到的基本操作就是CURD:
create(创建:增)
read/retrieve(读取:查)
update(更新:改)
delete(删除:删)
mysql数据库基本操作
数据库基本操作包含三个部分:库操作,表操作(字段操作),数据操作
库操作
SQL语句是以行为执行单位,每行结束都应该有结束符号分号(有特例:建议每行语句都有分号)新增数据库:create database 数据库名字 [库选项];库选项:字符集设置(charset):表示以后在当前数据库存储的数据,默认采用utf-8的字符集存储校对集设置(collate):用于如何比较大小
数据库命名规范
使用字母,下划线和数字构成
不能是关键字,如果是关键字,需要使用反引号将名字包裹
可以使用中文作为数据库名字,但是也需要使用反引号(强烈建议:不用使用中文)
查看数据库
查看数据库基本信息:show databases;||模糊查询:show databases like ‘pattern’
查看所有数据库(前提是有权限看)
模糊匹配:%匹配任何内容,_表示匹配一个字符
查看数据库创建语句:show create database 数据库名字
修改数据库:数据库名称不可修改,只能修改数据库的库选项
语法:alter database 数据库名字[库选项]
删除数据库:
drop Database数据库名字;
表操作
表不能脱离字段存在,字段也不能脱离表,所谓的表操作就是表和字段同时操作。
新增表:create table 表名(字段1 字段类型,字段2 字段类型)[表选项]
字段必须要有字段类型:字段 字段类型
字段与字段之间使用逗号分隔
最后一个字段不需要使用逗号
[表选项]字符集:当前表的数据采用什么字符集保存,字符集以表的字符集为标准存储引擎:当前表的数据采用哪种存储引擎来存储,常用的有myisam和innodb(默认)
查看表:
查看表基本信息:show tables || show tables like ‘pattern’;
2.查看表的创建语句:show create table表名;
3.查看表结构:desc|describe 表名/show columns from 表名
修改表可以修改表的名字,表的字段的增删改查,字段的属性的修改,字段的位置的修改
语法:alter table 表名[add/modify/drop][column]字段名字[字段类型][字段位置]
增加字段
alter table 表名 add column 字段名字字段类型[位置]
字段默认在表最后增加
位置:first表示在最前面,after表示在某个字段之后(默认其实是after在最后一个字段之后)
修改字段修改字段位置,修改字段的类型,修改字段的名字修改字段类型+字段位置
修改字段名字
alter table 表名 change 旧字段new字段字段类型字段位置
注意:不管是修改字段的那部分都应该跟上字段类型。
删除字段
alter table 表名 drop 字段名字
表改名
语法:rename table 旧表名 to 新表名
删除表
drop table 表名
删除表还会对表文件进行删除
注意:
1.创建过程中会不知道当前表名是否存在:if not exists表示只有表名不存在的时候才去创建,否则放弃执行;
2.删除表的过程中,不知道表是否已经存在:if exists
3.数据库和数据表都不能随意的删除,删除具有不可逆性。如果确定要删除数据库或者数据表,那么必须要事先备份。
数据操作
新增数据:insert into表名(字段列表) values(值列表)
字段列表可以没有,意味着值列表里的字段数必须与表中的字段数完全一致
插入数据必须注意
插入的值类型必须与数据字段定义的数据类型一致,除了整型可以不加引号之外,其他的都要加上引号
整型也可以加上引号 在严格模式下,只能将数值字符串转化成数值 在严格模式下,自增不能使用空字符串来代替
允许一次性插入多条记录,在values字段后面使用逗号分隔即可
查看数据
select字段列表from表名[where条件]
修改(更新)数据
update 表名set字段=值[where条件]
删除数据
deletefrom表名[where条件]
注意:一定要小心删除数据,切记需要使用where条件,在删除之前需要对数据进行备份
行(row)和记录(record):行和记录表示的意思是完全一样的,行是站在表结构的角度上定义,而记录是站在数据的角度上去定义列(column)和字段(Field):与行和记录的区别是一样的。
总结
以上是对mysql的一些基本介绍,相信看完后,你也会对mysql的使用,对数据的增删改查有了基本的了解。
推荐阅读
PHP+MySQL实现海量数据导入导出的一些总结
多进程PHP脚本实现海量数据转移总结
MySQL常用语句命令总结