天天看点

MySQL深入01-SQL语言-数据字典-服务器变量-数据操作DML-视图

SQL语言的组成部分

常见分类:

1

2

3

<code>DDL:数据定义语言</code>

<code>DCL:数据控制语言,如授权</code>

<code>DML:数据操作语言</code>

其它分类:

4

5

6

<code>完整性定义语言:</code>

<code>    </code><code>DDL的一部分功能约束</code>

<code>    </code><code>约束:包括主键,外键,唯一键,条件,非空,事务等各类约束</code>

<code>视图定义:即虚表,就是存储下来的SELECT语句</code>

<code>事务控制</code>

<code>嵌入式SQL和动态SQL</code>

数据字典:系统编目(system catalog)

作用:保存数据库服务器上的元数据

保存元数据的数据库有:

<code>information_schema</code>

<code>mysql</code>

<code>performance_schema</code>

元数据包括:

7

8

9

10

11

<code>关系名称</code>

<code>关系的各字段名称</code>

<code>各字段的数据类型和长度</code>

<code>约束</code>

<code>关系上的视图名称及视图的定义</code>

<code>授权用户名称</code>

<code>用户的授权和帐户信息</code>

<code>统计类的数据</code>

<code>关系字段的个数</code>

<code>关系中的行数</code>

<code>关系的存储方法</code>

SQL语言的数据类型及属性修饰符

字符型1:char,varchar,text等

<code># 对应可用属性修饰符:</code>

<code>NOT NULL:非空约束</code>

<code>NULL:允许为空</code>

<code>DEFAULT ‘string’:默认值,不适用于text类型</code>

<code>CHARACTER SET ‘字符集’:设定字符集</code>

<code>    </code><code>查看当前MySQL字符集:show variables like ‘%char%’;</code>

<code>    </code><code>查看可使用字符集:show character </code><code>set</code><code>;</code>

<code>COLLATION:设定字符集的排序规则</code>

<code>    </code><code>查看可用排序规则:show collation;</code>

字符型2:binary,varbinary,blob等

<code># 对应可用属性修饰符</code>

<code>NOT NULL,NULL</code>

<code>DEFAULT:不适用于blob类型</code>

整型

<code>AUTO_INCREMENT:自动增长(前提:非空、唯一,支持索引,非负值)</code>

<code>UNSIGNED:无符号</code>

<code>DEFAULT</code>

浮点型

<code>UNSIGNED</code>

日期时间型

内置类型

<code># ENUM和SET的区别</code>

<code>    </code><code>ENUM:枚举,一般存储字串,只能取其中一个使用</code>

<code>    </code><code>SET:集合,一般存储单个字符,可组合各字符形成字串使用</code>

MySQL中的服务器变量

支持修改的服务器变量

<code># 一般分类</code>

<code>    </code><code>动态变量:可在MySQL运行时修改</code>

<code>    </code><code>静态变量:在配置文件中修改其值,其重启后方能生效</code>

<code># 从其生效范围来分类</code>

<code>    </code><code>全局变量:服务器级别,修改之后仅对新建立的会话有效</code>

<code>    </code><code>会话变量:会话级别,仅对当前会话有效;会话建立时,从全局继承各变量</code>

查看服务器变量

<code>法1:show [global|session] variables [like ‘’];</code>

<code># 注:默认是session变量</code>

<code>法2:</code><code>select</code> <code>@@{global|session}.Variable_Name;</code>

<code># 如select @@global.sql_mode;</code>

<code>法3:</code><code>select</code> <code>* from information_schema.global_variables where variable_name=’Some_Variable_Name’;</code>

修改服务器变量

<code># 前提:默认仅管理员有权限修改全局变量</code>

<code>set</code> <code>{global|session} Variable_Name=’Value’;</code>

<code># 注:无论是全局还是会话级别的动态变量修改,在重启mysqld后都会失效;若想永久生效,可定义在配置文件中的相应段中[mysqld]</code>

MySQL中的数据操作

数据库操作

<a href="http://s3.51cto.com/wyfs02/M00/24/6A/wKiom1NPF8vwKKU_AAPKpcatHQg162.jpg" target="_blank"></a>

表操作

创建表

<a href="http://s3.51cto.com/wyfs02/M01/24/6A/wKioL1NPF-OCFlu6AA63m-UncI8811.jpg" target="_blank"></a>

删除表

<a href="http://s3.51cto.com/wyfs02/M00/24/6A/wKiom1NPGBujtIAIAAG16GQu_dI321.jpg" target="_blank"></a>

修改表结构

<a href="http://s3.51cto.com/wyfs02/M01/24/6A/wKiom1NPGCiSgK09ABFJy1D8s-U530.jpg" target="_blank"></a>

数据操作

包括插入(Insert)、替换(Replace)、更新(Update)、删除(Delete)操作

<a href="http://s3.51cto.com/wyfs02/M02/24/6A/wKioL1NPF8_Rvaq6AApoQExArMI842.jpg" target="_blank"></a>

MySQL的视图

本质:视图就是存储下来的select语句

创建视图

<code>create view View_Name as select_clause</code>

<code># 如 create view stu as select Name,Age,ClassID from students;</code>

显示视图的创建属性

<code>show create view stu;</code>

使用:授权用户权限时,只指定视图,则用户只能查看到视图内的内容,而不能查看全部数据了

注:MySQL中的Select 操作比较复杂,也是很重要的部分,所以下一篇单独讲解

本文转自 xxrenzhe11 51CTO博客,原文链接:http://blog.51cto.com/xxrenzhe/1396838,如需转载请自行联系原作者