Mysql数据库基本知识四:视图

=============================【视图】=================================
几个知识点:
视图降低了查询效率,只简化了用户操作。
对视图的操作最终都会转换为对基本表的操作。
视图可以提高安全保障以及逻辑独立性。

1,从单个表派生出来的视图。
2,基于多个基本表的视图。
3,基于视图的视图。
4,分组视图。
5,修改视图:ALTER  VIEW  视图名
6,删除视图:DROP VIEW 视图名

7,查看视图:
查看视图的结构 :     desc 视图名
查看视图的定义:      show create view 视图名        /    show create table 视图名
显示所有视图(表):  show tables
查看所有视图的详细信息:select * from information_schema.views

8,创建视图:
CREATE VIEW  视图名 
AS 
SELECT语句   

注:视图名必须唯一
       当子查询视图含有虚拟列(例:year(now())-year(sbirth))时,必须指定列名表。
       有的视图没办法更新,对视图的更新最终会转化为对表的更新(必须要唯一有意义)。

9,通过视图对表增删改:
查询视图:SELECT FROM WHERE 
通过视图向表中添加数据:INSERT INTO 视图名 VALUES( ) 
通过视图更新表中数据:UPDATE 视图名 SET 字段名=字段值 WHERE条件
通过视图删除表中数据:DELETE FROM 视图名 WHERE条件
ps:不能同时修改来自两个或者多个基表的视图数据。

10,通过视图向基表中插入或更新数据,为保证数据正确性,可以在视图定义中添加 :
with  check option
with  cascaded check option(较为严格)
with  local check option(较为宽松)

11,检查视图:更新数据时,只有满足检查条件的更新语句才能成功执行。
12,视图更新条件:唯一有意义的转化为对基本表的更新。


=============================【MYSQL 编程基础】===========================
【1,标识符】:万能符号反引号字符(“ ` ”)

【2,注释】:第一,说明代码的含义,增强代码的可读性。
          第二,可把程序中暂时不用的语句注释掉。
mysql的注释有三种:
(1)  -- (两个减号,注意--后面有一个空格):用于注释单行。例如:-- uuu
(2) #用于注释单行。
(2)  /*......*/用于注释多行。

【3,常量】
字符串常量、数值常量、日期时间常量、布尔型、二进制常量、十六进制常量以及NULL。

重点:
'14:30:24'是一个时间常量,'2008-05-12 14:28:24'是一个日期时间常量,
日期时间常量的值必须符合日期、时间标准。
例如'1996-02-31'是错误的日期常量。(2月没有31号)

-----------------------------seelect作用----------------------------------
查询:select from
调用函数:select 函数名( )
显示变量/常量:select 变量/常量
定义变量
说明:使用select语句显示布尔值true或者false时,会将其转换为字符串“0”或者字符串“1”。
--------------------------------------------------------------------------

hex( ):将一个字符串或数字转换为十六进制格式的字符串。
例如:select hex('MySQL'); 

NULL值可适用于各种字段类型,它通常用来表示“值不知道”等意义。
NULL值参与算术运算、比较运算以及逻辑运算时,结果通常为NULL。

select null>0,null+1,null and 0,null and 1
显示结果为:null null 0 null

【4,变量】:
1.系统变量:由系统定义和维护,变量名前加“@@”。
select @@version;
show variables like ‘@@version’;
系统变量分为会话系统变量以及全局系统变量。(静态变量(值不可更改)属于特殊的全局系统变量。)

2.用户自定义变量:由用户定义和使用。
1)用户会话变量(以@开头)
2)局部变量(不以@开头) 

查看所有全局系统变量:show global variables;
查看所有会话系统变量以及所有全局系统变量:show session variables;

查看系统变量的值:
方法一:show命令(只能显示系统变量):
show global variables like ‘全局变量名’
show session variables like ‘会话变量名’
show  variables like ‘变量名’
Like表示进行模糊查询,采用通配符%表示任意多个字符,_表示任意一个字符。
方法二:select命令:Select  @@‘变量名’

设置全局系统变量的值的方法
set @@ global.变量名 =变量值    
set global 变量名 =变量值
变量值可是是默认值default、on、off或者具体取值。

----------------------------------【用户变量】---------------------------------
用户会话变量:用户在会话期间定义的变量。
set @u=888;
select @y=null;   结果为:null。
不要指定数据类型。

一般情况下,用户会话变量的定义与赋值同时进行。
【方法 1】:使用SET命令定义变量【必须同时赋值】 
 (SET语句一次可以定义多个变量)
语法:set @变量名1 = 表达式
例:   set @x = 'This is my test',@y=666,@z='2010-5-19'
      select @x,@y,@z
              
【方法2】: 使用SELECT命令定义变量的同时赋值  
格式1: SELECT  @变量名1:= 表达式
格式2:select  表达式1,表达式2 into @变量1,@变量名2
第二种语法格式中需要使用“:=”赋值语句,原因在于“=”是为“比较”保留的。

注意:使用select命令定义可以不赋值,系统会自动分配NULL值。
例:select @xxx=null;结果为null

【用户会话变量与SQL语句】
变量的作用:传递查询结果和查询条件。

【例1:查询学生总人数,将查询结果赋给变量student_count,并显示出来。】
法一:Set @student_count=(select  count(*) from student)
          Select @student_count

法二:Select  @student_count:=( select  count(*) from student)
ps:不同之处在于“:=”。

法三:Select  @student_count:=count(*) from student

法四:Select count(*)  into @student_count from student
          Select @student_count

法五:Select count (*) from student into @student_count
          Select @student_count

【例2:查询2012001号学生的信息,并显示出来。】
Set @student_no=‘2012001’
Select * from student where student_no = @student_no

注:利用用户会话变量传递查询结果和条件。
------------------------------------------------------------------------------------------
局部变量:declare命令,必须指定局部变量的数据类型,必须定义在程序里。
(程序有:例如函数、触发器、存储过程、事件)。
declare x int;

作用范围:局部变量(经常用)---》当前程序;
    用户会话变量(会相互影响)---》整个会话。


【5,运算符】
算术运算符、比较运算符、逻辑运算符以及位操作运算符。
2=null,结果仍然为null。

【6,语句块】:begin        end

【7,重置命令结束标记】:delimiter 命令可以重置命令结束符。

delimiter $$
select * 
from student
where student_name like '张_'$$

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值