sql:Mysql create view,function,procedure
create database Liber; use Liber; #顯示數据庫 20150210 Geovin Du 涂聚文
SHOW DATABASES; drop table BookKindList;
#书目录
create table BookKindList
(
BookKindID INT NOT NULL AUTO_INCREMENT, #自动增加
BookKindName nvarchar(500) not null,
BookKindParent int null,
PRIMARY KEY(BookKindID) #主键
); #这样也可以
create table BookKindList
(
BookKindID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, #自动增加#主键
BookKindName nvarchar(500) not null,
BookKindParent int null
); #书位置
create table BookPlaceList
(
BookPlaceID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
BookPlaceName nvarchar(500) not null,
BookPlaceParent int null ); #书系列Series或套名称(一本的0.无,有分上下本)
drop table BookSeriesList; create table BookSeriesList
(
BookSeriesID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
BookSeriesName nvarchar(500) not null
);
#職位Position
create table PositionList
(
PositionID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
PositionName nvarchar(500) not null
); #部門Department ShortPY
create table DepartmentList
(
DepartmentID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
DepartmentName nvarchar(500) not null
); insert into DepartmentList(DepartmentName) values ('行政部');
insert into DepartmentList(DepartmentName) values ('资讯部'); select * from DepartmentList; #語种 Language
create table LanguageList
(
LanguageID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
LanguageName nvarchar(500) not null
); #出版社Press #拼音索引
create table PressList
(
PressID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
PressName nvarchar(500) not null ); #作家Author
create table AuthorList
(
AuthorID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
AuthorName nvarchar(500) not null
); #BookStatus 书藉存在状态(1,在用,2,报废,3。转移)
create table BookStatusList
(
BookStatusID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
BookStatusName nvarchar(500) not null
); #借阅状态:借出,续借,归还,预借Lend, Renewal, Restitution,Reservations
create table LendStatusList
(
LendStatusID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
LendStatusName nvarchar(500) not null
); #书信息
create table BookInfoList
(
BookInfoID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,#自动增加#主键
BookInfoKind int not null, #书籍类型外键
BookInfoPlace int not null, #放置位置外键
BookInfoISBN varchar(50) not null, #书籍ISBN编码
BookInfoBarCode varchar(60) not null, #管理条码(barcode)
BookInfoName nvarchar(500) not null, #书名
BookInfoSeries int default 1, #书系列 ,0為無係列
BookInfoAuthor int null, #作者
BookInfoPress int null, #出版社
BookInfoLanguage int null, #语种
BookInfoPublish datetime , #出版时间
BookInfoImage text null, #封面图片
BookInfoStatus int default 1 not null, #书藉状态(1,在用(在库),2,报废,3。转移)
BookInfoRemarks text null, #备注
BookInfoOperatorId int null, #操作人员ID
BookInfoAddDate datetime not null, #添加時間 可不以默认时间DEFAULT CURDATE()
BookInfoPrice float default 1.00, #书价格
BookUseCode varchar(100) ); desc BookKindList;#查询表结构 show tables;#查询所有表 select * from BookKindList; #查询 insert into BookKindList(BookKindName,BookKindParent)values('六福书目录',0); insert into BookKindList(BookKindName,BookKindParent)values('文学',1); insert into BookKindList(BookKindName,BookKindParent)values('科学技术',1); /*自定义函数*/
#部门函数
DELIMITER $$
DROP FUNCTION IF EXISTS `geovindu`.`f_GetDepartmentName` $$
CREATE FUNCTION `geovindu`.`f_GetDepartmentName` (did int) RETURNS varchar(100)
BEGIN
declare str varchar(100);
return(select DepartmentName from DepartmentList where DepartmentID=did);
END $$
DELIMITER ; #使用函数
select f_GetDepartmentName(1); select * from BookInfoList;
#作家函数 DELIMITER $$
DROP FUNCTION IF EXISTS `geovindu`.`f_GetAuthorName` $$
CREATE FUNCTION `geovindu`.`f_GetAuthorName` (did int) RETURNS varchar(400)
BEGIN
declare str varchar(100);
return(select AuthorName from AuthorList where AuthorID=did);
END $$
DELIMITER ; /*视图*/
select * from geovindu.views; desc View_BookInfoList; show create view View_BookInfoList; select * from View_BookInfoList; CREATE VIEW `geovindu`.`View_BookInfoList` AS
select BookInfoID , BookInfoKind , BookInfoPlace ,BookInfoSeries , BookInfoAuthor , BookInfoPress , BookInfoLanguage , BookInfoStatus , BookInfoOperatorId , BookInfoISBN , BookInfoBarCode , BookInfoName , BookInfoRemarks ,BookInfoAddDate,BookInfoPublish ,BookInfoPrice,
BookKindList.BookKindName,BookPlaceList.BookPlaceName,f_GetAuthorName(BookInfoAuthor)
from BookInfoList,BookKindList,BookPlaceList
where BookInfoList.BookInfoKind=BookKindList.BookKindID and BookInfoList.BookInfoPlace=BookPlaceList.BookPlaceID; /*储存过程 解决方案的思维模式基本相同,只是一些指令不同*/ #IN 表示输入参数
#OUT表示输出参数
#INOUT:表示即可以输入参数也可以输出参数
#存储过程 利用mysql-query-browser创建存储过程和函数 #删除
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`DeleteBookKind` $$
CREATE PROCEDURE `geovindu`.`DeleteBookKind` (IN param1 INT)
BEGIN
Delete From bookkindlist WHERE BookKindID = param1;
END $$
DELIMITER ; #查询所有
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Select_BookKindListAll()` $$
CREATE PROCEDURE `geovindu`.`proc_Select_BookKindListAll()` ()
BEGIN
SELECT * FROM bookkindlist;
END $$
DELIMITER ; select * from `geovindu`.`bookkindlist`;
SELECT * FROM bookkindlist; #统计
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`BookKindCount` $$
CREATE PROCEDURE `geovindu`.`BookKindCount` (OUT param1ID INT)
BEGIN
select COUNT(*) into param1ID From bookkindlist;
END $$
DELIMITER ; #更新
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Update_BookKindList` $$
CREATE PROCEDURE `geovindu`.`proc_Update_BookKindList` (IN param1ID Int,IN param1Name NVarChar(1000),IN param1Parent Int)
BEGIN
IF NOT EXISTS (SELECT * FROM BookKindList WHERE BookKindName=param1Name) then #如果存在相同的记录,不更新名称
UPDATE BookKindList
SET
BookKindName=param1Name ,
BookKindParent=param1Parent
where
BookKindID=param1ID;
ELSE
UPDATE BookKindList
SET BookKindParent=param1Parent
where
BookKindID=param1ID;
END IF;
END $$
DELIMITER ; #查询一条
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Select_BookKindList` $$
CREATE PROCEDURE `geovindu`.`proc_Select_BookKindList` (IN param1 INT)
BEGIN
SELECT * FROM BookKindList WHERE BookKindID = param1;
END $$
DELIMITER ; #插入一条
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Insert_BookKindList` $$
CREATE PROCEDURE `geovindu`.`proc_Insert_BookKindList` (IN param1Name NVarChar(1000),IN param1Parent Int)
BEGIN
insert into BookKindList(BookKindName,BookKindParent) values(param1Name,param1Parent);
END $$
DELIMITER ; #插入一条返回值
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Insert_BookKindOut` $$
CREATE PROCEDURE `geovindu`.`proc_Insert_BookKindOut` (IN param1Name NVarChar(1000),IN param1Parent Int,OUT ID INT)
BEGIN
IF NOT EXISTS (SELECT * FROM BookKindList WHERE BookKindName=param1Name) then #如果存在相同的记录,不添加
INSERT INTO BookKindList (BookKindName,BookKindParent)VALUES(param1Name ,param1Parent);
#set ID=Last_insert_id()
SELECT LAST_INSERT_ID() into ID;
end if;
END $$
DELIMITER ;
sql:Mysql create view,function,procedure的更多相关文章
- sql:MySql create FUNCTION,VIEW,PROCEDURE
use geovindu; #函数 DELIMITER $$ drop function if exists f_GetDepartmentName $$ CREATE function f_GetD ...
- 转: mysql create view 创建视图
以下的文章主要是对MySQL视图的描述,其中包括MySQ视图L概述,以及创建MySQL视图-create view与修改MySQL视图--alter view等相关内容的具体描述,以下就是文章的具体内 ...
- sql: table,view,function, procedure created MS_Description in sql server
--添加描述 geovindu --https://msdn.microsoft.com/en-us/library/ms180047.aspx --https://msdn.microsoft.co ...
- Oracle通过SQL语句查看table所引用的对象(View/Function/Procedure/Trigger)
通过使用user_dependencies进行查看,如下: SELECT * FROM user_dependencies WHERE referenced_name='SFCUSN' --Table ...
- 深入解析MySQL视图view
阅读目录---深入解析MySQL视图view 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌 ...
- Create view failed with ORA-01031:insufficient privileges
有时候在ORACLE数据库创建视图时会遇到:ORA-01031:insufficient privileges错误,我也多次碰到了各种创建视图出错的情况,很多时候也没有太在意,今天被一同事问起这个问题 ...
- MySQL 5.7 create VIEW or FUNCTION or PROCEDURE
1.视图 a. CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY INVOKER VIEW `sakila` ...
- SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二: ...
- linux之SQL语句简明教程---CREATE VIEW
视观表 (View) 可以被当作是虚拟表格.它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料. 建立一个视观表的语法如下: CREATE VIEW & ...
随机推荐
- Java中常见的jar包及其主要用途
jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周 ...
- 使用python 模仿mybinlog 命令 二进制分析mysql binlog
出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该声明. ...
- C#-WebForm-LinQ-条件精确查询、高级查询
前台界面,并在后台绑定数据 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ca ...
- 编程开发之--java多线程学习总结(4)
3.使用锁机制lock,unlock package com.lfy.ThreadsSynchronize; import java.util.concurrent.locks.Lock; impor ...
- localStorage注册页面A注册数据在本地储存并在B页面打开
如题目的这么一个问题, A页面代码 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- 51nod1965. 奇怪的式子(min_25筛)
题目链接 http://www.51nod.com/Challenge/Problem.html#!#problemId=1965 题解 需要求的式子显然是个二合一形式,我们将其拆开,分别计算 \(\ ...
- 一种很有意思的数据结构:Bitmap
昨晚遇到了一种很有意思的数据结构,Bitmap. Bitmap,准确来说是基于位的映射.其中每个元素均为布尔型(0 or 1),初始均为 false(0).位图可以动态地表示由一组无符号整数构成的集合 ...
- 关于ubuntu环境下gcc使用的几点说明
sudo apt-get build-dep gcc //安装gcc编译器 /* 假设已经创建hello.c文件 */ //方法一 $gcc hello.c //将源文件直接编译成文件名为a.out的 ...
- Cassandra概念学习系列之Cassandra是什么?
不多说,直接上干货! http://cassandra.apache.org/ Apache Cassandra是一套开源分布式NoSQL数据库系统.它最初由Facebook开发,用于储存收件箱等简单 ...
- 多线程编程(一)-Semaphore(信号量)的使用
Semaphore的介绍 单词Semaphore的中文含义就是信号.信号系统的意思,此类的主要作用就是限制线程并发的数量. 举个例子,一个屋子里有10个人,但只有一个窄门可以出去,这个窄门一次最多只能 ...