数据库基础中的mysql语句有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 数据库与数据库软件: 数据库是数据容器,可以理解为文件,数据库软件是数据库管理系统, 提供用户对数据库文件的操作 schama(模式): 关于数据库和表的布局及特性的信息 列(column): 表由列组成,列中存储着表中某部分的信息。 行(row): 表中的数据是按行存储的 主键: 表中每一行都应该有可以唯一标识自己的一列,称为主键 主键可以由单个列构成,也可以由多个列构成 SQL: 结构化查询语言,用于和数据库通信 查询数据库和表命令: SHOW DATABASES; SHOW TABLES; SHOW COLUMNS FROM COLLATIONS; //显示COLLATIONS中的所有列 auto_increment //自动增量,每添加一个行,该值自动加一 SELECT prod_name FROM products; //从prducts中检索出prod_name SELECT prod_id,prod_name FROM products; //检索多个列 SELECT DISTINCT vend_id from products; //返回一列中不同的值(过滤掉相同的) SELECT prod_name FROM products LIMIT 5; //限制最多输出5行 SELECT prod_name FROM products LIMIT 4,5; //限制最多从行4输出5行 SELECT products.prod_name FROM products; //完全限定 SELECT products.prod_name FROM crashcourse.pro免费主机域名ducts; //完全限定(列和表) SELECT prod_name FROM products ORDER BY prod_name; //排序 SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name; //对多个列排序(如果prod_price存在重复,就对prod_name重新排序) SELECT prod_name FROM products ORDER BY prod_name DESC/ESC; //排序(升序或降序) SELECT prod_id,prod_price,prod_name FROM products WHERE prod_price = 2.5; //使用where过滤(= 《 betown等操作) SELECT prod_id,prod_price,prod_name FROM products WHERE prod_price BETWEEN 5 AND 10;//在中间 SELECT prod_id,prod_price,prod_name FROM products WHERE prod_price vend_id = 1003 AND prod_price=2; 使用ORDER BY 实现分组的排序 SELECT order_num,SUM(quantity*item_price) AS ordertotal FROM orderitems GROUP BY order_num HAVING SUM(quantity*item_price)>=50 ORDER BY ordertotal; 子查询可以用来减少查询的语句条数 例如: SELECT order_num FROM orderitems WHERE prod_id = ‘TNT2’; //返回结果20005,20007 SELECT cust_id FROM orders WHERE order_num IN(20005,20007) SELECT cust_id FROM orders WHERE order_num IN(SELECT order_num FROM orderitems WHERE prod_id = ‘TNT2’); 计算字段使用子查询: SELECT cust_name,cust_state,(SELECT COUNT(*) FROM orders WHERE orders.cust_id = customers.cust_id) AS orders FROM customers ORDER BY cust_name; 联结: (主键与外键) 分表是为了更好的存储与提升可伸缩性,但在使用select查询的时候就不得不采用联结的方法 SELECT vend_name,prod_name,prod_price FROM vendors INNER JOIN products ON vendors.vend_id = products.vend_id’ 表别名能够在单挑SELECT语句中不止一次的引用相同的表 SELECT prod_id,prod_name FROM products WHERE vend_id = (SELECT vend_id FROM products WHERE prod_id = ‘DTNTR’); 自联结方式: SELECT p1.prod_id,p1.prod_name FROM products AS p1,products AS p2 WHERE p1.vend_id = p2.vend_id AND p2.prod_id = ‘DTNTR’; 外部联结 联结包含在相关表中没有关联行的行,这种类型的联结成为外部联结 SELECT customers.cust_id,orders.order_num FROM customers LEFT OUTER JOIN orders免费主机域名 ON customers.cust_id = orders.cust_id; 左向外联结和右向外联结 左向外联结的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联结所匹配的行 RIGHT JOIN 和RIGHT OUTER JOIN 右向外联结是左向联结的反向联结,将返回右表的所有行 FULL JOIN 或FULL OUTER JOIN 完整外部联结返回左表和右表的所有行,当某行在另一个表中没有匹配行时,则另一个表的 选择表列包含空值,如果表之间有匹配行,则整个结果集包含基表的数据值。 带聚集函数的联结 SELECT customers.cust_name,customers.cust_id,COUNT(orders.order_num) AS num_ord FROM customers INNER JOIN orders ON customers.cust_id = orders.cust_id GROUP BY customers.cust_id; 此SELECT语句使用INNER JOIN将customers和orders表相互关联。GROUP BY子句按客户分组数据,因此函数调用COUNT(order.order_num)对每个客户的订单技术,将它作为num_ord返回。 聚集函数也可以方便的与其他联结一起使用 SELECT customer.cust_name,customer.cust_id,COUNT(order.oder_num) AS num_ord FROM customers LEFT OUTER JOIN orders ON customers.cust_id = orders.cust_id GROUP BY customers.cust_id; 组合查询: 多个查询(多条SELECT语句),并将结果作为单个查询结果集返回 组合查询的应用场景: 在单个查询中从不同的表返回类似结构的数据 对单个表执行多个查询,按单个查询返回数据 如果使用WHERE: SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price
关于数据库基础中的mysql语句有哪些问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注云技术行业资讯频道了解更多相关知识。
相关推荐: PostgreSQL中B-Tree索引的物理存储内容有哪些
本篇免费主机域名内容主要讲解“PostgreSQL中B-Tree索引的物理存储内容有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL中B-Tree索引的物理存储内容有哪些”吧!创建数据表,插入…