六天带你玩转MySQL_第1页
六天带你玩转MySQL_第2页
六天带你玩转MySQL_第3页
六天带你玩转MySQL_第4页
六天带你玩转MySQL_第5页
已阅读5页,还剩164页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Author:Jun武汉理工大学数据库基础知识1 .什么是数据库?一般来说,存储数据的仓库正式点是有效存储和处理数据的媒体(主要是磁盘和内存)2 .数据库的分类根据存储数据的媒体,将数据库分为两种:关系型数据库和非关系型数据3 .数据库的主要产品是什么?关系数据库大规模:Oracle、DB2中型:SQL-Server,MySQL小型:Access非关系型数据库:memcached,mongodb,redis4 .两种数据库的差异关系数据库中的数据存储在磁盘上,数据安全,但效率低的非关系型数据库中的数据存储在内存中,数据不安全,关闭电源时数据会丢失,但效率很高,关系数据库的存储结构是二维表关系数

2、据库1 .什么是关系数据库建立在关系模型(数学模型)中的数据库关系模型:是关系建立的模型,包括三个方面:1 .解决数据结构:二维表中数据是如何存储的2 .操作命令集合:中的所有SQL语句,并解决处理数据的方法3 .完整性约束条件:表中的数据约束条件(字段和字段),表和表之间的约束条件(外键)关键字的说明数据库系统: DBS (数据库系统)是将多个内容关联起来的虚拟系统。”DBS=DBMS DBDBMS : databasemanagementsystem,数据库管理系统DBA :数据库管理员,数据库管理员行/记录:本质上是一个,所有都是一个记录列/字段:本质上也是一个SQL语句结构查询语言(S

3、QL )是一种结构化的查询语言,数据库中90%以上的操作是查询操作SQL分为三个部分:1 .指定:creat、alter和drop,以保持DDL :数据定义语言、数据定义语言和存储数据的结构(数据库、表)2 .用于DML :数据操作语言、数据操作,表示命令:插入、updata、delete,其中dql :数据查询语言、数据查询语言、3.DCL :数据控制语言,数据控制语言,主要负责用户权限管理,代表命令为:grant,revokeMySQL数据库MySQL数据库是一个C/S结构的软件,必须通过客户端运行才能访问服务器(服务端始终运行,客户端在需要运行时打开)实现交互方式:1 .客户端连接认证服

4、务器2 .向服务器发送SQL命令3 .服务器接收SQL命令,处理该命令,并向客户端返回处理结果4 .客户端接收结果并显示结果断开:的连接以释放资源,同时可以访问服务器的客户端数量有限MySQL数据库对象无法具体理解数据库内部的具体内容,只能粗略地分析数据库内部的结构数据库内部有四层:系统(DBMS)-数据库(DB)-表-字段数据库的基本操作注册注销命令。登录到MySQLmysql -h主机名-u用户名-p-h:此命令指定客户端登录到的MySQL的主机名。 要登录到当前计算机,请省略此参数-u:登录的用户名-p:告诉服务器使用密码登录。 如果要登录的用户名密码为空,请忽略此选项MySQL-h本地

5、主机- u root-p;退出Mysql三个命令quit/extit或q程序库操作创建数据库create数据库名称数据库选项;数据库名称的自定义、数据库选项和约束数据库的选项数据库选项有两个选项:1,字符集:字符集或字符集名称(通用gbk或utf8 )2、校准集(校准集为数据比较规则,如果设定了字符集,则设定了对应的校准集) : collate校准集名称数据库创建示例:createdatabasemydatabasecharactersetgbk;数据库成功创建,并返回了Query OK .在数据库的data文件夹下,将创建一个数据库名称文件夹。 此文件夹包含一个包含默认字符集和校对集的opt

6、文件查看数据库1 .显示所有数据库显示数据库;2、模糊视图: show databases like pattern; pattern中包含数据库名,其中任意一个字符可以用_表示,任意多个字符可以用%表示show databases like信息_ %; 信息%;showdatabaseslikeinformation_ %; 必须显示名称以information_开头的数据库,并转义_。3 .数据库的创建成文显示: show create数据库名称show create数据库samp _ db; -发现显示的数据库语句与输入的sql指令不同。 这是因为在实际创建数据库时,sql指令被优化,并

7、创建了优化的数据库数据库的变更无法更改数据库名称。 因为只能更改数据库选项,可选的校对集依赖于字符集,所以更改字符集时校对集会自动更改alter database数据库名称数据库选项数据库选项值将数据库samp_db的字符集更改为utf8alterdatabasesamp _ dbscharsetutf 8; -数据库名后跟要更改的数据库选项删除数据库。drop database数据库名称drop数据库信息测试; 删除名为informationtest的数据库执行数据库操作后:1,show databases删除的数据库消失2,删除的数据库在data文件夹中对应的文件夹也被删除(级联删除),无

8、法恢复数据注意:删除前请先进行备份,以免错误删除桌子操作表和字段是不可分割的创建数据表创建表 if not exists 表名(字段名数据类型。字段名数据类型-最后一行不需要用逗号分隔。 追加逗号的话会发生错误。如下图所示) 表格选项;if not exists:是可选的,具有检查功能。 如果表不存在,则执行创建代码,如果表不存在,则不执行表选项:用于控制表的表示字符集:charset/character set字符集名称校对集:collate校对集名存储引擎: engine存储引擎名称(innodb和myisam )注意请在创建:数据表之前选择数据库。 请说明一下创建数据库的表格. 如果没有

9、创建,则会发生错误,如下图所示选择数据库的方法有两种:1 .明确选择,在创建数据表时在表名前加上数据库名creatabletable数据库名称.数据表名称();2 .隐式选择,在创建数据表前进入数据库环境,然后创建数据表,该数据库就会被数据化进入数据库环境:use数据库名称数据表做好后,发生了什么?1 .与指定的数据库对应的表存在2 .在指定的数据库文件夹下生成对应表的结构文件(与存储引擎相关)查看数据表数据库可以显示的方法是表可以显示的方法1 .显示所有表: show表2 .部分表: showtableslilepattern;3 .显示表创建成文: show create表名4 .表结构:

10、的显示表的字段信息的显示desc/describe/(显示列从)表名称修改数据表修改表本身有数据表本身可以更改的表名称和表选项。1 .表名:rename table的旧表名to修改新表名2 .修改显示选项:字符集、校准集和引擎alter表名表选项值修改表格中的字段(添加、更改、重新命名、删除)1 .添加字段alter表名add 列字段名数据类型列属性位置;位置:新字段名可以插入到任何位置First:被插入第一名After字段名称:默认设置在字段之后、最后一个字段之后如果不设置列属性:mysql将自动设置缺省属性2 .修改字段一般会变更字段的数据类型和字段属性,当然也可以变更位置Alter ta

11、ble表名modify字段名数据类型特性 位置;3 .更改字段的名称Alter table表名称change旧字段名新字段名数据类型特性位置;可以通过change更改字段,但通常不做,而是用于更改字段的名称要更改字段的数据类型、属性、位置等,请使用modify4 .删除字段alter表名称drop字段名称另外,在:个字段中已经存储了数据情况下,删除了字段的数据,不能复原,所以删除时需要注意.删除表格Drop table表名1,表名2 -支持同时删除多个表,但在删除之前请考虑清除删除数据表时,数据库中不存在该表,与数据库文件夹中的表相对应的文件也将被删除数据操作添加数据有两个方案1 .要向所有表

12、字段中添加数据,不需要指定字段列表: 值列表中的数据顺序必须与表中字段的第一个选定属性相匹配,除数字之外的所有数据都必须用引号括起来(Oracle建议使用单引号)Insert into表名values (值列表) (值列表),; -一次可以添加多个数据2 .根据指定的字段列表添加数据。 字段列表不需要是表设计中的字段的顺序,但值列表中的值必须是字段列表的顺序Insert into表名(字段列表) values (值列表) ,(值列表);显示数据1 .显示所有数据Select * from表名where条件;2 .显示指定字段的数据,指定条件的数据选择字段列表从表名where条件;更新数据。Up

13、data表名set字段=值1,字段2=值2 wehre子句;注意:请不要省略where子句。 如果不省略,则更新所有行1 .单列数据的更新2 .更新多列数据删除数据。注意:删除是不可逆的,请小心操作Delete from表名where子句; 如果没有where子句,则删除所有行数据如果真的要删除所有行数据,使用truncate table语句更有效中文数据问题本质上是字符集的问题中文操作系统的命令行将根据GBK字符集输入的中文转换为二进制码并发送到服务器,服务器根据预先设置的字符集对数据进行解码和保存,并且解释服务器设置的字符集发送的二进制码当然,服务器一接收到来自客户端的二进制码的解码字符集

14、就变成GBK。从客户端发送来的中文二进制码一定可以转换成相同的中文存储在服务器端。 同样地,如果服务器即使向服务器侧发送数据也将数据转换成二进制码,并且服务器侧也搜索GBK字符集并把存储的中文数据编码并发送给客户端侧,则客户端无法正确地显示中文数据在表格中添加中文数据虽然添加了,但我会指示warnings,说明有什么问题。显示服务器支持的所有字符集Show character set;总共支持39个字符集,几乎复盖了各国的字符服务器支持许多字符集,但默认情况下,特定字符集总是与客户端进行通信showvariableslikecharacter _ set %;首先在表中存储中文数据,服务器端默

15、认用GBK代码发送到服务器端,服务器端默认用utf8解码,所以说存储不正常,全部发出警告.将服务器端接收客户端的二进制数据解密字符集更改为GBKSet character_set_client=gbk;以前保存的中文删除,再次保存相同的中文数据删除自my _ student where id=3;Insert into my_student (3,“张越”、“男”);显示保存的数据Select * from my_student;中文“张越”和“男人”表示乱码,与服务器发送给客户端的二进制代码有关。 我看到了服务器将保存的数据用utf-8字符集编码为二进制码并返回客户端。 客户端用GBK解码,发现了几个未知字符,而不是原来保存的数据。解决方案:将服务器端的结果字符集更改为gbkSet character_set_results=gbk;再确认一次表内的中文数据有没有乱码Select * from my_student;因此,客户端和服务器端的字符集必须匹配。 上面是character_set_client和character_set_results的字符集,快捷方式是set names字符集名称,client-connection-results

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论