SQL(一)SQL语言

一、SQL语言分类

主要分为四类:DDL、DML、DQL、DCL

1、DDL
2、DML
3、DQL

4、DCL

二、SQL语言中常见的数据类型:

大致可以分为7大类:

数据库数值类型有符号和无符号:在创建数据表时,可以指定数值类型属性是否有符号,默认有符号,如果需要定义成无符号,需要用UNSIGNED关键字标识一下。有符号的需要占一个二进制位标识符号,无符号则是全部用来存储数值,所以无符号的范围更大。 

三、SQL变量

分为三种类型: 系统变量、用户定义变量、局部变量。

1、系统变量

是MySQL服务器提供,不是用户定义的,属于服务器层面。分为全局变量(GLOBAL)、会话变量(SESSION)。没有指定,默认会话变量。

全局变量(GLOBAL): 全局变量针对于所有的会话。会话变量(SESSION): 会话变量针对于单个会话,在另外一个会话窗口就不生效了。

-- 查看系统变量 (没有)
show session variables ; 
show session variables like 'auto%'; 
show global variables like 'auto%'; 
select @@global.autocommit; 
select @@session.autocommit; 
-- 设置系统变量 
set session autocommit = 1; 
insert into course(id, name) VALUES (6, 'ES'); 
set global autocommit = 0; 
select @@global.autocommit; 
2、局部变量:

局部变量是一个能够拥有特定数据类型的对象,用于保存单个数据值,供控制流语句测试以及保存由存储过程返回的数据值等,它的作用范围仅限在程序内部。局部变量必须先定义才能够被引用。且不能一次定义多个局部变量。它的定义语法如下:DECLARE VARIABLE var_name data_type;   其中,var_name指定局部变量的名称,data_type设置局部变量的数据类型及大小。声明了一个变量,可以这样写来赋值操作:DECLARE VARIABLE i int ;SELECT count(*) FROM employee into :i;
这里注意一下,在Firebird数据库中,引用变量的时候使用冒号。在不同的数据库中变量的声明方法可能不尽相同。

3、用户定义变量

用户定义变量 是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接用 "@变量名" 使用就可以。其作用域为当前连接。

-- 赋值 (= 或 := 直接赋值 或into赋值)
set @myname = 'itcast'; 
set @myage := 10; 
set @mygender := '男',@myhobby := 'java'; 
select @mycolor := 'red'; 
select count(*) into @mycount from tb_user; 
-- 使用 
select @myname,@myage,@mygender,@myhobby; 
select @mycolor , @mycount; 
-- 没有赋值也可以查询,会返回NULL
select @abc; 

四、SQL语言流程控制:

主要分为选择结构和循环结构两种。

(1)选择结构:根据条件值的不同,选择执行不同的语句序列,其他与条件值不匹配的语句序列则跳过不执行。

IF (条件表达式) THEN 语句1;                       IF (条件表达式) THEN 语句1;  ELSE 语句2;

(2)循环结构:如有一个变量i=0,当i<5的时候i每次加1:

这串代码最终得到的i的值应该是5。

五、触发器

触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整, 日志记录 , 数据校验等操作 。

使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值