Mysql学习-掌握SQL语句基本操作

简介:

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

按照知识点分类,我将从以下六个方面去描述SQL语句基本操作,第一章节,和第二章节是对学习内容的一个简要概述,第三到第六章节则是具体的语句操作。

目录

一.SQL通用語法

二.SQL語句的分類

三.DDL

四.DML

五.DQL

六.DCL

一.SQL通用語法

1.SQL语句可以单行或多行书写,以分号结尾。
2.SQL语句可以使用空格/缩进来增强语句的可读性。
3.MySQL数据库的SQL不分大小写,关键字建议使用大写。
4.注释:
· 单行注释: --注释内容或#注释内容(MySQL特有)
·多行注释:/*注释内容*/

二.SQL語句的分類

1.DDL( Data Definition Language):数据定义语言,用来定义数据库对象(数据库,表,字段)。

2.DML(Data  Maniuputation Language):数据操作语言,用来对数据库表中的数据进行增删改。

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

4.DCL(Data  Control Language):数据控制语言,用来创建数据库用户,控制数据库的访问权限。

了解基本分类后,接下来让我们学习具体语句操作,小建议:虽然关键字建议用大写,但是为了方便见名知意,我一般使用小写,看着舒服。为了让大家明白为什么按上面的分类进行学习,我以一个比喻和大家说明一下。我们学习MySQL本质是学习如何利用其对数据进行管理与存储。这就好比我们在写入各种各种的文档,存入到文件夹中,规范进行管理,需要修改时,则选择对应文件夹的对应文件,对其内容进行增删改操作。其中文件夹就类似于我们需要创建的库,文件夹中的文件就类似我们需要在库中创建的表,对文件内容的操作就类似我们对表格进行的增删改查操作,进行前面的操作就对应着我要学习的DDL、DML、DQL。最后的DCL操作类似于我们用户对于系统文件的权限控制,它在数据库中,是用于给用户授予数据库的权限,控制用户的数据的。建立这样的意识去学,知识框架很容易搭建成功。

三.DDL( Data Definition Language)

這主要是用来定义数据库对象(数据库,表,字段)。其实,可以分为数据库和表操作两个部分,字段是表的一部分,其操作实则为对表进行操作。对数据库进行操作,我们需要先进行库的创建,然后才可创建表,对表进行操作。

3.1 数据库操作

1. 查询

(1).查询所有数据库(目前已创建的)
 SHOW DATABASES;
(2). 查询当前数据库(当前所使用的)
 SELECT DATABASE();

2. 创建

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

注意:中括号里的内容可省略。

例如:创建名为db的数据库

create database db;

3.  删除

DROP DATABASE 数据库名;

4.  使用

 USE 数据库名;

为什么要有使用操作呢?因为我们创建的数据库一般都不止一个,使用操作,可以让我们自由调整到想要使用的数据库。

3.2.表的操作

1. 查询

(1).查询当前数据库所有表
 show tables;
(2).查询表结构
  desc 表名;
(3).查询指定表的建表语句

 show create table 表名;

2. 创建

(1)CREATE TABLE 表名(
    字段1 字段1类型[COMMENT 字段1解释];
    字段2 字段2类型[COMMENT 字段2解释];
    ......
   字段n 字段n类型[COMMENT 字段n解释];
)[COMMENT 表注释];

注意:中括号里的部分可省略,也可写主要是为了给自己知道创建此字段的意义,但是若是用中文解释记得添加引号。

3. 修改(主要是修改表格的字段)

(1). 添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束]

(2). 修改数据类型
alter table  表名 modify 字段名 新数据类型(长度);

(3). 修改字段名和字段类型
alter table  表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束];

(4). 修改表名
alter table 表名 rename to 新表名;

4. 删除

(1). 删除字段
alter table 表名 drop 字段名;

(2). 删除表
drop table 表名;

(3). 删除指定表,并重新创建该表
truncate table 表名;

注意:在删除表示,表中的全部数据也会被删除。

四.DML(Data  Maniuputation Language)

4.1.作用

        對數據庫表中的數據進行增刪改。

4.2 操作

1. 添加数据 insert
  (1).给指定字段添加数据
  insert into 表名(字段1,字段2,...)values(值1,值2);
  (2).给全部字段添加数据
  insert into 表名 values(值1,值2,...);
  (3).批量添加数据
  insert into 表名 (字段1,字段2,...)values (值1,值2,...),(值1,值2,...),(值1,值 2,...),...;
  insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...),...;
2. 刪除数据 delete
delete from 表名 [where 条件]

注意:
delete 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据
delete 语句不能删除某一个字段的值(可以使用update)

3 . 修改数据 update
update 表名 set 字段1=值1,字段2=值2,...[where 条件];


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

五.DQL(Data  Query Language)

5.1.作用

     用来查询数据库中表的记录

5.2.操作:

1.基本查询

(1).查询多个字段
select  字段1,字段2,字段3,...from 表名;
(2).设置别名
select 字段1[ as 别名1],... from 表名;
(3).去除重复操作
select distinct 字段列表 from 表名;

2.条件查询(where)

(1).语法
select 字段列表 from 表名 where 条件列表;

(2).条件(含比较运算符和逻辑运算符)

·比较运算符

比较运算符                                         功能
 > <  >=  <=  !=  =                               省略(意义即为字面意义)    
 字段 between ... and...            在某个范围之内(含最大值、最小值)
 in (...)                                    在in之后的列表中的值,多选一  ,类似于or的用法
 like占位符                                 模糊匹配(_匹配单个字符,%匹配任意个字符)
 is null                                        是null

·逻辑运算符

逻辑运算符          功能
and或&&           并且(多个同时成立)
or 或 ||               或者(多个条件任意一个成立)
not 或 !           非,不是

3.聚合查询

(1).聚合函数介绍:将一列数据作为一个整体,进行纵向计算。

(2).常见聚合函数

count         统计数量
max          求最大值
min           求最小值
avg           求平均值
sum          求和

注意:null值不参与聚合函数计算

4.分组查询

(1).语法
select 字段列表 from 表名 [where 条件]  group by  分组字段名 [having 分组后过滤条件]
分组字段名指的是根据什么进行分组

(2).where 和having 区别
·执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤
·判断条件不同:where不能对聚合函数进行判断,而having可以。

5.分页查询(limit)

语法:
select 字段列表 from 表名 limit 起始索引,查询记录数;

注意
·起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
·分页查询是数据库的方言,不同的数据库有不同的实现,mysql中是limit
·如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10

六.DCL(Data  Control Language)

6.1 介绍

数据控制语言:用来管理数据库用户、控制数据库的访问权限。

6.2 管理用户

1. 查询用户
   use mysql;
   select * from user;
2. 创建用户
create user '用户名' @ '主机名' identified  by '密码';
3. 修改用户密码
alter user ‘用户名' @ '主机名’identified  with  mysql_native_password by ‘新密码’;
4.  删除用户
drop user ‘用户名' @ '主机名’;

6.3  权限控制

mysql中定义了很多种权限,但是常用的就以下几种:
     权限                                 说明
all, all privileges                  所有权限
select                                   查询数据
insert                                  插入数据
update                                修改数据
delete                                  删除数据
alter                                    修改表
drop                                    删除数据库/表/视图
create                                  创建数据库/表

注意:
·多个权限之间,使用逗号分隔
·授权时,数据库名和表名可以用*进行通配,代表所有

下面是几个常见的操作:

1.查询权限
show grants for ‘用户名’@‘主机名’;
2.授予权限
 grant 权限列表  on 数据库名.表名 to ‘用户名’@‘主机名’;
3.撤销权限
revoke  权限列表 on 数据库名.表名 from ‘用户名’@‘主机名’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值