博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql
阅读量:6633 次
发布时间:2019-06-25

本文共 3197 字,大约阅读时间需要 10 分钟。

以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl:
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
实例解析:
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。
desc  table_name;
select {filed1,filed2,...} from {表名};
 
inset {表名} (filed1,field2,....) values (value1,value2,....);
insert into c(f1,t1) (select (select b.y from b where a.x=b.x),(select b.y from b where a.y=b.x) from a)
 
UPDATE 表 SET 字段='value' WHERE 条件;
DROP TABLE table_name ;删除表
delete from table_name where 删除条件 ;删除表部分数据
truncate table table_name;删除表数据保留该表
1、当你不再需要该表时, 用 drop;
2、当你仍要保留该表,但要删除所有记录时, 用 truncate;
3、当你要删除部分记录时, 用 delete。
alter table  table_name modify column 字段 类型; 修改字段
SELECT * from table_name  WHERE 字段 LIKE '%COM'; 模糊查询
 
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
SELECT 字段 FROM table_name1 UNION SELECT 字段 FROM table_name2 ORDER BY 字段;   UNION 查出来得字段去重。请使用 UNION ALL 列出所有值!
SELECT 列名称 FROM 表名称 UNION SELECT 列名称 FROM 表名称 ORDER BY 列名称;
SELECT 列名称 FROM 表名称 UNION ALL SELECT 列名称 FROM 表名称 ORDER BY 列名称;
SELECT * from runoob_tbl ORDER BY 字段 ASC; 升序
SELECT * from runoob_tbl ORDER BY 字段 DESC;降序
GROUP BY 语句根据一个或多个列对结果集进行分组。
SELECT name, COUNT(*) FROM 表名称 GROUP BY name;
 

WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。

例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数:

 SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

mysql> SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;+--------+--------------+| name   | singin_count |+--------+--------------+| 小丽 |            2 || 小明 |            7 || 小王 |            7 || NULL   |           16 |+--------+--------------+4 rows in set (0.00 sec)

  

其中记录 NULL 表示所有人的登录次数。

我们可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法:

select coalesce(a,b,c);

  

参数说明:如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。

以下实例中如果名字为空我们使用总数代替:

mysql> SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;+--------------------------+--------------+| coalesce(name, '总数') | singin_count |+--------------------------+--------------+| 小丽                   |            2 || 小明                   |            7 || 小王                   |            7 || 总数                   |           16 |+--------------------------+--------------+4 rows in set (0.01 sec)

  分组后的条件使用 HAVING 来限定,WHERE 是对原始数据进行条件限制。几个关键字的使用顺序为 where 、group by 、having、order by ,例如:

SELECT name ,sum(*)  FROM employee_tbl WHERE id<>1 GROUP BY name  HAVING sum(*)>5 ORDER BY sum(*) DESC;

  

order by:

SELECT * from runoob_tbl ORDER BY submission_date ASC; SELECT * from runoob_tbl ORDER BY submission_date DESC;
SELECT dep.department_name, MAX(emp.salary), MIN(emp.salary) FROM departments dep LEFT JOIN employees emp ON (dep.department_id = emp.department_id) GROUP BY dep.department_name ORDER BY dep.department_name DESC

 

转载于:https://www.cnblogs.com/lyy3306/p/10101952.html

你可能感兴趣的文章
struts 官方网址
查看>>
LCA近期公共祖先
查看>>
Quartz快速上手
查看>>
CentOS6.5安装Kibana5.3.0
查看>>
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
EM算法求高斯混合模型參数预计——Python实现
查看>>
JS 得细心的坑位
查看>>
hdu1874 畅通project续(求最短路径)
查看>>
ArcGIS教程:Geostatistical Analyst 应用演示样例
查看>>
winform网络编程之TcpClient类,TcpListener类和UdpClient类
查看>>
CentOS7下的YUM源服务器搭建详解,过程写的很详细(转)
查看>>
AspNetCore-MVC实战系列(三)之个人中心
查看>>
JSON简述
查看>>
cvs的规范以及介绍(转)
查看>>
Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D【转】
查看>>
linux ls 命令
查看>>
Win10 IoT C#开发 4 - UART 串口通信
查看>>
UWP入门(一) -- 先写几个简单控件简单熟悉下(别看这个)
查看>>
Spring+CXF整合来管理webservice(服务器启动发布webservice)
查看>>
【Android】如何获取本机号码、IMSI、EMSI
查看>>