常用基础SQL语句(小白)

MySQL中,用指令操作数据库

一、在终端安装数据库,通过命令行控制数据库
		brew install mysql
二、我们可以在MySQL编辑器中进行语句查询
		打开mysql,到某个连接(eg:localhost)下面,选中其中的一个数据库(eg:test)
		下面有一个查询,我们可以在这个里面利用命令行操作数据库
		包括新建、修改、删除等
		我们输入完命令行语句后,可以选中一行或几行语句,点击运行
三、SQL语句
1、新建数据库
		CREATE DATABASE 数据库名;
2、删除数据库
		DROP DATABASE 数据库名;

当利用可视化操作数据库的时候,新建或者删除数据库大多需要断开连接后重新连接才会刷新成功

3、创建数据表
		CREATE TABLE 表名称 (`列名` 类型);

下面是来自菜鸟教程的实例:
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 )(主键为runoob_id,如果多个主键可以用逗号分隔)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;(ENGINE用来设置存储引擎,CHARSET设置编码)

4、删除数据表
		DROP TABLE 表名称;
向表中插入数据
		INSERT INTO `表名称` (列名1,列名2) VALUES ('值1','值2');
5、查询数据
		SELECT `列名1`,`列名2` FROM `表名称`;

*通配符,表示全部

(1)、WHERE子句
		SELECT `列名1`,`列名2` FROM `表名`  WHERE 条件;
		SELECT `name` FROM `group` WHERE `group_id` in (24,9,18);                                                                    
		SELECT `name` FROM `group` WHERE `name` in ('书法','美术');      			

条件包含>、<、=、!=、<>、>=、<=、AND/OR可以指明一个或多个条件

(2)、关系运算符AND和OR
		SELECT `name`,`id` from `group` WHERE `canUseMoneyCrash`>=600 AND/OR `canUseMoneyCrash`<600 ;
(3)、ORDER BY
		我们可以根据时间的排序或者某个数量的排序来获取我们想要的信息。这个时候
		当我们按照一定的指令获得到这个时间的时候,最后我们就可以加上
		ORDER BY 时间列名 DESC/ASC    

DESC表示递减 ASC表示递增

四、聚合函数(COUNT/SUM/AVG)
1、COUNT:对查询结果集合中特定的列进行计数
		也可以用于查询符合我们查询条件的值有几条
		SELECT COUNT(group_id) FROM `group` WHERE `group_id`=13
		这样就可以返回在group表里面,group_id=13的有多少条

COUNT函数不会去重,不会计算NULL值

2、SUM:对查询结果的某个字段进行求和
	SUM函数可以用来计算求和
	SELECT SUM(canUseMoneyCrash) FROM `group` WHERE group_id=11;
3、AVG:对查询结果的某个字段取平均值
	对所求字段的结果进行均值计算
	SELECT AVG(canUseMoneyCrash) FROM `group` WHERE group_id=11;
五、对查询结果去重(DINSTINCT)
	SELECT COUNT(DISTINCT group_id) FROM `group` WHERE group_id=11;
	在查询的属性前面加上DISTINCT,这个属性所查出来的值就不会出现相同结果的情况
	SELECT DISTINCT `group_id` FROM `group`;
	这样也是将group_id这一列中的所有数据去重后显示出来。
六、将查询数据分组(GROUP BY)
	在select后将所有符合情况的数据查询清楚后,最后GROUP BY 列名,表示根据这个值进行分组
	SELECT SUM(canUseMoneyDiscount) FROM `group` WHERE canUseMoneyCrash>100 AND canUseMoneyCrash<600 GROUP BY gorup_id;
	分组不仅仅是简单的区分,还要明确你为什么要分组,分组之后要根据分组的值做什么
	根据这个思路将想获得的内容一并写到语句中,才是有意义有效的一个分组,不仅仅是为了展示而分组

分组最好以唯一标识符id,这样才有意义

七、HAVING函数
	HAVING函数与WHERE筛选的原理是相同的,但WHERE不能直接将聚合函数计算结果作为
	筛选条件,而HAVING却可以,这也是HAVING存在的重要意义。
	SELECT AVG(canUseMoneyDiscount) FROM `group` 
	WHERE canUseMoneyCrash>100 AND canUseMoneyCrash<700 
	GROUP BY(group_id)
    HAVING AVG(canUseMoneyDiscount)>200;
八、扩充了解
1、SQL常常接触的数据类型:
(1)整型:
tinyint 用来表示很小的整数,大多数用来存表示true和false的0和1;
smallint 比tinyint大一些,可以用来存错误码404,401等;
int 整型,大多数情况均适用
bigint 非常大的整数
(2)浮点型:
decimal 可以表示非常准确的小数,比如经纬度
(3)字符串类型:
char 固定长度的字符串
varchar 可变长度的字符串
(4)日期类型:
date 只包含日期,年-月-日,不包含具体时间
dateTime 表示整个日期和具体时间 年-月-日 时:分:秒

确定表中每一列的类型: DESC 表名 得到可视化图形界面
SHOW CREATE TABLE 表名 得到命令行代码

2.索引
索引一般由表中的某一列或者某几列构成,
一旦设置某一列为索引,
那么之后每次在往表中写入数据的时候,
都会更新这一列到索引中去,
索引的存在会大大提高查询的速度。
索引一般是id类
2.1满足成为索引的条件:
	这一列必须所有的值都不能为空
2.2索引的类型
	PRI:primary缩写,标记这一列为主键,用来唯一标识表中每一行数据的索引;
	UNI:unique缩写,被设置为UNI的列,不允许出现重复的值,如果尝试向其中插入两行相同的数据,就会引发报错,因此快递的运单号,所开的收据凭证编号都可以设置为这个类型;
	MUL:multiple缩写,表示这一列被设为一个普通索引。此时这一列可以单独作为索引,也饿可以和其他标记为MUL的列共同构成一个索引(这种由多列共同构成的索引被叫做复合索引);
	以上是DESC 表名生成可视化结构时我们可以看出的,如果用SHOW CREATE TABLE 表名生成的代码结构中
	PRIMARY KEY就对应PRI,
	UNIQUE KEY就对应UNI,
	KEY就对应MUL
3.嵌套SELECT
	SELECT rider_id, order_grab_limit FROM tb_grab_order_limit WHERE rider_id IN (SELECT id FROM tb_rider);
4.JOIN语法
JOIN语法的基本结构:
表1 (INNER/LEFT/RIGHT/FULL) JOIN 表2 ON 表1.列1 = 表2.列2。
JOIN关键字前后连接的是两张需要关联查询的数据表,
ON关键字后面跟着关联的条件。
一共有四种类型的JOIN,他们分别是INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。

关于JOIN语法,这个前辈写的特别好

文章灵感来源1–某前辈
文章灵感来源2–某前辈

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值