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 & ...
随机推荐
- XCode7无证书真机调试教程
转载自http://altair21.com/156.html 前提条件: XCode版本>=7 1. 进入xcode,菜单栏选择xcode –> preferences (快捷键 com ...
- SaltStack Pillar 详解
简介 grains用于存储静态不易变更的数据,而pillar一般用于存储动态, 敏感的数据,通过minion和master设置或获取grains信息,而pillar信息只能在master端配置,在到m ...
- vue-cli3预设preset记录
这两天公司搭建新项目的时候发现vue-cli3有一个神奇的的东西:preset(预设).preset其实是你在create新vue项目的时候,生成的插件配置项预设,也就是你在项目中需要用到的插件安装成 ...
- 8. JavaScript学习笔记——事件
8. 事件 8.1 事件基础 /// 事件就是用户或浏览器自身执行的某种动作.诸如 click.load 和 mouseover,都是事件的名字.而响应某个事件的函数就叫做事件处理程序(或事件侦听器) ...
- spring boot快速入门 5: 事务管理
事务管理: 新增两名女生: 第一步:创建 GirlRespository package com.payease.service; import com.payease.entity.Girl; im ...
- 003javascript语句
javascript语句和java差不多,注意==和===区别 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " ...
- redis之 集群配置(主从复制)
集群的作用: 集群的方式有二种: 第二种的好处是:master宕机以后可以直接切换到slave1 主从通信的过程 先通过dump导出大块的rdb 然后把aof缓冲过来,然后通过replicationf ...
- 关于JNI调用从eclipse转到Android Studio遇到的问题(总结)
将一个小应用从eclipse开发迁移到android studio,程序中有native代码实现,在eclipse是靠Android.mk这么个mk文件来组织编译的,但到android studio上 ...
- maven上传源码到私服
上传源码 项目中采用了分模块的方式构建,直接将maven-source-plugin写到父pom中,尝试了很多次发现源码一直不能上传到私服中,纠结了很长时间才发现原来多模块项目和普通一个项目的配置是有 ...
- python-FTP模块
#!/user/bin/python #coding=utf-8 import ftplib import os import socket HOST = 'ftp.kernel.org' DIRN ...