SQL语言的组成部分mysql
常见分类:sql
DDL:数据定义语言 DCL:数据控制语言,如受权 DML:数据操做语言
其它分类:数据库
完整性定义语言: DDL的一部分功能约束 约束:包括主键,外键,惟一键,条件,非空,事务等各种约束 视图定义:即虚表,就是存储下来的SELECT语句 事务控制 嵌入式SQL和动态SQL
数据字典:系统编目(system catalog)bash
做用:保存数据库服务器上的元数据服务器
保存元数据的数据库有:session
information_schema mysql performance_schema
元数据包括:架构
关系名称 关系的各字段名称 各字段的数据类型和长度 约束 关系上的视图名称及视图的定义 受权用户名称 用户的受权和账户信息 统计类的数据 关系字段的个数 关系中的行数 关系的存储方法
SQL语言的数据类型及属性修饰符ide
字符型1:char,varchar,text等工具
# 对应可用属性修饰符: NOT NULL:非空约束 NULL:容许为空 DEFAULT ‘string’:默认值,不适用于text类型 CHARACTER SET ‘字符集’:设定字符集 查看当前MySQL字符集:show variables like ‘%char%’; 查看可以使用字符集:show character set; COLLATION:设定字符集的排序规则 查看可用排序规则:show collation;
字符型2:binary,varbinary,blob等
spa
# 对应可用属性修饰符 NOT NULL,NULL DEFAULT:不适用于blob类型
整型
# 对应可用属性修饰符: AUTO_INCREMENT:自动增加(前提:非空、惟一,支持索引,非负值) UNSIGNED:无符号 NOT NULL,NULL DEFAULT
浮点型
# 对应可用属性修饰符: NOT NULL,NULL DEFAULT UNSIGNED
日期时间型
# 对应可用属性修饰符: NOT NULL,NULL DEFAULT
内置类型
# ENUM和SET的区别 ENUM:枚举,通常存储字串,只能取其中一个使用 SET:集合,通常存储单个字符,可组合各字符造成字串使用 # 对应可用属性修饰符: NOT NULL,NULL DEFAULT
MySQL中的服务器变量
支持修改的服务器变量
# 通常分类 动态变量:可在MySQL运行时修改 静态变量:在配置文件中修改其值,其重启后方能生效 # 从其生效范围来分类 全局变量:服务器级别,修改以后仅对新创建的会话有效 会话变量:会话级别,仅对当前会话有效;会话创建时,从全局继承各变量
查看服务器变量
法1:show [global|session] variables [like ‘’]; # 注:默认是session变量 法2:select @@{global|session}.Variable_Name; # 如select @@global.sql_mode; 法3:select * from information_schema.global_variables where variable_name=’Some_Variable_Name’;
修改服务器变量
# 前提:默认仅管理员有权限修改全局变量 set {global|session} Variable_Name=’Value’; # 注:不管是全局仍是会话级别的动态变量修改,在重启mysqld后都会失效;若想永久生效,可定义在配置文件中的相应段中[mysqld]
MySQL中的数据操做
数据库操做
表操做
建立表
删除表
修改表结构
数据操做
包括插入(Insert)、替换(Replace)、更新(Update)、删除(Delete)操做
MySQL的视图
本质:视图就是存储下来的select语句
建立视图
create view View_Name as select_clause # 如 create view stu as select Name,Age,ClassID from students;
显示视图的建立属性
show create view stu;
使用:受权用户权限时,只指定视图,则用户只能查看到视图内的内容,而不能查看所有数据了
注:MySQL中的Select 操做比较复杂,也是很重要的部分,因此下一篇单独讲解