SQL语句基础详解

  • 数据库,是我们如今存储和处理大批量数据的仓库。我们平时所说的数据库呢,通常指的数据库管理系统(DBMS),按存储方式又分为关系型数据库以及非关系型数据库。
  • 本文以最常见的关系型数据库Mysql为例,主要谈谈SQL语句的类型及基本语法
  • SQL语句作为关系型数据库(RDBMS)的规范,得到广泛应用,比如Mysql、Orade、SQLite、SQLserver等。作为一个通用语法,其特点主要有不区分大小写、多行书写、分号结尾、以(#、--、/* */)注释。根据具体功能的不同,又分为以下几类:
  • DCL 数据控制语言 data control language

        DCL语句的功能主要是 创建用户、设置相应权限及访问安全级别。作为一名打工仔,大部分人都用不上,故不详述。

  • DDL 数据定义语言 data define language

        DDL语句的功能主要是操作数据库、数据表、列。

# 操作数据库
-- 展示全部的数据库
show databases;
-- 创建一个数据库,加上if not exists即不存在同名库就创建,charset指定编码格式
create database if not exists 数据库名 charset utf8;
-- 修改数据库的编码格式
alter database 数据库名 charset gbk;
-- 删除数据库
drop database 数据库名;
-- 查看某个数据库
show create database 数据库名;

# 操作数据表
-- 展示全部的数据表
show tables;
-- 创建一个数据表,加上if not exists即不存在同名表就创建
create table if not exists 数据表名(列名1 类型 约束,列名2 类型 约束,...);
-- 删除数据表
drop table 数据表名;
-- 查看某个数据表
show create table 数据表名;
-- 查看表结构
desc 数据表名;

# 操作列
-- 新增列
alter table 数据表名 add 列名 类型 约束;
-- 修改列的数据类型及约束
alter table 数据表名 modify 列名 类型 约束;
-- 修改全列信息
alter table 数据表名 change 旧列名 新列名 类型 约束;
-- 删除列
alter table 数据表名 drop 列名;
  • DML 数据管理语言 data manage language
# DML语句主要包括增删改三个操作,对象是表数据
-- 新增表数据  只写数据表名,默认为全列值插入
insert into 数据表名(列1,列2,...) values(数1,数2,..),(数1,数2,..);
-- 扩展 上述是按行插入数据,那么如果我想按列放入数据,该如何操作?
insert into 数据表名 子查询; # 子查询的列数要与数据表的列保持一致

-- 修改表数据 如下是对id为1的那一行修改,如果没有where,则是对全表修改
update 数据表名 set 列1=修改值,列2=修改值,... where id=1;

-- 删除表数据 
delete from 数据表名 where id=1; # 不写where,则是删除整表
truncate 数据表名; # 该方式在清空整表的同时,重置主键列
  • DQL 数据查询语言 data query language
# DQL 查询语言  各位学习mysql的重点
-- 简单查询
select * from 数据表名; # *表示全表
-- 组前查询
select * from 数据表名 where 条件;
/*
条件可以包括:①比较运算符 大于> 不等于<>
             ②逻辑运算符 与and  或or
             ③范围控制  between and   in()   not in()
             ④判空  is null/is not null
             ⑤模糊查询 like 字段名,字段名的通配符:_代表一个任意字符、%代表0或多个任意字符
*/


-- 聚合分组查询  根据谁就根据谁查询,常与聚合函数搭配使用
-- 聚合函数 count() max() min() avg() sum()
select 分组字段1,分组字段2,count(字段3) from 数据表名 group by 分组字段1,分组字段2;

-- 组后查询
select 字段 from 数据表名 group by 分组字段 having 分组后的筛选条件;

-- 排序查询 当第一个字段相等时,比较第二个字段
select * from 数据表名 order by 字段名1 asc|desc,字段名2 asc|desc;



-- 分页查询
select * from 数据表名 limit m,n; # m表示起始索引 n表示每页数据条数

        以上是单表查询中的基本语句格式,之后会对多表查询、连接方式进行进一步说明。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值