Mysql笔记
来源:互联网 发布:怎么看端口是否被占用 编辑:程序博客网 时间:2024/05/21 19:49
mysql小结
mysql 在ubuntu使用
登录
mysql -u root -p
mysql -h localhost -u root -p
查看数据库
SHOW DATABASES
CREATE DATABASE lib;
mysql时间使用
mysql 插入时间
- now()函数以yyyy-mm-dd hh:mm:ss返回当前的日期时间,可以直接存到datetime字段中
- curdate()以’yyyy-mm-dd’的格式返回今天的日期,可以直接存到date字段中
- curtime()以’hh:mm:ss’的格式返回当前的时间,可以直接存到time字段中
时间类型加减
DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)
ADDDATE(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type)
定义和用法
DATEDIFF() 函数返回两个日期之间的天数。
语法
DATEDIFF(date1,date2)
例子
set @dt = now();select date_add(@dt, interval 1 day); - 加1天select date_add(@dt, interval 1 hour); -加1小时select date_add(@dt, interval 1 minute); - 加1分钟select date_add(@dt, interval 1 second); -加1秒select date_add(@dt, interval 1 microsecond);-加1毫秒select date_add(@dt, interval 1 week);-加1周select date_add(@dt, interval 1 month);-加1月select date_add(@dt, interval 1 quarter);-加1季select date_add(@dt, interval 1 year);-加1年
mysql 变量使用
sql server中变量要先申明后赋值
- 局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的)
- 申明局部变量语法:declare @变量名 数据类型;例如:declare @num int;
插入
INSERT INTO table(field1, field2, fieldn) SELECT 'field1', 'field2', 'fieldn' FROM ...
触发器
不知道为啥触发器前面都要加 DELIMITER //
还有切记触发器不能触发对象和处理对象是同一个
MySQL Error: Can’t update table ‘tbl’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger
这是可以的,但是如果,你把这个触发器放在after之后,然后修改同一个表,就不行!!!
DELIMITER //create trigger InsertReader before insert on Reader for each rowbegin set new.maxnum = 30; set new.lastnum = 30; if(new.kind = "干部") then set new.maxnum = 45; set new.lastnum = 45; end if;end
实例
DELIMITER //create trigger InserRecord before insert on Record for each rowbegin declare lastbooknum int; declare lastreadernum int; declare mday int; declare msg varchar(200); select num into lastbooknum from Book where Book.bookid = new.bookid; select lastnum into lastreadernum from Reader where Reader.readerid = new.readerid; select maxday into mday from Reader where Reader.readerid = new.readerid; if(lastbooknum < 1) then set msg = "图书都已借出"; SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = msg ; end if; if(lastreadernum < 1) then set msg = "您已经不能再借书,请先归还再借"; SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = msg ; end if; if(lastbooknum > 0 && lastreadernum > 0) then update Book set num = num - 1 where Book.bookid = new.bookid; update Reader set lastnum = lastnum - 1 where Reader.readerid = new.readerid; set new.borrowtime = curdate(), new.deadline = date_add(curdate(), interval mday day); end if;end
0 0
- Mysql笔记
- MySQL笔记
- mysql笔记
- MySQL笔记
- mySql 笔记
- mysql笔记
- mysql笔记
- mysql笔记
- Mysql笔记
- MySQL笔记
- MySQL 笔记
- mysql笔记
- MySQL笔记
- MySQL 笔记
- mysql 笔记
- mysql笔记
- MySQL笔记
- mysql笔记
- mysql监控的chk_mysql.sh脚本内容for show variables
- tensorflow训练了10万次,运行完毕,对这个word2vec终于有点感觉了
- 常用工具脚本1
- samba配置
- opencv(16)---图像边缘检测
- Mysql笔记
- CentOS7下安装mysql-5.7.18
- neo4j jdbc连接数据库用http协议和bolt协议得到的数据不一样
- string容器
- POJ
- centos 5 yum 不能用出现all mirror URLs are not use ftp http or file
- Android程序员必须知道的知识点
- 小程序单位:rpx、rem的具体使用方法及算法
- 使用 maven 部署项目 jar 到 nexus 出现 org.apache.maven.wagon.TransferFailedException 错误的解决方法