`
wanghaopk
  • 浏览: 48705 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL 语法笔记大全

 
阅读更多

--创建数据库
create database students
go
--切换到自定义的数据库
use students
go
--建表
---检查即将创建的表是否存在
if exists
(
 select*from sysobjects where name='class'and type='u'
)
drop table class
go
---班级(班级号-主键约束,班级名-非空约束)
create table class
(
 cno varchar(10) primary key,
 cname varchar(20) not null,
)
/*
identity(1,1)就是自动增加,第一个参数是种子值,第二个是增量值;
primary key是主键
*/
--char为固定容纳字符,无论您输入的字符为多少,其所占有空间仍为8000个ANSI;
--varchar为可变容纳字符,也就是说他 会随着字符数的多少而自动改变存储长度,可以节省大量空间。
create table employee
(
 emno varchar(10) primary key,
 emname varchar(20) not null,
 emsex char(2) check (emsex in('男','女')) default '男',
 addr varchar(100) not null,
 emid varchar(20),
 emlb money,
 birth datetime
)

--插入表里的值
insert into buyin values('1001','000001','2004-11-24',10,'100')

--数据类型
     数据类型                数据类型名称

   数字数据类型        int,integer,smallint,tinyint,bigint,real,float,decimal,numeric,binary,varbinary

   字符串数据类型      char,nchar,varchar,nvarchar

   日期时间类型        datetime,smalldatetime

   其他数值类型        bit,text,ntext,image,money,smallmoney,timestamp,uniqueidentifier,sysname,sql_variant table


--查看表sp_help
sp_help students
go

--修改表
--添加字段
alter table students add class int

--修改字段
alter table students
alter column class varchar(20)

--删除字段
alter table students
drop column class

--查看数据库信息
sp_helpdb
go

--删除一行数据
delete from table_name where

--删除整个表的所有数据(相对于完全删除一个表所有记录,truncate 比 delete速度快的多)
delete  from tableName
or
truncate table tableName

--创建一个简单的视图
drop view titlepri_view

create view titlepri_view
as
select title_id,title,type,price
from titles where price >10
go

create view emphierarchy
as
 select a.employeeid,a.lastname,a.firstname,b.lastname'上司姓' from employees a,employees b where a.reportsto=b.employeeid and b.reportsto is not null


select * from emphierarchy

--T3
update emphierarchy set firstname='jones' where employeeid='4'

----创建聚集索引
create clustered index 索引名
on 表名(字段名)
--创建非聚集索引
create nonclustered index 索引名
on 表名(字段名)

--非聚集索引,无序nonclustered
--聚集索引,有序
--聚集索引和非聚集索引的区别
 --聚集索引:若某表创建了主键约束,则主键字段自动带上了聚集索引。一张表中只能创建一个聚集,所以若当前
--  表已经创建了主键约束,或是已经在某字段上建立了聚集索引,则不允许再次在其他字段上创建一个聚
--  集索引。
-- 非聚集索引:允许在一张表中建立多个非聚集索引。
--
-- 聚集索引和非聚集索引的区别:在某字段上建立了聚集索引后,该字段自动进行升序排序,并提高查找效率;
--       在某字段上建立了非聚集索引后,该字段不进行排序,仅提高查找效率。

---------------------------------------------------
declare @name char(10)定义一个变量
 select @name=cname from recruitmentagencies
 print @name

 
DECLARE @Avg1 VARCHAR(255)
  IF (SELECT AVG(Unitprice)
   FROM Products) > 30
  BEGIN
   SET @Avg1='产品平均单价超过30元'
   PRINT @Avg1
  END
  ELSE
  BEGIN
   SET @Avg1='产品平均单价没有超过30元'
   PRINT @Avg1
  END
  
DECLARE @Avg1 VARCHAR(255)
 SET @Avg1=
  CASE
      WHEN (SELECT AVG(Unitprice)
        FROM Products) > 10
          THEN '产品平均单价超过10元'
      WHEN (SELECT AVG(Unitprice)
        FROM Products) < 10
          THEN '产品平均单价没有超过10元'
  END
  PRINT @Avg1

 
DECLARE @Price DECIMAL(10,4)
 SELECT @Price=AVG(Unitprice)FROM Products
 WHILE @Price > 10
 BEGIN
  SELECT @Price = @Price - 1
  IF  @Price < 20
   BREAK
  ELSE
   PRINT @Price
   continue  
 END
 
--WAITFOR命令是让程序停顿指定的时间再运行或在指定时间运行。
过2秒钟后显示当前系统时间。
  WAITFOR DELAY '00:00:02'
  PRINT(GETDATE())
  
-----存储过程概述
是一组预编译好的完成特定功能的SQL语句
是存储在服务器上的一个对象
可通过对象名来调用
优点
模块化的程序设计
高效率的执行
减少网络流量
保证系统的安全性
Create procedure proc_print
 As
  declare @chara char(10),@charb char(10)
  print @chara+space(5)+@charb
  
create procedure pub_title
as
 declare @title_id tid,@title varchar(80),@price money,@money varchar(20)
 select @title_id=title_id,@title=title,@price=price from titles where price>(select avg(price) from titles)and type='popular_comp'
 set @money=cast(@price as varchar(20))
 print @title_id
 print @title
 print @money     

exec pub_title


将pubs数据库中的proc_print存储过程更名为print_proc
sp_rename proc_print,print_proc


修改proc_print,将其功能改为打印输出“abc”
alter procedure proc_print
as
 print ‘abc’

 
--创建带输入参数的存储过程的示例
CREATE PROCEDURE Titles_Pub
 @v_pubid char(4) 
AS  
 SELECT * FROM titles
 WHERE pub_id = @v_pubid

 执行存储过程的示例: EXECUTE Titles_Pub ‘1389'
 
 --什么是触发器
 一种特殊类型的存储过程,
不同于存储过程。
触发器主要是通过事件进行触发而被自动执行的
存储过程可以通过存储过程名称而被直接调用。
触发器的作用
禁止无效的修改

级联修改相关表格

执行较为复杂的约束操作

触发器的类型
insert 触发器:监视insert操作
delete 触发器:监视delete操作
update 解发器:监视update操作

设计一个应用,每删除一个学生信息,则打印消息“delete successful”
Create Trigger DeleteTrigger
on stuInfo
for delete
as
   print 'delete successful'
  
  
---什么是函数
 函数是用于封装经常执行的逻辑的子例程
函数的类型
标量函数(返回单个数据值)
内嵌表值函数(返回一个结果集)
多语句表值函数(返回一个结果集)


标量函数格式
create function 函数名(@参数名 类型……)
returns 数据类型
as
 begin
  函数体
  return 返回值
 end
调用格式: 拥用者.函数名(实参)


内嵌表值函数格式
create function 函数名(@参数名 类型……)
returns   Table
as
 return  select 语句
调用格式: 拥用者.函数名(实参)


多语句表值函数格式
 create function 函数名(@参数名 类型……)
 returns  @变量名 Table(表定义)
 as
  begin
   语句组
   return
  end
调用格式: 拥用者.函数名(实参)
--例:一个简单的多语句表值函数
create function fun_3(@id int,@name varchar(12),@age int)
returns @table_name
 table( tId int, tName varchar(12), tAge int)
as
begin
 insert into @table_name values(@id,@name,@age)
 return
end
go

--调用多语句表值函数
select * from fun_3(101,'tom',25)


begin transaction
insert into students values('001','zhangsan')
insert into students values('002','lisi')
commit transaction

create procedure pro_01
@出仓库编号 varchar(5),
@入仓库编号 varchar(5),
@商品编号 varchar(5),
@调度数量 varchar(5)
as
begin transaction
 declare @库存数量 int
 set @库存数量=(select 库存数量 from 库存表 where 仓库编号=@出仓库编号 and 商品编号=@商品编号)
 if(@调度数量>@库存数量)
 begin
  print'库存量不足!'
  rollback
  
 end
 else
 begin
  
  update 库存表 set 库存数量=((select 库存数量 from 库存表 where 仓库编号=@出仓库编号 and 商品编号=@商品编号)-@调度数量) where 仓库编号=@出仓库编号 and 商品编号=@商品编号
  update 库存表 set 库存数量=((select 库存数量 from 库存表 where 仓库编号=@入仓库编号 and 商品编号=@商品编号)+@调度数量) where 仓库编号=@入仓库编号 and 商品编号=@商品编号
 commit transaction
 end
 
exec pro_01 '001','002','s01','5'

 

 

 

 

 

分享到:
评论

相关推荐

    sql语法笔记

    sql语法笔记,详细的哦,觉得不错就传上来啦哈哈哈,有兴趣的可以看看。

    sql server语法笔记整理

    SQL Server是一种广泛使用的关系型数据库管理系统,由微软公司开发,提供了强大的数据...经典SQL语句大全.doc和SQL语法基础.doc文档将更深入地探讨这些概念,提供丰富的实例和练习,助你在SQL Server的世界里游刃有余。

    SQL语法基础笔记

    【第17章:Java数据库编程】_SQL语法基础笔记.pdf

    SQL语法大全 学习笔记

    本学习笔记涵盖了SQL语法的各个方面,旨在帮助初学者全面掌握这一核心技术。 一、基础知识 SQL的基础知识包括数据类型、常量、变量、运算符以及SQL语句的基本结构。数据类型包括数值型(如INT、FLOAT)、字符串型...

    数据库笔记 语法大全 SQLServer语法 精心写的

    这些知识点涵盖了SQL Server的基本语法、数据定义语言(DDL)、数据操纵语言(DML)以及查询优化等方面的内容。 ### 数据定义语言(DDL) #### 创建表 创建表是数据库管理中最基本的操作之一。在SQL Server中,...

    SQL语法笔记

    SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,其语法丰富,功能强大,是IT行业中不可或缺的基础技能之一。本笔记将详细讲解SQL的...希望这份SQL语法笔记能为你的学习之路提供宝贵的参考。

    一些sql语法基础笔记

    ### SQL基础语法知识点 #### 一、数据库简介与分类 - **数据库**是长期存储在计算机内、有组织的、可共享的数据集合。 - **关系型数据库管理系统(RDBMS)**:一种采用表格形式来组织数据的数据库系统。通过定义表...

    linq to sql 语法 学习笔记

    本文将重点讲解 LINQ to SQL 中的 `Where` 和 `Select/Distinct` 操作符的使用。 ### 一、`Where` 操作符 `Where` 操作符用于过滤数据,其功能类似于 SQL 中的 `WHERE` 子句。它可以接受不同的形式: 1. **简单...

    DB2资料sql语法.zip

    DB2资料sql语法.zip文件包含了IBM官方提供的Informix SQL指南,版本9.4,这是一个深入理解并掌握DB2 SQL语言的关键资源。 首先,让我们深入了解【标题】中的“DB2资料sql语法”。DB2 SQL语法主要包括数据定义、数据...

    SQL学习笔记(pdf)

    这份"SQL学习笔记"涵盖了SQL的基础概念、语法以及高级特性,是学习数据库管理和数据分析的宝贵资料。 1. **SQL基础** - 数据库概念:了解什么是数据库,它的作用以及数据库管理系统(DBMS)如何工作。 - SQL简介...

    笔记之sql语法.rar

    这个名为“笔记之sql语法.rar”的压缩包文件显然包含了关于SQL语法的学习笔记,可能是某位专业人士或爱好者整理的资料,旨在帮助学习者理解和掌握SQL的基本用法。 SQL语法主要包括以下几个核心部分: 1. **数据...

    经典sql语句笔记(sql 关键字)

    以下将详细讲解SQL的基本语法、关键字、函数以及存储过程和视图等重要概念。 一、SQL基本语法 SQL语句通常由一系列关键字组成,比如`SELECT`、`FROM`、`WHERE`、`ORDER BY`等。基本查询语法通常为: ```sql SELECT ...

    JAVA 与 Sql学习笔记

    【JAVA与Sql学习笔记】 在Java编程中,与SQL数据库的交互是不可或缺的一部分。这篇学习笔记主要关注如何在Oracle数据库中使用PL/SQL的FORALL语句进行批量操作,以及如何利用批绑定(Bulk Binding)来提升性能。此外...

    oracle笔记pl_sql基本语法记录类型01

    oracle笔记pl_sql基本语法记录类型01,有具体的代码案例!

    oracle_sql笔记

    Oracle SQL遵循标准的SQL语法,包括SELECT、INSERT、UPDATE、DELETE四大语句。用于查询数据的基本结构是SELECT字段列表FROM表名WHERE条件,这允许我们从一个或多个表中提取满足特定条件的数据。INSERT语句用于向表中...

    SQL Server 笔记.docx

    SQL Server 数据库管理笔记 SQL Server 是一种关系型数据库管理系统,由 Microsoft 公司开发,广泛应用于各种行业和领域。作为一名 ITIndustry 大师,我将根据提供的文件信息,总结出相关的知识点,帮助您快速了解 ...

    sql语法学习笔记.docx

    总的来说,这份学习笔记涵盖了SQL的基础操作,对于初学者来说是非常有价值的。理解并熟练掌握这些概念和语句,将有助于在实际工作中有效地管理和操纵数据库。在实践中,还需要注意SQL的优化,如避免全表扫描,合理...

    SQL2005学习笔记

    理解其基本语法和高级特性,如游标、存储过程、触发器等,是SQL2005学习的基础。 3. 表与索引:理解表的设计原则,包括主键、外键和索引,是提高数据库性能的关键。索引可以加速查询,但过度索引可能导致写操作变慢...

    sql语法学习笔记.pdf

    本文将深入探讨SQL的基础语法,包括创建数据库、表的定义、数据插入、查询、更新和删除,以及主键和外键的概念。 首先,创建数据库是SQL操作的起点。例如,使用`CREATE DATABASE`语句可以创建名为“Liangshanheros2...

Global site tag (gtag.js) - Google Analytics