- 数据库,是我们如今存储和处理大批量数据的仓库。我们平时所说的数据库呢,通常指的数据库管理系统(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表示每页数据条数
以上是单表查询中的基本语句格式,之后会对多表查询、连接方式进行进一步说明。