MySql 入门(1)
来源:互联网 发布:怎么用邮箱注册淘宝 编辑:程序博客网 时间:2024/06/08 11:49
SQL 分类:
DDL:定义数据语言,这些语句定义了不同的数据段,数据库,表,列,索引等数据库对象的定义,例如create, drop ,alter等
DML:数据操纵语句,用于添加,删除,更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括insert,delete,update和select等
DCL:数据控制语句,用于控制不同的数据段直接的许可和访问级别的语句,这些语句定义了数据库,表,字段,用户的访问权限和安全级别。主要的语句包括grant,revoke等。
mysql自动创建的表:
information_scheme:主要存储系统中的一些数据库对象信息,比如用户表信息,列信息,权限信息,字符集信息,分区信息等
cluster:存储了系统的集群信息
mysql:存储了系统的用户权限信息
test:系统自动创建的测试数据库,任何用户都可以使用。
change 和 modify都可以修改表的定义,不同的时change后面要写两次表名,不太方便,但是change可以修改表名,modify做不到。
DML 格式:
INSERT INTO tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn);
UPDATE tablename SET field1=value1,field2.=value2,……fieldn=valuen [WHERE CONDITION]
UPDATE t1,t2…tn set t1.field1=expr1,tn.fieldn=exprn [WHERE CONDITION]
DELETE FROM tablename [WHERE CONDITION]
DELETE t1,t2…tn FROM t1,t2…tn [WHERE CONDITION]
SELECT * FROM tablename [WHERE CONDITION]
SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC],field2 [DESC|ASC],……fieldn [DESC|ASC]]
排序 SELECT ……[LIMIT offset_start,row_count]
显示一部分数据,起点, 步长
SQL聚合语法:
SELECT [field1,field2,……fieldn] fun_nameFROM tablename[WHERE where_contition][GROUP BY field1,field2,……fieldn[WITH ROLLUP]][HAVING where_contition]
- fun_name表示要做的聚合操作,也就是聚合函数,常用的有sum(求和)、count(*)(记
录数)、max(最大值)、min(最小值) - GROUP BY关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门
就应该写在group by后面。 - WITH ROLLUP是可选语法,表明是否对分类聚合后的结果进行再汇总。
- HAVING关键字表示对分类后的结果再进行条件的过滤。
表连接
当需要同时显示多个表中的字段时,就可以用表连接来实现这样的功能。 select ename,deptname from emp,dept where emp.deptno=dept.deptno;
连接分为内连接和外连接,区别主要为内连接仅会包含两者共有的,但是外连接会以一个为准,列出所有数据,哪怕另一边没有数据。
外连接分为左连接和右连接,本质是一样的,凡是放在左边的都是完全的数据。
子查询
某些情况下,当我们查询的时候,需要的条件是另外一个select语句的结果,这个时候,就
要用到子查询。用于子查询的关键字主要包括in、not in、=、!=、exists、not exists等。 select * from emp where deptno in(select deptno from dept);
子查询和表连接,有时候可以相互转换: select * from emp where deptno in(select deptno from dept);
等价于 select emp.* from emp ,dept where emp.deptno=dept.deptno;
记录联合
我们经常会碰到这样的应用,将两个表的数据按照一定的查询条件查询出来后,将结果合并
到一起显示出来,这个时候,就需要用union和union all关键字来实现这样的功能,
SELECT * FROM t1UNION|UNION ALLSELECT * FROM t2……UNION|UNION ALLSELECT * FROM tn;
UNION和UNION ALL的主要区别是UNION ALL是把结果集直接合并在一起,而UNION是将
UNION ALL后的结果进行一次DISTINCT,去除重复记录后的结果。
- php+mysql入门1
- MySQL入门1
- mysql#1入门
- mysql入门笔记1
- MySql入门(1)
- MySQL入门训练1
- MySql 入门(1)
- MySql入门(1)
- 【Mysql】mysql分区入门1—简介
- mysql手册总结1---入门
- 1、MySQL和SQL入门
- MySQL入门1--介绍篇
- MySQL入门 基本语法1
- MySql入门
- MYSQL入门
- MySQL入门
- MySQL 入门
- MYSQL入门
- 页面的返回操作
- 关于逻辑运算符&、|和&&、||的区别
- [译]The Python Tutorial#12. Virtual Environments and Packages
- 《Kali+Linux渗透测试的艺术》学习总结之----Kali Linux简介
- BeanUtils.copyProperties 在copy Integer类型问题
- MySql 入门(1)
- 关于Python迭代器的问题
- echarts.js 画报表、数据可视化(第一部分)
- N线城市码农生存指南
- Java Enum 枚举类的使用一例
- Q-Learning算法学习
- RabbitMQ深入学习指导
- JSP基本语法
- 百度地图Marker的定位和方向