自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 触发器的使用

优点:1、触发器可以确保数据的完整性。2、触发器可以帮助我们记录操作日志。3、触发器还可以用在操作数据前,对数据进行合法性检查。缺点:1、触发器最大的一个问题就是可读性差。2、相关数据的变更,可能会导致触发器出错。#触发器#准备工作CREATE DATABASE dbtest17;USE dbtest17;#创建触发器#建表CREATE TABLE test_trigger(id INT PRIMARY KEY AUTO_INCREMENT,t_note VARCHAR(3.

2022-04-26 16:26:29 419

原创 游标的使用

#游标的使用/* ① 声明游标 ② 打开游标 ③ 使用游标(从游标中获取数据) ④ 关闭游标*/#举例:创建存储过程“get_count_by_limit_total_salary()”,声明IN参数 limit_total_salary,#DOUBLE类型:声明OUT参数total_count,INT类型。函数的功能可以实现累加薪资最高的几个员工的薪资值#直到薪资总和达到limit_total_salary参数的值,返回累加的人数给total_countUSE dbtest16;.

2022-04-25 09:46:43 835

原创 LEAVE 和 ITERATE 的使用

LEAVE的使用DELIMITER //CREATE PROCEDURE leave_begin (IN num INT)begin_label:BEGIN IF num <= 0 THEN LEAVE begin_label; ELSEIF num=1 THEN SELECT AVG(salary) FROM employees; ELSEIF num=2 THEN SELECT MIN(salary) FR

2022-04-24 15:38:11 240

原创 流程控 制

流程控制分支结构之IF分支结构之CASE循环结构之LOOP循环结构之WHILE循环结构之REPEAT分支结构之IF#分支结构IF的使用#举例DELIMITER //CREATE PROCEDURE test_if()BEGIN #情况1 #声明局部变量 #DECLARE stu_name VARCHAR(15); #IF stu_name IS NULL #THEN SELECT 'stu_name is null'; #END IF;

2022-04-24 14:47:50 235

原创 存储过程与存储函数

#存储过程与存储函数 #创建存储过程 CREATE DATABASE dbtest15; USE dbtest15; CREATE TABLE employees AS SELECT * FROM atguigudb.`employees`; CREATE TABLE departments AS SELECT * FROM atguigudb.`departments`; SELECT * FROM employees; SELECT * FROM d...

2022-04-22 14:16:46 48

原创 视图的基本语法

#视图/*1、视图的理解① 视图,可以看做是一个虚拟表,本身不存储数据。视图的本质,就可以看做是存储起来的SELECT语句② 视图中SELECT语句涉及到的表,称为基表③ 针对视图做DML操作,会影响到对应基表中的数据,反之亦然④视图本身的删除,不会导致基表中的数据的删除⑤ 视图的应用场景:针对与小型项目,不推荐使用视图。针对大型项目,可以考虑使用视图。⑥ 视图的优点:简化查询;控制数据的访问*/#如何创建视图#准备工作CREATE DATABASE dbtest14;USE

2022-04-22 10:39:57 639

原创 数据完整性和约束的分类

约束一、**约束的概述**二、约束的分类not null (非空约束)unique (唯一性约束)primary key(主键约束)foreign KEY (外键约束)check (检查约束)default(默认值约束)一、约束的概述1.为什么需要约束数据完整性是指数据的精确性和可靠性。它是防止数据库 中存在不符合 语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。①实体完整性:例如,同一个表中,不能存在两条完全相同无法区分的记录。②域完整性:例如,年龄范围0-120,性别范

2022-04-19 09:58:33 1023

原创 MySQL 数据类型精讲

整数类型浮点类型定点类型

2022-04-18 14:06:45 311

原创 数据处理之增删改

#数据处理之增删改USE atguigudb;CREATE TABLE IF NOT EXISTS emp1(id INT,`name` VARCHAR(15),hire_date DATE,salary DOUBLE(10,2));DESC emp1;SELECT *FROM emp1;#1、添加数据#方式一:一条一条的添加数据#①INSERT INTO emp1 VALUES (1,'Tom','2000-12-21',3400);#一定要按照声明的字段的先后顺序添

2022-04-17 20:19:08 51

原创 创建和管理表的课后练习

#创建和管理表的课后练习#练习1:创建数据库test01_office,指明字符集为utf8.并在此数据库下执行下述操作CREATE DATABASE IF NOT EXISTS test01_office CHARACTER SET 'utf8';USE test01_office;#2:创建表 dept01/*字段 类型id INT(7)NAME VARCHAR(25)*/CREATE TABLE dept01(id INT(7),NAME

2022-04-16 09:37:57 223

原创 DCL 中COMMIT和ROLLBACK的使用

#DCL 中COMMIT和ROLLBACK的使用#COMMIT:提交数据.一旦执行,则数据就永远的保存在数据库中,意味着数据不能回滚#ROLLBACK:一旦执行,则可以实现数据的回滚.回滚到最近的一次COMMIT之后#对比TRUNCATE TABLE 和DELETE FROM#相同点:都可以实现对表中所有数据的删除,同时保留表结构#不同点:TRUNCATE TABLE:一旦执行,表数据全部清除同时不能回滚# DELETE FROM :一旦执行,表数据可以全部清除(不带WHERE),同时

2022-04-14 19:47:44 366

原创 修改表、重命名表、删除表、清空表

#修改表、重命名表、删除表、清空表#修改表 --->ALTER TABLEDESC myempl1;#添加一个字段ALTER TABLE myemplADD salary DOUBLE(10,2);#默认添加到最后一个字段的位置ALTER TABLE myemplADD phone_number VARCHAR(20) FIRST;ALTER TABLE myemplADD email VARCHAR(45) AFTER emp_name;#修改一个字段:数据类型,长度,默认值

2022-04-14 19:13:29 129

原创 常见的数据类型、创建表的两种方式

1、#如何创建数据表USE atguigudb;SHOW CREATE DATABASE atguigudb;SHOW TABLES;#1 CREATE TABLE IF NOT EXISTS myempl( # 需要用户具有创建表的权限 id INT, emp_name VARCHAR(15), #使用varchar 必须指明其长度 hire_date DATE ); #查看表结构 DESC myempl; SHOW CREATE TABLE myempl; #如果创建表时没有

2022-04-14 14:51:45 316

原创 数据库的创建,修改和删除

#数据库的创建,修改和删除#1、创建和管理数据库#1CREATE DATABASE mytest1;SHOW DATABASES;#2:显示了指明了要创建的数据库的字符集CREATE DATABASE mytest2 CHARACTER SET 'utf8' ;SHOW DATABASES;#3(推荐):如果要创建的数据库已经存在,则创建不会成功,但不会报错CREATE DATABASE IF NOT EXISTS mytest2 CHARACTER SET 'utf8';#3(推.

2022-04-12 12:04:08 1036

原创 子查询课后练习

#子查询的课后练习#查询和Zlotkey相同部门的员工部门和工资SELECT last_name,salaryFROM employeesWHERE department_id IN ( SELECT department_id FROM employees WHERE last_name = 'Zlotkey' );#选择工资大于所有JOB_ID = ‘SA_MAN’的员工的工资的员工的la

2022-04-12 09:53:19 168

原创 相关的子查询

#相关子查询案例分析#查询员工中工资大于本部门平均工资的员工的last_name,salary和其department_idSELECT last_name,salary,department_idFROM employees e1WHERE salary > ( SELECT AVG(salary) FROM employees e2 WHERE department_id = e1.`department_id` );#查.

2022-04-11 16:01:18 56

原创 多行子查询

1、多行操作符#多行子查询#操作符: IN ANY ALL SOME(同ANY)#INSELECT employee_id,last_nameFROM employeesWHERE salary IN ( SELECT MIN(salary) FROM employees GROUP BY department_id );#ANY/ALLSELECT employee_id,last_name,job_id,sala

2022-04-11 15:17:43 441

原创 单行子查询

#单行子查询#单行操作符: = != > >= < <=#子查询的编写技巧(步骤):1、从里往外写 2、从外往里写#查询工资大于149号员工工资的员工信息SELECT employee_id,last_name,salaryFROM employeesWHERE salary>( SELECT salary FROM employees WHERE employee_id=149 );#返回job

2022-04-10 16:09:23 43

原创 子 查 询

1、子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQl4.1开始引入。SQL中子查询的使用大大增强了SELECT查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是个标量,也可能是某个集合)进行比较。...

2022-04-10 15:32:43 558

原创 聚合函数课后练习

#聚合函数的课后练习#where 子句可否使用组函数进行过滤NO!#查询公司员工工资的最大值,最小值,平均值,总和 SELECT MAX(salary) max_sal,MIN(salary) min_sal,AVG(salary) avg_sal,SUM(salary) sum_salFROM employees;#查询各job_id的员工工资的最大值,最小值,平均值,总和SELECT job_id,MAX(salary),MIN(salary),AVG(salary),SUM(salary

2022-04-09 15:02:07 95

原创 常用的聚合函数

1、什么是聚合函数?聚合函数作用于一组函数,并对一组数据返回一个值。2、常用的聚合函数类型-AVG()-SUM()-MAX() -MIN() -COUNT()#聚合函数#常见的几个聚合函数#AVG / SUM 只适用于数值类型的字段(变量)SELECT AVG(salary),SUM(salary),AVG(salary)*107FROM employees;#如下的操作没有意义SELECT SUM(last_name),AVG(last_name),SUM(hire_date)F

2022-04-07 16:54:37 4167

原创 单行函数课后练习

#单行函数课后练习#查询系统时间(注:日期+时间)SELECT NOW(),SYSDATE()FROM DUAL;#查询员工号,姓名,工资以及工资提高百分之二十的结果SELECT employee_id,last_name,salary,salary * 1.2 "new salary"FROM employees;#将员工的姓名按首字母排序,并写出姓名的长度SELECT last_name,LENGTH(last_name)FROM employeesORDER BY last_nam

2022-04-06 10:13:44 95

原创 流程控制函数

#流程控制函数#IF(VALUE,VALUE1,VALUE2)SELECT last_name,salary,IF(salary>=6000,'高工资','低工资')FROM employees;SELECT last_name,commission_pct,IF(commission_pct IS NOT NULL,commission_pct,0)"details"salary * 12 * (1 + IF(commission_pct IS NOT NULL,commission_

2022-04-06 09:30:51 123

原创 日期和时间函数

#日期和时间函数#获取日期,时间SELECT CURDATE(),CURRENT_DATE(),CURTIME(),NOW(),SYSDATE(),UTC_DATE(),UTC_TIME()FROM DUAL;#日期与时间戳的转换SELECT UNIX_TIMESTAMP(),UNIX_TIMESTAMP('2021-10-01 12:12:32'),FROM_UNIXTIME(163517853),FROM_UNIXTIME(1633061552)FROM DUAL;#获取月份,星..

2022-04-04 11:24:32 46

原创 字符串函数

代码忘记保存

2022-04-03 23:44:24 167

原创 单行函数。。

角度与弧度互换函数#单行函数#数值函数SELECT ABS(-123),ABS(32),SIGN(-23),SIGN(43),PI(),CEIL(32.32),CEILING(-43.23),FLOOR(32.32),FLOOR(-43.23),MOD(12,5)FROM DUAL;#取随机数SELECT RAND(),RAND(),RAND(10),RAND(10),RAND(-1),RAND(-1)FROM DUAL;#四舍五入SELECT ROUND(123.556),ROUND

2022-04-03 22:57:32 159

原创 NATURAL JOIN 和 USING的使用

1、自然连接:可以理解为等值连接,它会帮你自动查询两张连接表中所有相同的字段,然后进行等值连接#SQL99语法的新特性1:自然连接SELECT employee_id,last_name,department_nameFROM employees e JOIN departments dON e.`department_id` = d.`department_id`AND e.`manager_id` = d.`manager_id`;#在SQL99中可以写成:SELECT employee_

2022-04-03 08:49:08 153

原创 SQL99实现七种JOIN操作

#UNION UNION ALL 的使用#UNION 会执行去重操作#UNION All 不会执行去重操作#中图:内连接SELECT employee_id,department_nameFROM employees e JOIN departments dON e.`department_id` = d.`department_id`;#左上图:左外连接SELECT employee_id,department_nameFROM employees e LEFT JOIN depa.

2022-04-02 16:04:06 44

原创 内连接与外连接

#多表查询的分类#等值连接 vs 非等值连接#非等值连接例子:SELECT *FROM job_grades;SELECT last_name,salary,grade_levelFROM employees e,job_grades j#WHERE e.`salary` BETWEEN j.`lowest_sal` AND j.`highest_sal`;WHERE e.`salary` >= j.`lowest_sal` AND e.`salary` <= j.`highe

2022-04-02 15:39:00 32

原创 多表的实现

一。笛卡尔积(交叉连接):笛卡尔乘积就是一个数学运算。假设我有两个集合X和Y,那么X和Y的笛卡尔积就是X和Y的所有可能组合,也就是第一个对象来自于X,第二个对象来自于Y的所有可能性。组合个数即为两个集合中元素个数的乘积。笛卡尔积的错误会在以下条件中产生:①省略多个表的连接条件(或无关联条件)②连接条件(关联条件)无效③所有表中的所有行互相连接~~为了避免笛卡尔积,可以在WHERE加入有效的连接条件#多表查询如何实现#错误的实现方式:每个员工都与每个部门匹配了#错误原因:缺少了多表的连接条件

2022-04-02 09:31:26 49

原创 分页的练习

#分页的练习#查询员工的姓名和部门号和年薪,按年薪降序,按姓名升序显示SELECT last_name,department_id,salary *12 annual_salaryFROM employeesORDER BY annual_salary DESC,last_name ASC;#选择工资不在8000-17000的员工姓名和工资,按工资降序,显示第21到40位置的数据SELECT last_name,salaryFROM employeesWHERE salary NOT BE

2022-04-01 15:43:39 54

原创 分页的基本使用

#分页#使用limit实现数据分页#需求:每页显示20条记录,此时显示第一页SELECT employee_id,last_nameFROM employeesLIMIT 0,20;#第二页SELECT employee_id,last_nameFROM employeesLIMIT 20,20;#第三页SELECT employee_id,last_nameFROM employeesLIMIT 40,20;#需求:每页显示20条Jill,此时显示第pageNo页#公式:LI

2022-04-01 15:31:24 122

原创 简单的排序

#排序与分页#排序SELECT * FROM employees;#从高到低排序 ORDER BY#升序:ASC (ascend) 降序:DESC (descend)SELECT employee_id,last_name,salaryFROM employeesORDER BY salary DESC; #二级排序#department_id 降序,salary 升序SELECT employee_id,salary,department_idFROM employee.

2022-04-01 10:23:10 23

原创 位运算符的练习

#1.选择工资不在5000到12000的员工的姓名和工资SELECT last_name,salaryFROM employeesWHERE salary NOT BETWEEN 5000 AND 12000;#2.选择在20或50号部门的员工和部门号SELECT last_name,department_idFROM employeesWHERE department_id IN(20,50);#3.选择公司中没有管理者的员工姓名及job_idSELECT last_name,job

2022-04-01 09:49:23 80

原创 位运算符简单使用

#逻辑运算符 OR || AND && NOT ! XOR# OR ANDSELECT last_name,salary,department_idFROM employees#WHERE department_id =10 OR department_id =20;#WHERE department_id =10 AND department_id =20;WHERE department_id =50 AND salary > 6000;# NOTSEL

2022-04-01 09:24:32 27

原创 比较运算符②

#LEAST() \ GREATESTSELECT LEAST('g','b','t','m'),GREATEST('g','b','t','m')FROM DUAL;SELECT LEAST(first_name,last_name),LEAST(LENGTH(first_name),LENGTH(last_name))FROM employees;#BETWEEN. 条件下界..AND.条件上界 (查询条件1和条件2范围内的数据,包含边界)#查询工资在6000到8000的员工信息

2022-03-31 22:40:59 209

原创 比较运算符

1.等号运算符*等号运算符(=)判断等号两边的值、字符串或表达式是否相等,如果相等则返回1,不相等则返回0。在使用等号运算符时,遵循如下原则:-如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否相等。-如果等号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。-如果等号两边的值是一个整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。-如果等号两边的值、字符串或表达式中有一个为NULL,则比较结果为N.

2022-03-31 21:56:32 481

原创 算术运算符的运用

#运算符#1.算术运算符:+ - * / div % modSELECT 100,100+0,100-0,100+50,100+50-30,100+35.5,100-35.5FROM DUAL;#在SQL中,+ 没有连接的作用,就表示加法运算此时,会将字符串转换为是数值(隐式转换)SELECT 100+'1' #在java中,结果为1001FROM DUAL;SELECT 100+'a' # 此时将'a'看作0处理FROM DUAL;SELECT 100+NULL # NULL参

2022-03-31 21:16:14 109

原创 select练习

SELECT employee_id,last_name,salary *12 "ANNUAL SALARY"FROM employees;#计算12月的基本工资和奖金SELECT employee_id,last_name,salary * 12 * (1+IFNULL(commission_pct,0))"ANNUAL SALARY"FROM employees;#查询employees表中去除重复的job_id以后的数据SELECT DISTINCT job_idFROM employ

2022-03-31 20:31:10 63

原创 SELECT的基本语句(截图)

2022-03-31 18:01:24 49

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除