首页 > 代码库 > mysql-day1

mysql-day1

今天开始正式学习数据库的内容,目前学的内容没有什么逻辑方面的难题,都是些入门级的命令语句以及一点点概念。具体的内容如下。

         首先,是数据库的概念

         数据库系统 = 数据库管理系统 + 数据库 + 数据库管理员

         DBS       DBMS           DB       DBA

         而数据库最重要是要如何更好地去调用里面的数据。

 

         概念二就是关系型数据库的解释,大概可以理解为二维表,也就是一个数据对应两项属性。而不同表格之间也存在着一些联系。

         而非关系性数据库使用键值对保存和表示数据库,特点是保存数据的介质为内存,所以运行效率高,但是安全性低。

 

         接下来就是SQL的基本语言

         SQL语言也有分类

                   DDL(Data Definition Language)数据定义语言

                   关键字有create、drop、alter。主要用于对库、表的操作,并不会对数据操作。

                  

                   DML(Data Manipulation Language)数据操作语言

                   关键字有select。用于对数据的操作

 

                   DCL(Data Control Language)数据控制语言

                   用于数据库权限管理,数据备份与恢复

 

         数据库层的命令:

                   create database 数据库名                                数据库名[数据库选项]

                   show databases                                                查看所有数据库

                   create database 数据库名                                 查看指定数据库的创建信息(能查看到数据库的编码集)

                   drop database 数据库名                                      删除指定数据库,包括包含的表格及数据

                   alter database 数据库名 default charset 编码集        修改指定库的编码集

                   (数据库名修改方式较为麻烦,需要先备份库的内容,在新建一个库[重命名发生在这一步]导入备份内容,然后删除旧库)

                  

         数据表层的命令:

                   create table 库名.表名(字段名 数据类型,...)              在指定库中创建指定名的表,并给表添加指定数据类型的字段

                            top:此句可以在进入指定库后省略库名——进入指定库的命令为:use 库名

                   show table                                                     查看当前库的所有表

                   show table 表名                                                    查看当前库指定表

                   show create table 表名                                      查看当前库指定表的创建信息

                   show table like ‘_字符串%‘                                 查看当前库中按照规则:一个任意字符+字符串+任意多个任意字符。查找表名符合该规则的表

                            top:该句中like关键字中:|  _表示任意一个字符  |  %表示任意多个任意字符  |

                   describe(可以用desc) 表名                              查看表的结构信息,包含field(字段),type(字段类型),null(是否允许为空),key(是否存在索引),default(默认值),extra(额外信息)

                   drop table 表名                                                     删除当前库的指定表(删除不存在的表格会报错)

                            top:该句有格式——drop table if exists 表名,删除指定表前先确认表的存在。

                                 同理,该格式同样是用于其他层的创建删除等语句命令。

                   alter table 表名 rename to 新表名                        把当前库中指定表的表名修改为指定表名

                            top:同样功能的语句有——rename table 表名 to 新表名

                                 该句有另一个用法——rename table 表名 to 库名.表名,把当前库的指定表移动至指定库中

         列层的命令:

                   alter table 表名 add 新列明 字段类型                         在当前库的指定表中添加指定类型的列(字段)

                   alter table 表名 drop 字段名                                   在当前库的指定表中删除指定字段

                   alter table 表名 modify 字段名 新的数据类型                   在当前库的指定表中修改指定字段为指定类型

                   alter table 表名 modify 字段名 数据类型 first                  在当前库的指定表中把指定字段放置于字段列的最前边

                   alter table 表名 modify 字段名1 数据类型 after 字段名2   在当前库的指定表中把字段1放置于字段2之后

                   alter table 表名 change 字段名 新字段名 [新字段类型]      在当前库的指定表中把指定字段的名修改为指定名以及类型,类型可不改

                   alter table 表名 default charset 编码集                        修改当前库的指定表中的编码集

                   alter table 表名 default engine  引擎名                         修改当前库的指定表中的存储引擎

         数据层的命令:

                   insert into 表名(字段列表,...) values(值列表,...) 在当前库的指定表中指定字段中添加多个值(为全部字段添加值时,可以省略字段列表)

                   select *|字段列表 from 表名[查询条件]|                     在当前库的指定表中按照指定条件查询指定字段的值

                            e.g.  select * from 表名——查询所有字段的值

                            e.g.  select 字段,... from 表名——查询指定字段的值

                            e.g.  select * from 表名 where 条件判断语句

                   delete from 表名[删除条件]                             在当前库的指定表中(按照规则删除)数据

                   update 表名 set 字段1=值1,...[修改条件]                           在当前库的指定表中(按照判断条件来)修改指定指定字段的值

                            e.g. update 表名 set 字段1=值1 where 条件语句 

         字符集层命令:

                   show charset                                                 显示当前数据库所支持的所有字符集

                   show names 编码集                                            设置服务器用来解析客户端                  

 

                           

        

 

         还有一个比较重要的内容,编码集问题。MYSQL数据库的服务器默认编码是utf-8,客户端默认编码是gbk

         所以当客户端编码与服务器不一致时,要在库创建后立刻输入语句:set names gbk(告诉服务器客户端发来的命令均用gbk编码解析)

 

         还有就是校对规则,可以理解为字符、字段的排序。(一个字符集对应多个校对规则,也就是说校对规则每个字符集的都不一样)

                   首先是查看当前数据库所支持的校对规则:show collation

                            如果要查看某个字符集的校对规则,则:show collation like ‘条件‘

                   校对规则需要在建库时设置

                            create database 库名 default charset utf8 collate utf8_bin;(还是要注意定义了字符集后,所用的校对规则必须为该字符集所有的)

                            常见校对规则名分类有:

                                               1.ci结尾:不区分大小写

                                               2.cs结尾:区分大小写

                                               3.bin:通过二进制编码进行比较

 

         数据类型:

                   (基本按照存储容量决定用哪个)

                   定义类型时,在类型名后加 unsigned 为定义其格式为无符号,默认值为有符号

                                在类型名后加 zerofill 为用0填充字段

               技术分享

                   技术分享

                  

                   定点数存储:decimal

                            整数小数分开存储,每9位用四个字节存储,其余根据优化存储

 

                   日期:

                     技术分享

mysql-day1