六天带你玩转MySQL.docx

上传人:marr****208 文档编号:132157860 上传时间:2020-05-13 格式:DOCX 页数:166 大小:4.96MB
返回 下载 相关 举报
六天带你玩转MySQL.docx_第1页
第1页 / 共166页
六天带你玩转MySQL.docx_第2页
第2页 / 共166页
六天带你玩转MySQL.docx_第3页
第3页 / 共166页
六天带你玩转MySQL.docx_第4页
第4页 / 共166页
六天带你玩转MySQL.docx_第5页
第5页 / 共166页
点击查看更多>>
资源描述

《六天带你玩转MySQL.docx》由会员分享,可在线阅读,更多相关《六天带你玩转MySQL.docx(166页珍藏版)》请在金锄头文库上搜索。

1、数据库基础1.什么是数据库?通俗说法,存储数据的仓库;正式点的说法,高效存储和处理数据的介质(主要是磁盘和内存)2.数据库的分类?根据存储数据的介质不同,将数据库分为两类:关系型数据库和非关系型数据.3.数据库主要产品?关系型数据库大型:Oracle,DB2;中型:SQL-Server, MySQL小型:Access;非关系型数据库:memcached,mongodb,redis4.两种数据库区别关系型数据库数据存储在磁盘上,数据安全,但是效率低;非关系型数据库数据存储在内存上,数据不安全,断电会丢失数据,但是效率高;此外,关系型数据库存储结构是二维表,比较浪费空间关系型数据库1.什么是关系型

2、数据库一种建立在关系模型(数学模型)上的数据库.关系模型:一种建立在关系上的模型,包括三个方面:1. 数据结构:二维表,解决数据如何存储2. 操作指令集合:所有的SQL语句,解决如何处理数据3. 完整性约束:表内数据约束(字段与字段),表与表之间约束(外键)关键字说明数据库系统:DBS(database system),一种虚拟系统,是将多种内容关联起来的一个称呼DBS =DBMS + DBDBMS:Database Management System,数据库管理系统DBA: Database Administrator,数据库管理员行/记录:本质上是一个东西,都是一条记录列/字段:本质上也是

3、一个东西SQL语句SQL(Structured Query Language),结构化查询语言,在数据库中90%以上的操作是查询操作SQL分为三部分:1. DDL: Data Definition Language,数据定义语言,用于维护存储数据的结构(数据库,表),代表指定:creat,alter,drop2. DML: Data Manipulation Language,数据操作语言,用来对数据进行操作,代表指令:insert,updata,delete,其中内部单独分了一个DQL: Data Query Language,数据查询语言,代表指令select3. DCL: Data Co

4、ntrol Language,数据控制语言,主要负责用户权限管理,代表指令有:grant,revoke;MySQL数据库MySQL数据库是一种C/S结构的软件,若想访问服务器,必须通过客户端(服务端一直运行,客户端在需要运行时打开)实现交互方式:1. 客户端连接认证服务器2. 发送SQL指令给服务器3. 服务器接收SQL指令,处理指令,返回处理结果给客户端4. 客户端接收结果,显示结果5. 断开连接:释放资源,能够同时访问服务器的客户端数量有限MySQL数据库对象没办法具体了解数据库内部具体内容,只能粗略分析数据库内部结构数据库内部分为四层:系统(DBMS)-数据库(DB)- 数据表(Tabl

5、e)-字段(field)数据库基本操操作登录退出指令登录MySQLmysql -h 主机名 -u 用户名 -p -h: 该命令用于指定客户端所要登录的MySQL主机名, 登录当前机器该参数可以省略 -u: 所要登录的用户名; -p: 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空,可以忽略此选项mysql -h loacalhost -u root -p;退出Mysql 三种指令 quit/extit或q;库操作创建数据库create database 数据库名称 数据库选项; 数据库名称自定, 数据库选项可选, 用来约束数据库数据库选项分为两个选项:1, 字符集: char

6、acter set 或 charset 字符集名称(常用gbk或utf8)2, 校对集(校对集是数据比较规则, 字符集设置好了, 就会有设置好对应的校对集): collate 校对集名称创建数据库示例:create database mydatabase character set gbk;成功创建数据库返回 Query OK, .在数据库的data文件夹下会产生一个该数据库名称的文件夹, 里面有一个opt文件, 里面有默认的字符集和校对集查看数据库1,查看所有数据库show databases;2,模糊查看: show databases like pattern; pattern里面是数据

7、库名称,里面可以用_代表任意单个字符,用%代表任意多个字符show databases like information_%; - 等价于information%;show databases like information_%; - 查看名称以information_开头的数据库,需要对_进行转义3,查看数据库的创建语句: show create database 数据库名称;show create database samp_db; - 发现显示的创建数据库语句和输入的sql指令不一样,那是因为数据库实际创建时会对sql指令做优化,创建的是优化后的数据库修改数据库数据库名称不可以被修改,

8、只有数据库选项可以修改,而选项中校对集又依赖于字符集,所以修改字符集时校对集会自动修改alter database 数据库名称 数据库选项 数据库选项值将数据库 samp_db 的字符集修改为utf8;alter database samp_db charset utf8; - 数据库名称后面直接跟要修改后的数据库选项删除数据库drop database 数据库名称;drop database informationtest; -删除名为informationtest的数据库删除数据库操作执行后:1, show databases; 操作将不再显示被删除的数据库; 2, 被删除的数据库在dat

9、a文件夹里面对应的文件夹也被删除(级联删除),数据无法找回注意:所以删除操作前要先做备份,防止误删操作表操作表与字段密不可分创建数据表Create table if not exists 表名称(字段名 数据类型,字段名 数据类型-最后一行不需要逗号分隔,如果加了逗号会报错!如下图所示)表选项;if not exists:可选项,起检查作用.如果表不存在,则执行创建代码,否则不执行表选项:用于控制表的表现字符集:charset/character set 字符集名校对集:collate 校对集名存储引擎: engine 存储引擎名称(innodb 和 myisam)注意:创建数据表之前要先选择

10、数据库,说明是在哪个表中创建数据库,否则报错,如下图所示选择数据库的方法有两种:1.显式选择,在创建数据表的时候在表名称前面带上数据库名称Creat table 数据库名.数据表名();2.隐式选择,在创建数据表之前先进入某个数据库环境,然后创建数据表,则数据该数据库进入数据库环境:use 数据库名;数据表创建后发生了什么?1.指定的数据库中存在了对应的表2.指定的数据库文件夹下会产生对应的表的结构文件(跟存储引擎有关系)查看数据表数据库能够查看的方式,表都可以查看1.查看所有表:show tables;2.查看部分表:show tables lile pattern;3.查看表创建语句:sh

11、ow create table 表名;4.查看表结构:查看表中字段信息Desc/describe/(show colums from) 表名;修改数据表修改表本身数据表本身可以修改的有表名和表选项1.修改表名:rename table 老表名to 新表名;2.修改表选项:字符集,校对集,引擎Alter table 表名 表选项 值;修改表中字段(新增,修改,重命名,删除)1.新增字段Alter table 表名 add column 字段名 数据类型 列属性位置;位置:新增字段名可以插入到任何位置First:插到第一位After 字段名:在某个字段之后,默认是在最后一个字段之后列属性:不做设置

12、会mysql会自动设置默认属性2.修改字段一般是修改字段数据类型和字段属性,当然位置也可修改Alter table 表名 modify 字段名 数据类型 属性 位置; 3.重命名字段Alter table 表名 change 旧字段名 新字段名 数据类型 属性位置;虽然通过change也可以实现修改字段,但是一般不这么做,一般就用于重命名字段,修改字段数据类型,属性,位置这些还是用modify4.删除字段Alter table 表名 drop 字段名;注意:如果字段中已经存储了数据,字段被删除后数据被删除,且无法找回,所以删除要小心.删除表格Drop table 表名1,表名2; - 支持同时

13、删除多张表,但这样做之前要考虑清除删除数据表后,数据库中这个表就不存在了,数据库文件夹中该表对应的文件也被删除数据操作新增数据有两种方案1.给全表字段添加数据,不需要指定字段列表:要求值列表中的数据的顺序必须与表中字段初选的属性一致,并且所有的非数值数据都需要用引号(建议使用单引号)括起来Insert into 表名 values(值列表)(值列表),.; - 可以一次添加多条数据2.按照指定字段列表添加数据,字段列表不需要按照表格设计中的字段顺序,但是值列表中的值必须按照字段列表的顺序Insert into 表名(字段列表) value(值列表),(值列表);查看数据1.查看所有数据Sele

14、ct * from 表名 where 条件; 2.查看指定字段数据,指定条件上的数据Select 字段列表 from 表名 where 条件;更新数据Updata 表名 set 字段 = 值1,字段2=值2 wehre 子句; 注意:不要省略where子句,否则就是更新所有行!1.更新单列数据2.更新多列数据删除数据注意:删除是不可逆的,谨慎操作!Delete from 表名 where 子句; - 如果不带where子句,那么所有行数据都被删除!如果真要删除所有行数据,应该用truncate table语句,效率更高中文数据问题本质上是字符集问题中文操作系统命令行默认按照GBK字符集将输入中

15、文转换成二进制码发送给服务器,服务器按照预先设置好的字符集来解码并保存数据,如果服务器设置的字符集无法解释发过来的二进制码则会报错,当然如果服务器那边接收来自客户端二进制码的解码字符集就是GBK,则肯定能够将客户端传来的中文二进制码转换成一样的中文存储在服务器端,同样,服务器给服务端发送数据也要将数据转换成二进制码,只有当服务器端也找GBK字符集对储存的中文数据进行编码发送给客户端,客户端才能正确显式中文数据向表格中添加中文数据虽然添加进去了,但是提示warnings,说明存在某种问题查看服务器支持的所有字符集Show character set;总共支持39中字符集,几乎涵盖了各国文字服务器支持很多字符集,但是默认情况下

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号