【数据库】之MYSQL基本语法
实验2-用户权限及角色
1.创建一个数据库用户myuser_201911074,密码为123CREATE USER myuser_201911074 IDENTIFIED WITH mysql_native_password BY '123';2.将数据库mydb_201911074上所有权限授予题1创建的用户GRANT ALL ON mydb_201911074 TO myuser_201911074;3.查询题1创建的用户拥有哪些权限SHOW GRANTS FOR myuser_201911074;4.撤销题1创建的用户拥有的权限REVOKE ALL ON mydb_201911074 FROM myuser_201911074;5.创建一个角色role_201911074CREATE ROLE role_201911074;6.将数据库mydb_201911074上所有权限授予题5创建的角色GRANT ALL ON mydb_201911074 TO role_201911074;7.将角色role_201911074 授予题2创建的用户GRANT ALL ON role_20191074 TO myuser_201911074;8. 修改题1创建的用户,将所有角色设置为默认角色ALTER USER myuser_201911074 DEFAULT ROLE role_201911074;9.修改题1创建的用户的口令为pwd123,ALTER USER myuser_201911074 IDENTIFIED WITH mysql_native_password BY 'pwd123';10.以题1创建的用户访问数据库,并创建表( CREATE TABLE test(id INT); )CREATE TABLE test(id INT);11.删除题5创建的角色DROP ROLE role_201911074;12.删除题1创建的用户DROP USER myuser_201911074;
实验3-数据库和表
创建数据库mydb_201911074,并切换到该数据库CREATE DATABASE mydb_201911074;USE mydb_201911074;创建一个员工表emp_201911074,包含员工编号(empid),员工姓名(empname),员工性别(empgender)USE mysql;CREATE TABLE emp_201911074(empid INT,empname VARCHAR(20),empgender VARCHAR(1));创建一个表空间mytbs_201911074,对应磁盘文件mytbs_201911074.ibdCREATE TABLESPACE mytbs_201911074 ADD DATAFILE'mytbs_201911074.ibd';显示表格emp_201911074DESC emp_201911074;修改表emp_201911074,将其存储在表空间mytbs_201911074ALTER TABLE emp_201911074 TABLESPACE=mytbs_201911074;修改表emp_201911074,将其表空间修改为file_per_tableALTER TABLE emp_201911074 TABLESPACE=innodb_file_per_table;修改表emp_201911074,增加列empage,放在empname后面ALTER TABLE emp_201911074 ADD COLUMN empage INT AFTER empname;修改表emp_201911074,将empname放在第一列ALTER TABLE emp_201911074 MODIFY empname VARCHAR(20) FIRST;修改表emp_201911074,将empname的类型修改为varchar(100)ALTER TABLE emp_201911074 MODIFY empname VARCHAR(100);修改表emp_201911074,删除列empageALTER TABLE emp_201911074 DROP COLUMN empage;删除表emp_201911074,删除表空间mytbs_201911074,删除数据库databaseDROP TABLE emp_201911074;DROP TABLESPACE mytbs_201911074;DROP DATABASE mydb_201911074;
实验4-表数据操作
1.创建一个员工表emp_201911074,包含员工编号(empid),员工姓名(empname),员工性别(empgender),员工入职日期(startdate),员工工资(salary),要求empid自增,同时设为主键PRIMARY KEYCREATE TABLE emp_201911074(empid INT AUTO_INCREMENT PRIMARY KEY,empname VARCHAR(20),empgender VARCHAR(10),startdate DATETIME,salary NUMERIC(10,2));2.将下表数据插入题1创建的表中empid empname empgender startdate salary1 李飞 男 1999-07-01 80002 赵美琪 女 2000-10-01 60003 齐凌凌 女 1992-08-10 120004 朱凯 男 2005-06-01 4500INSERT INTO emp_201911074 VALUES(1,'李飞','男','1999-07-01',8000),(2,'赵美琪','女','2000-10-01',6000),(3,'齐凌凌','女','1992-08-10',12000),(4,'朱凯','男','2005-06-01',4500);3.修改题1创建的表,增加一列员工年龄empage,放在empname后ALTER TABLE emp_201911074 ADD COLUMN empage INT AFTER empname;4.修改题1创建表的数据,将 齐凌凌 的年龄设为50UPDATE emp_201911074 SET empage=50 WHERE empname='齐凌凌';5.修改题1创建表的数据,将 李飞 的年龄设为45UPDATE emp_201911074 SET empage=45 WHERE empname='李飞';6.修改题1创建表的数据,将 赵美琪 的年龄设为40UPDATE emp_201911074 SET empage=40 WHERE empname='赵美琪';7.修改题1创建表的数据,将 朱凯 的年龄设为35UPDATE emp_201911074 SET empage=35 WHERE empname='朱凯';8.修改题1创建表的数据,将工资较低的两名员工工资上调500,要求使用order by和limit语句UPDATE emp_201911074 SET salary=salary+500 ORDER BY salary LIMIT 2;9.修改题1创建表的数据,将年龄较大的两名员工工资上调800,要求使用order by和limit语句UPDATE emp_201911074 SET salary=salary+800 ORDER BY empage DESC LIMIT 2;10.修改题1创建表的数据,将性别“男”修改成“male”,“女”修改成“female”UPDATE emp_201911074 SET empgender='male' WHERE empgender='男';UPDATE emp_201911074 SET empgender='female' WHERE empgender='女';11.修改题1创建表的数据,按年龄上调所有人工资,每1岁增加10元,例如某员工50岁,那么工资就增加50*10一共500元UPDATE emp_201911074 SET salary=salary+empage*10;12.从题1创建的表中删除年龄大于50且工资大于10000的员工DELETE FROM emp_201911074 WHERE empage>50 AND salary>10000;
实验5-表约束
1. 创建院系表dept_201911074,包含院系编号dno,院系名dname,其中dno为主键,且院系名不能为空CREATE TABLE dept_201911074(dno INT PRIMARY KEY,dname VARCHAR(20) NOT NULL);2. 在院系表中插入两行数据dno dname1 计算机2 外语INSERT INTO dept_201911074 VALUES(1,'计算机'),(2,'外语');3. 创建教师表teacher_201911074,包含教师编号tno 主键,教师姓名tname 非空,教工身份证号 tid 唯一,教师性别tgender,教工年龄 tage,所属院系编号 deptidCREATE TABLE teacher_201911074(tno INT PRIMARY KEY,tname VARCHAR(20) NOT NULL,tid VARCHAR(18) UNIQUE,tgender VARCHAR(4),tage INT,deptid INT);4. 在表teacher_201911074的列deptid上增加外键约束,引用dept_201911074 表的dno列ALTER TABLE teacher_201911074 ADD FOREIGN KEY (deptid) REFERENCES dept_201911074(dno);5. 在教师表teacher_201911074 插入如下数据tno tname tid tgender tage deptid101 张潇 210204198008111234 男 40 1102 李大明 211220197809101235 女 42 2INSERT INTO teacher_201911074 VALUES(101,'张潇','210204198008111234','男',40,1),(102,'李大明','211220197809101235','女',42,2);6. 查询教师表teacher_201911074 上的约束SHOW CREATE TABLE teacher_201911074;7. 删除教师表teacher_201911074 上的外键约束ALTER TABLE teacher_201911074 DROP FOREIGN KEY teacher_201911074_ibfk_1;8.在教师表teacher_201911074 上增加外键约束,当院系表dept_201911074 修改主键列值时级联更新教师表teacher_201911074,当院系表dept_201911074删除数据时将教师表teacher_201911074中对应教师的所属院系编号置成null。ALTER TABLE teacher_201911074 ADD FOREIGN KEY (deptid) REFERENCES dept_201911074(dno)ON UPDATE CASCADEON DELETE SET NULL;
实验6-单表数据查询
基于如下员工表:
eid员工编号 | ename员工姓名 | age年龄 | startdate入职日期 | gender性别 | salary工资 | dname所属部门 |
---|---|---|---|---|---|---|
101 | 王明 | 30 | 2012-07-10 | 男 | 4800 | 财务 |
102 | 李飞 | 30 | 2012-07-31 | 男 | 4800 | 财务 |
103 | 朱启亮 | 35 | 2008-10-01 | 男 | 6000 | 后勤 |
104 | 朱菲菲 | 36 | 2009-07-01 | 女 | 5800 | 后勤 |
105 | 李丽 | 2012-01-01 | 女 | 5000 | 财务 | |
106 | 李晓 | 45 | 1998-07-01 | 男 | 9000 | 财务 |
CREATE TABLE emp_201911074(eid INT PRIMARY KEY,ename VARCHAR(20),age INT,startdate DATETIME,gender VARCHAR(10),salary INT,dname VARCHAR(20));INSERT INTO emp_201911074 VALUES(101,'王明',30,'2012-07-10','男',4800,'财务'),(102,'李飞',30,'2012-07-31','男',4800,'财务'),(103,'朱启亮',35,'2008-10-01','男',6000,'后勤'),(104,'朱菲菲',36,'2009-07-01','女',5800,'后勤'),(105,'李丽',NULL,'2012-01-01','女',5000,'财务'),(106,'李晓',45,'1998-07-01','男',9000,'财务');1. 查询所有员工信息SELECT * FROM emp_201911074;2. 查询所有姓李的员工姓名、所属部门和工资SELECT ename,dname,salary FROM emp_201911074 WHERE ename LIKE '朱%';3. 查询工资介于5000~8000的员工信息SELECT * FROM emp_201911074 WHERE salary BETWEEN 5000 AND 8000;4. 查询财务部门的男员工信息SELECT * FROM emp_201911074 WHERE dname='财务' AND gender='男';5. 查询2000年前入职的员工信息SELECT * FROM emp_201911074 WHERE startdate<'2000-01-01';6. 查询后勤部门年龄低于40的女员工信息SELECT * FROM emp_201911074 WHERE dname='后勤' AND age<40 AND gender='女';7. 查询男员工中工资较高的两个员工信息SELECT * FROM emp_201911074 WHERE gender='男' ORDER BY salary DESC LIMIT 2;8. 查询员工信息,按工资从高到低排序,分页显示,每页显示5行,写出显示第一页数据的语句SELECT * FROM emp_201911074 ORDER BY salary DESC LIMIT 0,5;9. 统计员工人数、最高工资、最低工资和平均工资SELECT COUNT(*),MAX(salary),MIN(salary),AVG(salary) FROM emp_201911074;10. 统计每个部门的员工人数、最高工资、最低工资和平均工资SELECT COUNT(*),MAX(salary),MIN(salary),AVG(salary) FROM emp_201911074 GROUP BY dname;11. 统计每个部门工资大于5000的员工人数、最高工资、最低工资和平均工资SELECT COUNT(*),MAX(salary),MIN(salary),AVG(salary) FROM emp_201911074 WHERE salary>5000 GROUP BY dname;12. 统计每个姓氏的人数(使用substr函数取姓名中的姓)SELECT SUBSTR(ename,1,1),COUNT(*) FROM emp_201911074 GROUP BY SUBSTR(ename,1,1);13. 按入职年份统计人数(使用year函数取入职日期中的年份)SELECT YEAR(startdate),COUNT(*) FROM emp_201911074 GROUP BY YEAR(startdate);14. 统计每个姓氏的人数,显示人数大于2人的姓氏和人数SELECT SUBSTR(ename,1,1),COUNT(*) FROM emp_201911074 GROUP BY SUBSTR(ename,1,1) HAVING COUNT(*)>2;
实验7-连接查询和子查询
基于部门表dept和员工表emp完成题目
部门表 dept
字段 | 类型 | 说明 |
---|---|---|
dno | int | 部门编号,主键 |
dname | varchar(30) | 部门名称 |
员工表 emp
字段名 | 类型 | 说明 |
---|---|---|
eno | int | 员工编号,主键 |
ename | varchar(20) | 姓名 |
eage | int | 年龄 |
egender | varchar(10) | 性别 |
salary | int | 工资 |
dno | int | 部门编号,外键,引用dept(dno) |
CREATE TABLE dept(dno INT PRIMARY KEY,dname VARCHAR(20));CREATE TABLE emp(eno INT PRIMARY KEY,ename VARCHAR(20),eage INT,egender VARCHAR(20),salary INT,dno INT,FOREIGN KEY(eno) REFERENCES dept(dno));INSERT INTO dept VALUES(1,'财务'),(2,'研发'),(3,'销售');INSERT INTO emp VALUES(101,'李敏', 30,'男',3000,1),(102,'赵一铭',32,'男',3500,1),(103,'李巧凤',40,'女',4000,1); INSERT INTO emp VALUES(104,'朱阳爱',45,'男',5500,1),(105,'蔡敏敏',40,'女',4500,1),(106,'吴大刚',42,'男',4800,1); INSERT INTO emp VALUES(107,'王晓红',36,'女',4000,1),(108,'滕格格',48,'男',6000,1),(109,'朱琳娜',55,'女',8000,1); INSERT INTO emp VALUES(201,'郑琦', 40,'男',5000,2),(202,'牟琦', 50,'男',6000,2),(203,'杨薇', 52,'女',7000,2); INSERT INTO emp VALUES(204,'张鸿鹄',26,'男',3000,2),(205,'李丽', 30,'女',3500,2),(206,'赵曼莎',35,'女',4200,2); INSERT INTO emp VALUES(301,'赵鹏', 28,'男',3000,3),(302,'李丽芬',45,'女',5000,3),(303,'朱琳琳',50,'女',7000,3);1. 查询员工信息,要求输出 员工编号、姓名、性别、年龄以及所在部门名称SELECT eno,ename,egender,eage,dname FROM emp,dept WHERE dept.dno=emp.dno;2. 查询每个部门的信息,输出信息包括部门名称、员工人数、工资总额、最大工资、最小工资和平均工资SELECT dname,COUNT(eno),COUNT(salary),MAX(salary),MIN(salary),AVG(salary) FROM emp,dept WHERE dept.dno=emp.dno GROUP BY dname;3. 统计每个部门不同性别人数,输出信息包括部门名称、性别、人数SELECT dname,egender,COUNT(eno) FROM emp,dept WHERE dept.dno=emp.dno GROUP BY dname,egender;4. 查询每个部门的最小员工年龄,输出信息包括部门名称、最小年龄SELECT dname,MIN(eage) FROM emp,dept WHERE dept.dno=emp.dno GROUP BY dname;5. 查询每个部门每种性别的最小员工年龄,输出信息包括部门名称、最小年龄SELECT dname,MIN(eage) FROM emp,dept WHERE dept.dno=emp.dno GROUP BY dname,egender;6. 查询年龄大于所有员工平均年龄的员工信息,要求输出 员工编号、姓名、性别、年龄SELECT eno,ename,egender,eage FROM emp WHERE eage>(SELECT AVG(eage) FROM emp);7. 查询年龄最小的员工信息,要求输出 员工编号、姓名、性别、年龄SELECT eno,ename,egender,eage FROM emp WHERE eage=(SELECT MIN(eage)FROM emp);8. 查询年龄最小的员工信息,要求输出员工编号、姓名、性别、年龄以及所在部门名称SELECT eno,ename,egender,eage,dname FROM emp,dept WHERE dept.dno=emp.dno ANDeage=(SELECT MIN(eage)FROM emp);9. 查询每个部门年龄最小的员工信息,要求输出 员工编号、姓名、性别、年龄和所属部门编号SELECT eno,ename,egender,eage,dno FROM emp e WHERE eage=(SELECT MIN(eage) FROM emp WHERE dno=e.dno);10. 查询每个部门年龄最小的员工信息,要求输出员工编号、姓名、性别、年龄以及所在部门名称SELECT eno,ename,egender,eage,dname FROM emp e,dept d WHERE e.dno=d.dno AND eage=(SELECT MIN(eage) FROM emp WHERE dno=e.dno);
实验8-索引和视图
基于部门表dept和员工表emp完成题目
部门表 dept
字段 | 类型 | 说明 |
---|---|---|
dno | int | 部门编号,主键 |
dname | varchar(30) | 部门名称 |
员工表 emp
字段名 | 类型 | 说明 |
---|---|---|
eno | int | 员工编号,主键 |
ename | varchar(20) | 姓名 |
eage | int | 年龄 |
egender | varchar(10) | 性别 |
salary | int | 工资 |
dno | int | 部门编号,外键,引用dept(dno) |
CREATE TABLE dept(dno INT PRIMARY KEY,dname VARCHAR(20));CREATE TABLE emp(eno INT PRIMARY KEY,ename VARCHAR(20),eage INT,egender VARCHAR(20),salary INT,dno INT,FOREIGN KEY(dno) REFERENCES dept(dno));INSERT INTO dept VALUES(1,'财务'),(2,'研发'),(3,'销售');INSERT INTO emp VALUES(101,'李敏', 30,'男',3000,1),(102,'赵一铭',32,'男',3500,1),(103,'李巧凤',40,'女',4000,1); INSERT INTO emp VALUES(104,'朱阳爱',45,'男',5500,1),(105,'蔡敏敏',40,'女',4500,1),(106,'吴大刚',42,'男',4800,1); INSERT INTO emp VALUES(107,'王晓红',36,'女',4000,1),(108,'滕格格',48,'男',6000,1),(109,'朱琳娜',55,'女',8000,1); INSERT INTO emp VALUES(201,'郑琦', 40,'男',5000,2),(202,'牟琦', 50,'男',6000,2),(203,'杨薇', 52,'女',7000,2); INSERT INTO emp VALUES(204,'张鸿鹄',26,'男',3000,2),(205,'李丽', 30,'女',3500,2),(206,'赵曼莎',35,'女',4200,2); INSERT INTO emp VALUES(301,'赵鹏', 28,'男',3000,3),(302,'李丽芬',45,'女',5000,3),(303,'朱琳琳',50,'女',7000,3);1. 查看部门表dept有哪些索引。SHOW INDEX FROM dept;2. 查看员工表emp有哪些索引。SHOW INDEX FROM emp;3. 在员工表emp的年龄列eage上增加一个索引emp_eage_idx(要求使用alter table语句进行增加)ALTER TABLE emp ADD INDEX emp_eage_idx(eage);4. 在员工表emp的姓名列ename上增加一个索引emp_ename_idx(要求使用create index语句进行增加)CREATE UNIQUE INDEX emp_ename_idx ON emp(ename);5.删除员工表emp上外键约束ALTER TABLE emp DROP FOREIGN KEY emp_ibfk_1;6.删除员工表emp的dno列上的索引ALTER TABLE emp DROP INDEX emp_ename_idx;7.创建视图v1,显示员工中年龄大于40的男员工姓名CREATE VIEW v1 AS SELECT ename FROM emp WHERE egender='男' AND eage>40;8.创建视图v2,显示员工中工资较高的前3名女员工信息CREATE VIEW v2 AS SELECT * FROM emp WHERE egender='女' ORDER BY salary DESC LIMIT 3;9.创建视图v3,显示工资最低的员工信息CREATE VIEW v3 AS SELECT * FROM emp WHERE salary=(SELECT MIN(salary) FROM emp);10.创建视图v4,显示男员工中年龄最小的员工信息CREATE VIEW v4 AS SELECT * FROM emp WHERE egender='男' and eage=(SELECT MIN(eage) FROM emp);11.创建视图v5,显示每个部门工资最高的员工姓名、工资和所在部门名CREATE VIEW v5 AS SELECT ename,salary,dname FROM emp e,dept d WHERE e.dno=d.dno AND eage=(SELECT Max(salary) FROM emp WHERE dno=e.dno);12.删除视图v1、v2、v3、v4、v5DROP VIEW v1,v2,v3,v4,v5;
实验9-内置函数
基于员工表emp完成测试题目
字段名 | 类型 | 说明 |
---|---|---|
eno | int | 员工编号,主键 |
ename | varchar(20) | 姓名 |
eage | int | 年龄 |
startdate | datetime | 入职日期 |
egender | varchar(10) | 性别 |
salary | int | 工资 |
dname | int | 部门名称 |
CREATE TABLE emp(eno INT PRIMARY KEY,ename VARCHAR(20),eage INT,startdate DATETIME,egender VARCHAR(20),salary INT,dname VARCHAR(20));INSERT INTO emp VALUES(101,'王 明',30,'2012-07-10','男',4800,'财务'),(102,'李 飞',30,'2012-07-31','男',4800,'财务'),(103,'朱启亮',35,'2008-10-01','男',6000,'后勤'),(104,'朱菲菲',36,'2009-07-01','女',5800,'后勤'),(105,'李 丽',NULL,'2012-01-01','女',5000,'财务'),(106,'李 晓',45,'1998-07-01','男',9000,'财务');1.查询姓名长度超过10个字符的员工信息。SELECT * FROM emp WHERE CHAR_LENGTH(ename)<10;2.查询入职年份是2012年的员工信息。SELECT * FROM emp WHERE YEAR(startdate)=2012;3.将员工姓名中的空格去掉UPDATE emp SET ename=REPLACE(ename,' ','');4.查询员工编号是101的姓氏SELECT SUBSTR(ename,1,1)FROM emp WHERE eno=101;5.查询员工姓名、所属部门以及工龄SELECT ename,dname,FLOOR(DATEDIFF(NOW(),startdate)/365)FROM emp;6.修改员工表增加工龄列workageALTER TABLE emp ADD COLUMN worage INT;7.计算每个员工工龄并更新到workage列UPDATE emp SET worage=FLOOR(DATEDIFF(NOW(),startdate)/365) WHERE eno=eno;8.查询入职月份是1~6月的员工信息SELECT * FROM emp WHERE MONTH(startdate) BETWEEN 1 AND 6;9.查询入职月份正好是本月的员工信息SELECT * FROM emp WHERE MONTH(startdate)=MONTH(NOW());10.查询入职日期恰好是当时月末的员工信息SELECT * FROM emp WHERE LAST_DAY(startdate)=DATE(startdate);
实验10-过程函数
1.编写一个函数func_add_201911074,完成两个数相加,函数带两个输入参数(相加的两个数),返回值返回两个数的和。DELIMITER $$DROP FUNCTION IF EXISTS func_add_201911074$$CREATE FUNCTION func_add_201911074(m INT,n INT) RETURNS INTDETERMINISTICBEGINRETURN m+n;END $$DELIMITER ;SELECT func_add_201911074(1,2);2.编写一个函数func_jc_201911074,函数带1个输入参数n,返回值为1~n的累乘积。DELIMITER$$DROP FUNCTION IF EXISTS func_jc_201911074$$CREATE FUNCTION func_jc_201911074(n INT)RETURNS INT DETERMINISTICBEGINDECLARE r INT DEFAULT 1;WHILE n>0 DOSET r=r*n;SET n=n-1;END WHILE;RETURN r;END$$DELIMITER ;SELECT func_jc_201911074(4);3.编写一个存储过程sp_add_201911074,完成两个数相加,过程带两个输入参数(相加的两个数),一个输出参数(两个数的和,输出参数定义时在参数名前添加关键字OUT)。DELIMITER$$DROP PROCEDURE IF EXISTS sp_add_201911074$$CREATE PROCEDURE sp_add_201911074(m INT,n INT,OUT r INT)BEGINSET r=m+n;END$$DELIMITER ;CALL sp_add_201911074(4,5,@r);SELECT @r;
4.编写一个存储过程sp_split,完成文件全路径名的拆分,函数带一个输入参数(全路径文件名,比如“c:\doc\course\db\text.txt”),两个输出参数分别返回路径和文件名(“c:\doc\course\db”, “text.txt”)。
实验11-触发器
1.假设表CREATE TABLE emp(id INT,NAME VARCHAR(20),salary INT,dname VARCHAR(20),startdate DATE);编写一个触发器emp_trig,当在表上执行insert时触发器被触发,插入员工数据时根据入职年份以及入职顺序自动生成员工编号id。INSERT INTO emp VALUES(NULL,'张三',5000,'财务','2020-10-01'),(2,'张三峰',6000,'财务','2020-6-01'),(23,'张四峰',8000,'财务','2001-6-20');触发器会根据入职日期取入职年份2020,如果是2020年入职的第一个员工,则员工编号为2020001DELIMITER $$DROP TRIGGER IF EXISTS emp_trig$$CREATE TRIGGER emp_trigBEFORE INSERT ON emp FOR EACH ROWBEGINDECLARE maxid INT;SELECT IFNULL(MAX(id),YEAR(new.startdate)*1000)+1 INTO maxid FROM emp WHERE YEAR(startdate)=YEAR(new.startdate);SET new.id=maxid;END$$DELIMITER ;SELECT * FROM emp;SHOW CREATE TRIGGER emp_trig;2.创建一个事件,每月月末最后一天的晚上23点59分59秒运行一次,清除日志表log中的三个月前的数据。CREATE TABLE applog(msgdate DATE,msg VARCHAR(100));INSERT INTO applog VALUES('2019-06-01','this is test log message.'),('2020-08-01','this is test log message.'),('2020-09-01','this is test log message.'),('2020-10-01','this is test log message.');DELIMITER$$DROP EVENT IF EXISTS clearlog$$CREATE EVENT clearlog ON SCHEDULE EVERY 1 MONTH STARTS '2020-12-31 23:59:59' DOBEGINDELETE FROM applog WHERE msgdate<ADDDATE(NOW(),INTERVAL -3 MONTH);END $$DELIMITER ;SELECT * FROM applog;
【数据库】之MYSQL基本语法相关推荐
- 达梦数据库与MySQL部分语法区别
达梦与MySQL部分语法的区别 前言: 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是8.0版本,简称DM8. DM8采用全新的 ...
- 达梦数据库和mysql的语法区别
1.达梦数据库select查询字段默认是全大写英文,可以给别名加上双引号" ",比如 select real_name as "realName" from u ...
- mysql中leave和_MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法
本文主要向大家介绍了MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. DELIMITER ...
- mysql数据库基本语法_[数据库]MySQL 基本语法
[数据库]MySQL 基本语法 0 2018-05-31 05:00:07 1.说明: 创建默认数据库 create database 库名; 2.说明: 创建指定字符编码的数据库 create da ...
- 【MySQL】Leetcode刷题--数据库(MySQL)常用的函数及语法
Leetcode数据库(MySQL)常用的函数 日期函数 datediff() date_format() TimeStampDiff() period_add() extract() 字符串操作 t ...
- mysql数据库写入数据的语法_mysql数据库插入数据语法
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- mysql 按日期删除数据库_DAY11 - MySQL入门(数据库的增、删、改、查 基本操作)...
一. 数据库的介绍 二. MySQL的基本语法 l 注释: 单行注释: #注释内容 单行注释: -- 注释内容(注意,两个"--"之后有一个空格) 多行注释: /*注释内容*/ l ...
- mysql数据库什么是事件_MySQL数据库之mysql 事件(Event) 总结
本文主要向大家介绍了MySQL数据库之mysql 事件(Event) 总结 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1 事件简介 事件(event)是MySQL在相应的时 ...
- 什么数据库比mysql效率高_牛x!一款比传统数据库快 100-1000 倍的数据库,来认识一下?...
一.ClickHouse 是什么? 二.业务问题 三.ClickHouse实践 四.遇到的坑 五.总结 一.ClickHouse 是什么?ClickHouse:是一个用于联机分析(OLAP)的列式数据 ...
- 7、恢复数据库(mysql命令)
当数据丢失或意外损坏时,可以通过恢复已经备份的数据来尽量减少数据的丢失和破坏造成的损失.本节主要介绍如何对备份的数据进行恢复操作. 使用 mysqldump 命令将数据库中的数据备份成一个文本文件,且 ...
最新文章
- 45 Ansible Play-books模式
- linux 烧写(1)
- 太阳能传感器目前主要故障问题解决方案
- 资深码农:拿下软件测试,只需掌握好这两种方法!
- php生成饼状图 柱形图,求一个饼状图或柱状图php生成类或例子
- 快码!数据可视化大屏设计必备步骤
- 生信技能树 电脑配置linux,生信技能树----Linux练习题答案
- 计算机未安装OCR应用程序,OCR使用的常见问题及解决(转载)
- 通过路由远程计算机重启,如何通过三种方式重启路由器
- 算法篇 干货!!!字母重排 打卡第七天
- 东方通TongWeb创建GBase数据库连接池
- 视频在线发布网站HTML模板分享
- MMS流媒体下载原理
- 云计算大数据学习中心作业2
- WorkNC如何创建夹具系统 (以虎钳为例)
- ALSA学习笔记 (1) ALSA 简介
- chrome报您的连接不是私密连接的解决办法之一一重置设置
- 捕鱼达人的算法猜测—较色碰撞算法
- java输出99乘法表
- mount 命令查看挂载系统
热门文章
- python3新式类_python 3新式类的多继承
- 进程和线程的区别,进程间通信方式,怎么选择比较好
- 自制STLinkV2.1
- app ui设计规范
- ecshop mysql 30秒_ecshop数据库字段说明汇总
- Vulkan_渲染可视化调试(VK_EXT_debug_marker与RenderDoc离线图形调试)
- HOUDINI 平面漩涡
- 长期存储在计算机内的有组织 可共享,()是长期存储在计算机内有序的、可共享的数据集合...
- jstl标签c:choose,c:when,c:otherwise用法
- pure virtual method called 纯虚函数被调用原理分析