11.1 函数没有SQL的可移植性强
能运行在多个系统上的代码称为可移植的(portable)。相对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理。而函数的可移植性却不强。几乎每种主要的DBMS的实现都支持其他实现不支持的函数,而且有时差异还很大。 为了代码的可移植,许多SQL程序员不赞成使用特殊实现的功能。虽然这样做很有好处,但不总是利于应用程序的性能。如
果不使用这些函数,编写某些应用程序...
1.了解SQL 数据库 :保存有组织的数据的容器(文件柜) 表 :某种特定类型数据的结构化清单(文件) 列 :表中的一个字段 数据类型:所容许的数据的类型 行 :表中的一个记录 主键 :一列(或一组列),其值能够唯一区分表中的每个行 SQL :结构化查询语言 2.MySQL简介 DBMS 开源,执行很快,可信赖,简单 3.使用MySQL USE 数据库名; SHOW DATABASES;SHOW TABLES;SHOW STATUS; SHOW CREATE ...; 4.检索数...
附录B 样例表本附录简要描述本书中所用的表及它们的用途。
编写SQL语句需要对基础数据库的设计有良好的理解。不知道什么信息存储在什么表中,表之间如何关联以及行内数据如何分解,是不可能编写出高效的SQL的。
建议你实际试验本书中没涨的每个例子。各章都使用相同的一组数据文件。为帮助你了解这些例子和掌握各章介绍的内容,本附录描述了所用的表、表之间的关系以及如何获得它们。B.1 样例表本书中使用的样例表为一个想象的随身...
【英】ben Forta著 1 1.0 选择数据库 use eg: use 数据库名; 2.0 show命令查看信息: show databases; show tables; show columns from 表名;(显示表中列的属性信息) show status;(显示广泛服务器状态信息) show create /database/table; show grants;(显示授予用户的权限) ...
附录A MySQL入门如果你是MySQL的初学者,本附录是一些需要的基础知识。A.1 你需要什么为使用MySQL和学习本书中各章的内容,你需要访问MySQL服务器和客户机应用(用来访问服务器的软件)副本。
你不一定需要自己安装MySQL副本,但需要访问服务器。基本上有下面两种选择。访问一个已有的MySQL服务器,或许是你的公司或许是上用的或院校的服务器。为使用这个服务器,你需要得到一个服务器账号(一个登录名和一个口令)。下载MySQL服务...
组合WHERE子句为了进行更强的过滤控制, MySQL允许给出多个WHERE子句。这些子句可以两种方式使用: 以AND子句的方式或OR子句的方式使用。操作符(operator): 用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符AND操作符为了通过不止一个列进行过滤, 可使用AND操作符给WHERE子句附加条件。MariaDB [crashcourse]>SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id =1003AND prod_price <=10;
+---------+-...
数据库: 数据库(database) 保存有组织的数据的容器(通常是一个文 件或一组文件)。表: 表(table) 某种特定类型数据的结构化清单。模式: 模式(schema) 关于数据库和表的布局及特性的信息。 列和数据类型: 列: 列(column) 表中的一个字段。所有表都是由一个或多个列组 成的。 数据类型: 数据类型(datatype) 所容许的数据的类型。每个表列都有相 应的数据类型,它限制(或容许)该列...
什么是数据库数据库这个术语的用法很多,但就本书而言,数据库是一个以某种
有组织的方式存储的数据集合。理解数据库的一种最简单的办法是将其
想象为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是
什么以及如何组织的数据库(database) 保存有组织的数据的容器(通常是一个文
件或一组文件人们通常用数据库这个术语来代表他们使用
的数据库软件。这是不正确的,它是引起混淆的根源。确切
地说,数据库软件应称为DBM...
子查询在開始了解子查询之前,首先做下准备工作,建立3个表,一个是customers表,当中包含:客户名字、客户ID、客户Tel等。一个是orders表,当中包含:订单号、客户ID、订单时间等。一个是ordersitems表,当中包含:订单物品、订单号、物品数量。准备工作1、建表建customers表的命令例如以下,其他的表与之相似:create table customers(cust_name varchar(10),cust_id int(10),cust_tel varchar(10));
2、插入内容为customers表插入...
联结SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)
表。联结是利用SQL的 SELECT 能执行的最重要的操作,很好地理解联结
及其语法是学习SQL的一个极为重要的组成部分外键(foreign key) 外键为某个表中的一列,它包含另一个表
的主键值,定义了两个表之间的关系关系数据库的可伸缩性远比非关系数据库要好可伸缩性(scale) 能够适应不断增加的工作量而不失败。设
计良好的数据库或应用程序称之为可伸缩性好(scale...
目录增添加一整行插入多行删删除指定行删除所有行改查简单检索结果筛选结果排序结果过滤创建字段处理函数数据分组其他高级用法文章内容均出自 《MySQL 必知必会》,目的在于做出简单梳理,方便查找。对于数据库的操作,最经典的应用场景就是 CRUD,即所谓的增Create、删Delete、改Update、查Read。其中,又以查Read最为重要,相关功能操作也是最多。因为你可能不会频繁地对数据库进行变动,而更多是对数据的应用。约定mysql 中不区...
目录分组数据是什么为什么用这个怎么用基本使用在分组中过滤排序分组数据是什么分组数据是可以将数据分为多个逻辑组,以便对每个组进行汇聚计算的语句为什么用这个前面提到的知识都是割裂开的,单独的知识点,遇到一点稍微复杂一点的逻辑就不能胜任了,例如,有多个供应商提供多种商品,现在想针对每个供应商都统计出他们具体提供了多少种商品,这个时候用分组就比较方便怎么用基本使用使用GROUP BY子句在分组中过滤使用HAVING子句...
TRIGGER newproduct AFTER INSERT ON products
FOR EACH ROW SELECT ‘Product added‘;CREATE TRIGGER--创建一个叫newproduct的新触发器
AFTER INSERT--此触发器将在INSERT语句成功后执行
FOR EACH ROW--代码对每个插入行执行 注意:只有表才可以支持触发器,视图、临时表都不支持 每个表最多支持6个触发器。单一的触发器不能与多个事件或多个表关联。 如果BEFORE触发器失败,MySQL将不执行请求操作。 ...
concat 用来拼接串,如 select concat(rtrim(vend_name),‘(‘,rtrim(vend_country),‘)‘) from vendors;
其中 rtrim用于去掉右边的空格,concat中多个串用 , 连接。
另外,一般会伴随着用字段的别名使用,以便在客户机调用。
还可以在选择的字段中用算数计算,如 select price*count as total from product;
文本处理函数:
rtrim 去除右边空格
upper 转大写
left 返回左边的字符
length 返回串长度
locate 找出串的子串
low...
数据分组
GROUP BY 子句可以包含任意数目的列,进行嵌套,这样的话数据将在最后规定的分组进行汇总。
GROUP BY 子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数),如果在select中使用表达式则必须在group by子句中指定相同的表达式,不能使用别名。
除聚集计算语句外,select语句中的每个列都必须在group by子句中给出。
分组列中的null值将被单独分为一组
HAVING 用来过滤分组,如:
select cust_id,count(...