自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MYSQL基础小测试(九)

在存储过程中完成 sh_goods表中数据分页查询功能:创建一个名为 page_proc的存储过程,并为其设置传入的参数,参数分别为当前的页码数以及每页显示的最大记录数.获取分页的总记录数,并利用传递的参数计算总页数拼接分页的查询语句.根据传递的参数查询指定分页的记录,如第2页的记录.# 第1步:创建存储过程DELIMITER $$CREATE PROCEDURE page_proc(IN curp INT, IN per_page INT)BEGIN # 第2步:在此处完成数据编程E

2020-08-20 10:21:32 2027

原创 预处理SQL语句

所谓预处理指的就是将SQL语句中的关键字(如 SELECT…FROM…)与数据(如字段名,数据表名)分离,使得针对不同数据的相同SQL语句的执行开销更小,同时又可防止SQL注入的攻击**传统方式的SQL语句,**在执行时每条SQL都需要经过分析丶编译和优化的步骤。预处理方式则是利用客户端与服务器的二进制协议,预先编译一次客户端发送的SQL语句模板,然后再根据客户端发送给服务器相应数量的变量进行执行操作,并旦针对一条SQL语句模板可以执行多次,还无需考虑数据中含有未转义的SQI引号和分隔符字符.预处理语

2020-08-19 13:36:37 3182

原创 MySQL事件

1.事件的概述概念: MySQL中的事件,指的是在某个特定的时间根据计划让其自动完成指定的任务或每隔多长时间根据计划做一次指定的任务.功能:事件是由 MySQL提供的特殊事件调度程序执行与管理的,它适用于每隔一段时间就有固定需求的操作任务(如创建表,删除数据等)触发器与事件的区别:前者仅针对某个表产生的事件INSERT、 UPDATE、 DELETE)执行特定的任务,而后者是根据时间的推移触发设定的任务,并且操作对象可以是多张数据表.2.事件的基本操作MySQL中的事件是由事件调度器 Event

2020-08-18 08:55:37 820

原创 MYSQL触发器

1.触发器的概述触发器:可以看作是一种特殊类型的存储过程.触发器与存储过程的区别:存储过程使用时需要调用,而触发器是在预先定义好的事件(如INSERT、 DELETE等操作)发生时,才会被 MySQL自动调用创建触发器时需要与数据表相关联,当表发生特定事件(如 INSERT丶 DELETE等操作)时,就会自动执行触发器中提前预定好的SQL代码.功能:实现插入数据前,强制检验或转换数据等操作,或是在触发器中代码执彳错误后,撤销已执行成功的操作,保证数据的安全触发器在使用时的优点和缺点优点:优点:触

2020-08-17 08:28:44 379

原创 MySQL游标

1.游标的作用在数据库的管理过程中,通过前面学习的 SELECT语句仅能返回符合指定条件的结果集,但是没有办法对结果集中的数据进行下一行的检索或每次一条记录一条录的单独处理等.此时,就可以利用 MySQL提供的游标机制进行处理游标的本质是一种能从 SELECT结果集中每次提取一条记录的指针.它主要用于交互式的应用程序,用户可以根据需要浏览或修改结果集中的数据.\2.游标的操作流程游标在使用之前,必须通过定义,让其与指定的 SELECT语句相关联.目的就是确定游标要操作的 SELECT结果集对

2020-08-15 09:55:57 750

原创 MySQL流程控制

1.判断语句判断语句用于根据一些条件作出判断,从而决定执行指定的SQL语句.IFMySQL中提供了两种不同的语法,一种适用于SQL语句中的条件判断,另外种用于函数、存储过程等程序中实现复杂的SQL操作.IF(条件表达式,表达式1,表达式2)当条件表达式的值为TRUE时,则判断的结果返回表达式1的值,否则返回表达式2的值.条件表达式不能是与0或NUL进行比较的表达式.Select id,name From sh_goods Where If(score=5,score,0);利用语句判

2020-08-14 09:55:58 444

原创 MySQL变量

1.系统变量系统变量也可称为全局变量,指的就是 MySQL系统内部定义的变量,对所有MySQL客户端都有效.SHOW [GLOBAL | SESSION] VARIABLES [LIKE’ 匹配模式’ | WHERE 表达式]GLOBAL:显示全局系统变量值,当变量没有全局值时,则不显示任何值SESSION:默认的修饰符,可用 LOCAL替换,也可省略,用于显示当前连接中有效的系统可变值,如果变量没有会话值,则显示全局变量值.SHOW VARIABLES时不带任何条件则可以获取当前连接中系统所有有

2020-08-11 09:58:20 562

原创 MySQL存储过程

1.存储过程的概念对于SQL编程而言,存储过程是数据中的一个重要的对象,它是在大型数据库系统中一组为了完成特定功能的SQL语句集,在第一次使用经过编译后,再次调用就不需要重复编译,因此执行效率比较高。存储过程与函数的相同点在于,它们的目的都是为了可重复地执行数据库SQL语句的集合,并且都是经过一次编译后,后面再次需要时直接执行即可.存储过程与函数的不相同点有四个,具体如下.语法中实现的标识符不同,存储过程使用 PROCEDURE,函数为FUNCTION 。存储过程在创建时没有返回值,而函数在定义

2020-08-10 09:13:43 418

原创 MySQL函数(三)

2.自定义函数用户自定义函数,是由多条语句组成的语句块,每条语句都是一个符合语句定义规范的个体,需要语句结束符一一分号(????MYSQL一旦遇见语句结束符就会自动开始执行,但函数是一个整体,只有在被调用时才会被执行,那么在定义函数时就需要临时修改语句结束符。DELIMITER 新结束符号自定义函数新结束符号DELIMITER;CREATE FUNCTION函数名([参数名,数据类型, …])RETURNS 返回值类型[BEGIN]#函数体RETURN 返回值数据;#数据必须与结构中定义的

2020-08-08 14:17:27 419

原创 MySQL函数(二)

日期和时间函数修改时区的两种方式:方式1:临时修改,设置系统的临时变量SET time_zone =+‘8: 00’方式2:打开 my.ini,添加以下配置default-time_zone =’+‘8: 00’获取当前服务器的时间: MySQL提供的NOW()、 LOCALTIME()、CURRENT_TIMESTAMP(),LOCALTIMESTAMP()Select Now();获取更精确的时间,毫秒时间:Select Now(4);SYSDATE()函数与NOW()函数

2020-08-07 13:50:40 267

原创 MySQL函数(一)

1.内置函数函数:指的是一段用于完成特定功能的代码.使用函数时,只需关心函数的参数和返回值,就可以完成一个特定的功能.MySQL中的函数分类:内置函数,自定义函数

2020-08-06 10:23:31 376

原创 MySQL基础小测试(八)

请利用事务实现在用户下订单后,验证用户购买的商品数量是否超过了商品的库存量.商品订单表: sh_order_goods如果商品库存不足,则阻止订单创建.事务操作前,查看 sh_order_goods订单商品表开启事务在事务中执行操作回滚事务事务操作后,查看 sh_order_goods订单商品表#查看sh_order_goods订单商品表Select id,order_id,goods_id,goods_num From sh_order_goods;#开启事务Start Tran

2020-08-05 09:58:10 2861 2

原创 事务隔离级别

事务隔离级的意义:数据库是一个多用户的共享资源, MySQL允许多线程并发访问用户可以通过不同的线程执行不同的事务。为了保证这些事务之间不受影响,对事务设置隔离级是十分必要的。1.查看隔离级别#1.查看全局隔离级Select @@global.transaction_isolation;#2.查看当前会话中的隔离级Select @@session.transaction_isolation;#3.查看下一个事务的隔离级Select @@transaction_isolation;全局的隔

2020-08-03 10:35:28 215

原创 事务处理

1.事务的概念事务是针对数据库的一组操作,它可以由一条或多条SQL语句组成。举例:转账可以分为两部分来完成:转入和转出。只有这两个部分都完成才认为转账成功。A账户给B账户转账100元:A账户减少100元B账户增加100元.用SQL语句表达:#A帐户减少100元Update account Set money = money - 100 Where name = "A";#B帐户增加100元Update account Set money = money + 100 Where na

2020-08-02 08:59:11 400

原创 MySQL基础小测试(七)

视图的应用:商品属性视图查询出商品所属分类下的属性信息以及这些属性对应的属性值信息sh_view_attr:用于根据商品分类id查找所有属性信息sh_view_goods_attr:用于根据商品id查找所有属性信息Create View sh_view_attr As Select a.sort sort1,a.name attr1,b.sort sort2,b.name attr2,b.category_id From sh_goods_attr a Join sh_goods_attr .

2020-08-01 08:28:06 2483 1

原创 MySQL视图数据操作

1.添加数据使用insert语句实现通过视图向基本表添加数据:#创建视图Create View view_category As Select id,name From sh_goods_category;#添加数据Insert Into view_category Values(17,"图书");#查询添加后的数据Select id,name From sh_goods_category Where id=17;2.修改数据使用update语句通过视图修改基本表中的数据:#修改数

2020-07-31 09:36:59 1276

原创 MySQL视图管理

1.创建视图在多表上创建视图:#创建视图Create View view_goods_cate As Select g.id,g.name,c.name category_name From sh_goods Left Join sh_goods_category c On g.category_id=c.id;#查询视图Select * From view_goods_cate Limit 3;自定义列名称:#创建视图Create View view_goods_promo(s

2020-07-30 09:09:43 1067

原创 MySQL初识视图

1.视图的概念是从一个或多个表中导出来的表,它是一种虚拟存在的表,表的结构和数据都依赖于基本表.视图的使用演示:#1.选择数据库Use shoppe;#2.查询数据Select id,name,price,price*0.8 p From sh_goods Limit 3;#创建视图Create View view_goods AS Select id,name,price,price*0.8 p From sh_goods Limit 3;#查询视图Select * From v

2020-07-28 13:34:20 304

原创 MySQL基础小测试(六)

根据文字提示,完成用户创建丶修改丶密码设置以及权限授予等操作:为shop数据库创建一个可在"127.0.0" C类网络中的任何主机访问的同名用户shop,初始密码为123456。为shop数据库的同名用户设置首次登录重置密码.为shop数据库的同名用户密码重置为2c5-q8h。为shop数据库的同名用户授予查看 sh goods表信息的权限回收与shop数据库同名用户对 sh goods表信息的查询权限 Create User If Not Exists 'shoppe'@'127.0.0.

2020-07-27 09:57:32 3048 1

原创 MySQL权限管理

1.授予权限权限信息根据其作用范围,分别存储在mysq数据库中的不同数据表中.根据权限的操作内容可将权限大致分为数据权限丶结构权限以及管理权限.权限级别指的就是特权可以被应用在哪些数据库的内容中。GRANT 权限类型 [字段列表][,权限类型[字段列表]]…ON [目标类型] 权限级别 TO 账户名 [用户身份验证选项][,账户名[用户身份验证选项]]…[ REQUIRE 连接方式][WITH{ GRANT OPTION|资源控制选项}]权限类型:指的就是 SELE

2020-07-26 16:09:36 463

原创 MySQL用户管理

1.创建用户由于 MySQL中所有用户的信息都保存在 mysql.user表中.创建用户可以直接利用root用户登录 MySQL服务器后,向 mysql.user表中插入记录,但是在开发中为保证数据的安全,并不推荐使用此方式创建用户采用 MySQL提供的 CREATE USER语句创建用户.采用 MySQL提供的 GRANT语句创建用户,在讲解权限时讲解使用 CREATE USER语句每创建一个新用户,都会在 mysql. user表中添加一条记录,同时服务器会自动修改相应的授权表.该语句创建的

2020-07-25 14:58:12 400

原创 MySQL用户与权限概述

用户是数据库的使用者和管理者.MySQL通过用户的设置来控制数据库操作人员的访问与操作范围.服务器中名为mysq的数据库,用于维护数据库的用户以及权限的控制和管理MYSQL中的所有用户信息都保存在 mysql.user数据表中。展示 mysql.user表中常见的字段:1.客户端访问服务器的账号字段账号字段Host和User字段共同组成的复合主键用于区分 MySQL中的账户:User字段用于代表用户的名称.Host字段表示允许访问的客户端P地址或主机地址当Host的值为"*"时,

2020-07-24 10:00:44 447

原创 MySQL基础小测试(五)

根据 sh_goods_attr商品属性与 sh_goods_attr_value商品属性值表:查询id为6的分类所具有的属性信息,将属性按照层级并排显示。查询id为5的商品的所有属性信息,将属性名称和属性值并排显示。查询id为1的属性的所有子属性值。查询拥有属性值个数大于1的商品id和名称。Select a.sort sort1,a.name name1,b.sort sort2,b.name name2 From sh_goods_attr a Join sh_goods_attr b O

2020-07-23 09:55:42 4480

原创 MySQL外键约束

1.添加外键约束外键指的是在一个表中引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束,从而保证数据的一致性和完整性.被用的表称为主表引用外键的表称为从表[ CONSTRAINT symbol] FOREIGN KEY [index_name(index_ col_name,… REFERENCES tbl_name(index_col_name,…)[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION |SET DEFAULT

2020-07-22 10:28:38 1121

原创 MySQL子查询

子查询可以理解为,在一个SQL语句A( SELECT、 INSERT、 UPDATE等)中嵌入一个查询语句B,作为执行的条件或查询的数据源(代替FROM后的数据表)那么B就是子查询句,它是一条完整的SELECT语句,能够独立的执行。在含有子查询的语句中,子查询必须书写在圆括号()内.SQL语句首先会执行子查询中的语句.然后再将返回的结果作为外层SQL语句的过滤条件.当遇到同一个SQL语句中含有多层子查询时,它们执行的顺序是从最里层的子査询开始执行.子查询的划分方式有多种,最常见的是以功能和位置进行

2020-07-21 08:22:03 460

原创 MySQL多表查询

1.联合查询联合查询是多表查询的一种方式,在保证多个 SELECT语句的查询字段数相同的情况下,合并多个查询的结果.SELECT… UNION [ALL | DISTINCT] SELECT…[UNION [ALL | DISTINCT] SELECT… ];UNION是实现联合查询的关键字.ALL表示保存所有的查询结果.DISTINCT是默认值,可以省略,表示去除完全重复的记录.以联合查询的方式获取 category_id为6和9的商品信息:USE shop;Select id,name

2020-07-20 08:39:55 1092

原创 MySQL基础小测试(四)

根据商品表( sh_goods)与商品评论表( sh_goods_comment):查询商品id等于8且有效的评论内容.查询每个用户评论的商品数量.查询最新发布的5条有效商品评论信息.查询评论过两种以上不同商品的用户id及对应的商品id查询没有任何评论信息的商品d和name查询商品评分为5星的商品评论信息.Select id,content From sh_goods_comment Where goods_id=8 and is_show=1;Select user_id,count(

2020-07-19 15:06:58 6752 1

原创 MySQL运算符

1.算术运算符适用于数值类型的数据,通常应用在 SELECT查询结果的字段中使用。1.运算符两端的数据可以是真实的数据(如5),或数据表中的字段(如price)2.参与运算的数据一般称之为操作数,操作数与运算符组合在一统称为表达式(如5+2)3.在 MySQL中可以直接利用 SELECT査看数据的运算结果.无符号的加减乘法运算运算符+,-和*的操作数都是无符号整型,则运算结果也是无符号整型.Select id,id+1,id-1,id*2 From sh_goods Limit 5;

2020-07-18 13:27:34 594

原创 MySQL分组与聚合函数

分组操作的目的:就是为了统计.分组的关键字: GROUP BY.分组筛选:用 HAVING进行条件筛选.常见的分组:分组统计,分组排序,多分组统计,回溯统计、统计筛选.分组统计 :查询时在 WHERE条件后添加 GROUP BY即可进行分组统计SELECT [select选项] 字段列表 FROM 数据表名 [WHERE 条件表达式] GROUP BY 字段名;通过聚合函数MAX()获取每个分类下商品的最高价格Select category_id,max(price) Fr.

2020-07-17 10:09:50 1079

原创 MySQL排序与限量

1.排序单字段排序指的是查询时仅按照一个指定字段进行升序或降序排序。SELECT * |{字段列表} FROM 数据表名 ORDER BY字段名【ASC|DESC】;ASC表示升序,DESC表示降序ORDER BY默认值为ASCSelect id,name,price From sh_goods Order By price Desc;多字段排序指的是查询时按照指定的多个字段进行升序或降序排序。SELECT * |{字段列表} FROM 数据表名 ORDER BY字段名1

2020-07-16 08:14:27 798 1

原创 数据操作

1.复制表的结构和数据复制表结构CREATE【 TEMPORARY】 TABLE【 IF NOT EXISTS】表名 {LKE旧表名|(LlKE旧表名)}从“旧表名”中复制一份相同的表结构,但不会复制表中保存的数据。“{}”表示语法在使用时可以任选其中一种,“|”表示或的意思。复制表数据INSERT【INTO】数据表名1【(字段列表)】SELECT【(字段列表)】FROM数据表名2;丛 sh_goods表中复制数据到 my_goods表中:#选择数据库#Use shop;#复制

2020-07-15 13:58:00 697

原创 TRUNCATE操作与 DELETE语句的区别

TRUNCATE操作与 DELETE语句在本质上的区别实现方式不同:TRUNCATE本质上先执行删除(DROP)数据表的操作,然后再根据有效的表结构文件(.frm)重新创建数据表的方式来实现数据清空操作而 DELETE语句则是逐条的删除数据表中保存的记录。执行效率不同:在针对大型数据表(如千万级的数据记录)时, TRUNCATE清空数据的实现方式,决定了它比 DELETE语句删除数据的方式执行效率更高。对AUTO_ INCREMENT的字段影响不同:TRUNCATE清空数据后,再次向表中添加数据,自

2020-07-14 08:59:08 2906

原创 MYSQL基础小测试(三)

要求:完成商品购物流程的数据库设计根据常见购物车功能,设计出购物车表的结构和SQL语句。根据收货地址功能,设计出收货地址表的结构和SQL语句。根据订单功能,设计出订单和订单商品表的结构和SQL语句。根据常见的评分功能,设计出商品评分表的结构和SQL语句。参考代码:# 创建购物车表CREATE TABLE sh_user_shopcart ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '购物车id', user_id INT U

2020-07-13 09:24:40 2512

原创 模拟电子商务网站

模拟电子商务网站# 创建并选择数据库CREATE DATABASE shop;USE shop;# 创建商品分类表CREATE TABLE sh_goods_category (id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '分类id',parent_id INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '上级分类id',name VARCHAR(100) NOT NULL DEFAULT '' COM

2020-07-12 18:44:25 718 2

原创 数据库的“范式”

范式:为了避免不规范的数据库出现数据冗余,造成插入丶删除丶更新操作异常等情况,就要满足一定的规范化要求,这就是范式( Normal Form)。第一范式(1NF):是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值,或不能有重复的属性。简而言之,第一范式遵从原子性,属性不可再分。举例:以下两种情况都不可:这是正确的:第二范式(2NF):是在第一范式的基础上建立起来的,满足第二范式必须先满足第一范式。第二范式要求实体的属性完全依赖于

2020-07-11 14:52:40 588 1

原创 MySQL基础小测试(二)

要求:在mydb数据库中创建一张用户表(user)在表中添加以下字段,选择合适的数据类型用户名:可以使用中文,不允许重复,长度2-20个字符手机号码:长度为11个字符。性别:有男丶女丶保密3种选择。注册时间:注册时的日期和时间。会员等级:表示会员等级的数字,最高为100大家可以先自己试试啊~下面答案作为参考~#创建mydb数据库Create Database If Not Exists mydb;use mydb;#创建一张user表Create Table user(na

2020-07-10 14:27:36 4175 1

原创 MySQL中的自动增长

hello,大家好,我是你们的怪味老王,今天我们简单的说说自动增长自动增长的作用:问题:为数据表设置主键约束后,每次插入记录时,如果插入的值已经存在,会插入失败。如何解决:为主键生成自动增长的值。自动增长的语法:字段名 数据类型 AUTO_INCREMENT;使用须知:1.一个表中只能有一个自动增长字段;2.该字段的数据类型是整数类型;3.必须定义为键,如 UNIQUE KEY、 PRIMARY KEY;4.若为自动增长字段插入NULL、0、 DEFAULT或在插入时省略.

2020-07-09 08:45:33 16895

原创 Java “三元运算”

三元运算语句:判断条件 ? 表达式1 : 表达式2;它与if …else 语句相似//if...else语句int x=0; int y=1; int max; if(x>y) { max=x; }else { max=y; } System.out.println(max);//三元运算int x=0;int y=1;int max = x>y ? x:y;System.out.println(max);其结果都为 1...

2020-07-08 18:29:16 222

原创 java中的运算符

1.算术运算符:注意:自增(前/后)(示例看图)除法:当除数和被除数都为整数时,得到结果为整数;当除数或被除数有小数参加,得到结果为小数。例:3/2=13.0/2=1.5取模(%):运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)无关。例:(-5)%3= -25%(-3)= 22.赋值运算符多个变量赋值:int x , y , z ;x=y=z=5;3.比较运算符4.逻辑运算符注意:运算符 & 和 &&am

2020-07-08 17:42:46 188

原创 Java的强制类型转换

数据类型:假设int类型转换为byte类型(图1可知int类型大于byte类型) int num=4;// byte b=num;//不可行,因为int类型不能转换为byte byte b=(byte) num;//可行,强制转换:目标类型 变量名 =(目标类型值) 值; System.out.print(b);结果为4.强制转换:目标类型 变量名 =(目标类型值)值;强制转换可能会造成精度的丢失: int a=298; byte b=(byte)a;//byte承

2020-07-08 15:25:33 245

空空如也

空空如也

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

TA关注的人

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