MySQL基础学习-SQL语法

1、SQL基础

1、SQL通用语法

1、SQL语句可以单行或多行书写,以分号结束

2、SQL语句可以使用空格/缩进来增强语句的可读性

3、MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

4、注释:

·单行注释:--注释内容或 # 注释内容(MySQL特有)

·多行注释:/ * 注释内容 * /

2、SQL分类

1、DDL---数据库&表操作

1、数据库操作

查询所有数据库

SHOW DATABASES;

查询当前数据库

SELECT DATABASE();

创建

CREATE DATABASE [IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则];

删除

DROP DATABASE [IF EXISTS]数据库名;

使用

USE 数据库名;

2、表操作

1、查询

1、查询当前数据库所有表

SHOW TABLES;

2、查询表结构

DESC 表名;

3、查询指定表的建表语句

SHOW CREATE TABLE 表名;
2、创建
CREATE TABLE 表明(
    字段1 字段1类型[COMMENT 字段1注释]
    字段2 字段2类型[COMMENT 字段2注释]
    ...
)[COMMENT 表注释];
3、数据类型

4、修改

添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释][约束];
1、修改数据类型
ALTER 表名 MODIFY 字段名 新数据类型(长度);
2、修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释][约束];
4、删除字段
ALTER TABLE 表名 DROP 字段名;
5、修改表名
ALTER TABLE 表名 RENAME TO 新表名;
6、删除表

删除表

DROP TABLE[IF EXISTS]表名;

删除指定表并重新创建

TRUNVATE TABLE 表名;

2、DML-数据表的增删改操作  

->添加数据(INSERT)

->修改数据(UPDATE)

->删除数据(DELETE)

1、添加数据

1、给指定字段添加数据
INSERT INTO 表名(字段1,字段2....)VALUES(值1,值2,....);
2、给全部字段添加数据
INSERT INTO 表名 VALUES(值1,值2...);
3、批量添加数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1,值2,...),(值1,值2,...);
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);

tips:

·插入数据时,指定的字段顺序需要与值的顺序是一一对应的关系。

·字符串和日期数据应该包含在引号中。

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

2、修改数据

1、修改数据
UPDATE 表名 SET 字段名1 = 值1 , 字段名2 = 值2 , ...[WHERE 条件];

tips: 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

2、删除数据
DELETE FROM 表名 [WHERE 条件];

tips:

·DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的数据。

·DELETE语句不能删除某一个字段的值(可以试用UPDATE)。

3、DQL-查询数据库中表的记录

1、语法

SELECT   字段列表
FROM     表名列表
WHERE    条件列表
GROUP BY 分组字段列表
HAVING   分组后条件列表
ORDER BY 排序字段列表
LIMT     分页参数

查询方式:(编写顺序)

·基本查询

·条件查询(WHERE)

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

·分组查询(GROUP BY)

·排序查询(ORDER BY)

·分页查询(LIMT)

2、基本查询

1、查询多个字段
SELECT 字段1,字段2,字段3... FROM 表名;
SELECT * FROM 表名;
2、设置别名
SELECT 字段1 [AS 别名1],字段2[AS 别名2]...FROM 表名;
3、去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

3、条件查询

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

条件:

4、聚合函数

将一列数据作为一个整体,进行纵向计算。

常见的聚合函数:

语法

SELECT 聚合函数(字段列表) FROM 表名;

tips:null值不参与所有聚合函数运算

5、分组查询

语法

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

where与having的区别

-> 执行时机不同:where是分组之前进行过滤,不满足where条件的不参与分组;而having是分组之后对结果进行过滤。

->判断条件不同:where不能对聚合函数进行判断,而having可以。

tips:

·执行顺序:where>聚合函数>having。

·分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无意义。

6、排序查询

语法

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

排序方式:

->ASC:升序(默认值)

->DESC:降序

tips:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

7、分页查询

语法

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

tips:

·起始索引从0开始,起始索引 = (查询页码-1)*每页现实记录数。

·分页查询时数据库的方言,不同的数据库有不同的实现,MySQL中是LIMT。

·如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。

8、执行顺序

FROM -> WHERE -> GROUP BY HAVING -> SELECT -> ORDER BY LIMT

4、DCL-权限管理

1、查询用户

USE mysql;
SELECT * FROM user;

2、创建用户

CREATE USER "用户名@主机名" IDENTIFIED BY "密码";

3、修改用户密码

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

4、删除用户

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

tips:

·主机名可以试用%通配。

·这类SQL开发人员操作比较少,主要是数据库管理员使用

5、权限控制

1、查询权限
SHOW GRANTS FOR "用户名@主机名";
2、授予权限
GRANT 权限列表 ON 数据库名.表名 TO "用户名@主机名";
3、撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM "用户名@主机名";

tips:

·多个权限之间,使用逗号分隔。

·授权时,数据库名和表名可以使用*进行通配,代表所有。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值