SQL是指一种结构化查询语言(Structured Query Language)简称SQL。相对于其他语言的学习,也许学习SQL并不是那么的有趣,但是只要能够静下心边看书边实践,很快就能够掌握与SQL基本的操作技能。

一、这是一本什么书?

经常听身边的小伙伴讲《SQL基础教程(第2版)》是一本比较不错的SQL入门书籍,出于好奇于近日购得一本,欲探究竟。

  • 这本书面向的读者是没有编程经验的初学者
  • 内容涉及关系型数据库及SQL语言的使用方法
  • 每章知识讲解思路清晰、细致(日系书特点)

综上所述,这是一本面向SQL初学者的入门级书。

二、读完能够学习到什么?
  • PostgreSQL 的安装方法
  • 了解数据库的基本概念及常用的关系型数据库
  • 掌握SQL中的常用操作(查询与更新、聚合与排序、复杂查询、集合运算、SQL高级处理、函数等)
  • 通过应用程序连接数据库
三、准备学习环境

如果您没有特别要求或者习惯使用的数据库,那么建议使用书中的数据库。当然您也可以从以下几种数据库中选择一种来使用:

  • Oracle
  • SQL Server
  • DB2
  • PostgreSQL
  • MySql

因为自己的电脑上安装了MySql5.7Navicat,所以就直接使用已经安装的环境学习。

四、如何学习SQL?
  1. 了解数据库是什么及结构
  2. 掌握数据库的创建和表的创建
  3. 掌握表的删除和更新
  4. 掌握数据插入、删除、更新(后续可以继续学习事务)
  5. 掌握SELECT查询及各种黑科技
  6. 掌握聚合与函数
  7. 掌握视图、子查询和关联子查询
  8. 掌握常用函数、掌握谓词和case表达式
  9. 掌握集合运算
  10. 了解SQL高级处理和通过应用程序连接数据库(基础扎实了可以继续)
五、初探SQL

个人理解,仅供参考,更多技能,请自行解锁(#^.^#)。

  1. 数据库:可以理解为数据仓库,是多张数据表组成的数据集合。

  2. 表:由行和列组成的二维表。可以用来存储相同特性的数据,举个栗子,在用户表中存储2条用户信息:

enter image description here

在上表中每一行(第一行表头除外)表示的是一条记录;每一列表示的是对应的一个字段;每一个单元格中的数据就是对应的字段值。我们可以把一张表中的多条记录看做是同一种类型的数据。

3.DBMS:即数据库管理系统,是一种用来管理数据库的计算机管理系统。

4.RDBMS的常见系统结构:客户端/服务器端(C/S)结构。

5.三两行代码,写出你的心事。来看如何创建数据库,操作表:

/*创建pay数据库*/
CREATE DATABASE pay;

这样,我们就可以创建一个数据库。是不是很简单?接下来,可以创建一张用户信息表。表中包含字段id、邮箱(用户名)、密码,请看如下代码:

/*创建用户信息表*/
CREATE TABLE `t_user` (
    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
    `email` varchar(255) NOT NULL DEFAULT '' COMMENT '邮箱',
    `pwd` varchar(255) NOT NULL COMMENT '密码',
    PRIMARY KEY (`id`)
) 

在用户信息表中id是主键,也就记录的唯一标识,不能为空值,让数据库自动生成序列。邮箱和密码分别是长度为255的varchar类型的数据。其中邮箱就是用户名。酱紫就可以对用户表进行一番操作了。

/*插入4条用户信息记录到表中,假装密码已经加密⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄*/
INSERT INTO `t_user` (email,pwd) VALUES ('sugarYe@vip.com', '123456');
INSERT INTO `t_user` (email,pwd) VALUES ('zhangsan@vip.com', '234567');
INSERT INTO `t_user` (email,pwd) VALUES ('lisi@vip.com', '345678');
INSERT INTO `t_user` (email,pwd) VALUES ('lilei@vip.com', '456789');

数据已经插入到了表中,该如何查看数据是否正确了?可以使用SELECT来进行查询验证。

 /*查询数据信息*/
SELECT * FROM t_user;

有图有真相:

enter image description here

接下来,更新id=1的数据。

/*更新第一条数据*/
UPDATE t_user  SET email='sugarYe@163.com',pwd='789456' WHERE id=1;

查询验证,更新是否成功。

enter image description here

从图中可以看出来,更新正确。真是太棒了。

假如想删除一条记录该如何操作呢?别担心DELETE关键字可以帮助我们。

/*删除一条id=3的数据*/
DELETE FROM t_user where id=3;

提示:删除操作是一个危险的动作,在正式运行的系统中执行删除操作之前做好先备份好数据。 如果粗心大意写写错要删除的表名或者没有限制条件会发生“血案”,接下来测试一下。我们直接删除用户信息表中的数据。

enter image description here

是不是很开心?关于SQL还有非常多非常有趣的知识等着小伙伴们去解锁。

六、前方高能,干货来袭

附赠MySql中的几点操作小技巧。

1、TRUNCATE user ; 清除表数据,不影响标识列。

2.mysql将查询结果转换成一行
select id,group_concat(id order by id separator ",") as ids
from t_user
group by pwd

方法2:

SELECT
group_concat(user_list.id) AS ids
FROM
(SELECT id FROM t_user) AS user_list
3.mysql数据库最大连接数查看与修改

1、查看最大数据库最大连接数

show variables like '%max_connections%';

2、修改全局的数据库最大连接数(仅限本次,重启无效)

set global max_connections=200;

4.价格类数据保留精度

设计数据库字段的时候使用数据类型decimal(18,2)参数含义:数据长度,数据精度;

select id,name, convert(price,decimal(18,2)) as price from product;