SQL简介

1.基本组成

DDL、DML、DQL、DCL

2.各部分组成的简介

(1)DDL(修改语句)

1.ALTER TABLE 表名 ADD 字段名 类型(长度)[comment];

eg:为名为emp的表格增加新字段,昵称为nickname

ALTER TABLE emp ADD nickname varchar(20) comment ' 昵称';

2.修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

eg:将名为emp 的表格中nickname 的数据类型改为 varchar(30)

ALTER TABLE emp MODIFY nickname varchar(30);

3.修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[comment];

ALTER TABLE emp CHANGE nickname username varchar(30);

4.修改表名

ALTER TABLE 表名 RENAME TO 新表名; 

5.删除字段和删除表

ALTER TABLE 表名 DROP 字段名;

DROP TABLE [IF EXISTS] 表名;

(2)DML(Data Monipulation Language表名数据的增、删、改)

1.增添

给指定字段添加数据:

INSERT INTO 表名 (字段名1,字段名2,...) VALUES (值1,值2,...);

给所有字段添加数据:

INSERT INTO 表名 VALUES (值1,值2,...);

批量添加数据:

INSERT INTO 表名 (字段名1,字段名2,...)VALUES (值1,值2,...),(值1,值2,...),...;

注:插入数据时要注意数据的顺序;

字符串、日期型数据应包含在引号中;

插入数据的大小应该在规定数据范围内。

2.删除

删除数据:

DELETE FROM 表名 [where 条件];

注:DELETE不能删除某个字段的值,可以使用UPDATE把字段的值设置为空(NULL)。

3.修改

修改数据:

UPDATE 表名 SET 字段名1 = 值1,字段名2 = 值2,...[where 条件];

注:此处的where条件语句可有可无,没有表示修改整张表中的数据。

(3)DQL(Data Query Language数据查询语言,查询数据库中表的记录)

1.基本查询(select)

查询多个字段:

SELECT 字段1,字段2,字段3...FROM 表名;

查询所有字段:

SELECT * FROM 表名;

查询时设置别名:

SELECT 字段1[AS 别名1],字段2[AS 别名2]...FROM 表名;

查询时去除重复记录:

SELECT DISTINCT 字段列表 FROM 表名;

2.条件查询(where)

SELECT 字段列表 FROM 表名 WHERE 条件列表;

条件构成:数据加运算符,其中运算符包括比较运算符和逻辑运算符

比较运算符:

>, >=, <, <= , = , <> 或 != 
BETWEEN ... AND ...(在某个范围之内,包含边界)
IN(...)在IN之后的列表中的值,多选一
LIKE 占位符(匹配单个字符,%匹配任意个字符)
is NULL (是空)

逻辑运算符:

AND 或 &&(且,和),OR 或 ||(或),NOT 或 !(非,不是)

3.聚合函数(count,max,min,avg,sum)

 解释:将一列数据作为一个整体进行纵向运算

聚合函数
函数名作用
count统计数量
max求最大值
min求最小值
avg求平均值
sum 求和

注:null 值不参与运算

用法:SELECT 聚合函数(字段列表) FROM 表名

eg: SELECT sum(grade) FROM student;//求student表中grade的和

SELECT count(id) FROM emp;//求emp 表中 id的个数

4.分组查询(group by)

SELECT 字段列表 FROM 表名 [where 条件] GROUP BY 分组 字段名 [HAVING 分组后过滤条件];

where和having 的区别:

(1)执行时机不同:where是分组前进行过滤,不满足where条件将不参与分组;having 是分组后对结果进行过滤;

(2)判断条件不同:where 不能对聚合函数进行判断,having 是可以的。

5.排序查询(order by)

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排列方式1,字段2 排列方式2;

其中的排列方式:ASC(升序) 和 DESC(降序),在没有指定排列方式的情况下默认排列方式是升序。

注:若是多字段排序,当第一个字段值相同时才会根据第二个字段排序。

eg:根据年龄对员工升序排序,若年龄相同再按照入职时间降序排序。

SELECT * FROM emp ORDER BY age ASC,entrydate DEAC;

6.分页查询(limit)

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

注:起始索引从0开始,计算方法:(查询页码 - 1)* 每页显示记录数;

分页查询数据库的方言,不同数据库有不同的实现,MySQL中运用LIMIT;

若查询的是第一页数据,起始索引可以省略,直接写成limit10;

eg:SELECT * FROM emp limit10;//查询第一页员工数据,每页展示10条数据;

上述语句可以写成 SELECT * FROM emp limit 0,10;

SELECT * FROM emp limit 10,10;//查询emp中第二页员工数据,(10 = (2 - 1)* 10)每页展示10条数据

补:DQL语句中的执行顺序

  1. FROM + 表名列表
  2. WHERE  + 条件列表
  3. GROUP BY + 分组字段列表
  4. Having + 分组后的条件列表
  5. SELECT + 字段列表
  6. LIMIT + 分页参数

(4)DCL(Data Control Language数据控制语言,控制数据库的访问权限)

1.用户管理

  查询用户:

USE mysql;--用户权限信息在mysql中,以MySQL为例

SELECT * FROM user;

  创建用户:

CREATE USER '用户名'@'主机名' IDEDTIFIED BY '密码';

eg:CREATE USER 'root1'@'localhost' IDEDTIFIED BY '123456'; -- 创建名为root1的用户,密码为123456,只能在当前主机访问。(此时还未分配权限)

  修改用户密码:

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

  删除用户:

DROP USER '用户名' @ '主机名';

2.权限控制

  查询权限:

SHOW GRANTS FOR '用户名'@'主机名';

授予权限:

GRANTS 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

撤销权限:

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

SQL 中常见小细节:

1.通配符:

“%” 或者 “_”,前者可以代表任意长度的字符串,后者代表任意单个字符。

2.取消执行的指令为 “\c”.

3.MySQL 中对大小写要求不严格,所以书写命令时的关键字大小写不做要求。

写在最后:本篇文章用于自己总结复习,数据来源哔哩哔哩黑马程序员。欢迎大家一同讨论或是指出错误。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值