什么是SQL?
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL的分类
- DDL: 数据库的定义, 与数据库/表结构: create, drop, alter
- DCL: 数据控制语言: 设置用户的访问权限 安全
- DML: 数据操纵语言: 操作表数据 insert update delete
- DQL: 数据查询语言: select from where
数据库操作
操作 | SQL |
---|---|
创建数据库 | create database 数据库的名字 |
删除数据库 | drop database 数据库名字 |
修改数据库 | alter database character set 字符集 |
查看所有数据库 | show databases |
查看数据库定义 | show create database 数据库名字 |
查看当前正在使用的数据库 | select database() |
选中数据库 | use 数据库的名字 |
表结构操作
创建表
create table 表名(
列名 列的类型(长度) 约束,
列名2 列的类型(长度) 约束
);
列的约束
- 主键约束: primary key
- 唯一约束: unique
- 非空约束: not null
删除表
drop table 表名
修改表
操作 | SQL |
---|---|
添加列 | alter table 表名 add 列名 列的类型 列的约束 |
修改列 | alter table 表名 modify 列名 列的类型 列的约束 |
修改列名 | alter table 表名 change 旧列名 新列名 列的类型 列的约束 |
删除列 | alter table 表名 drop 列名 |
修改表的字符集 | alter table 表名 character set 字符集 |
修改表名 | rename table 旧表名 to 新的表名 |
查看表
操作 | SQL |
---|---|
查看当前数据库中所有的表名 | show tables |
查看表的定义结构/创建语句 | show create table 表名 |
查看表的结构 | desc 表名 |
表中数据的CRUD操作
插入数据
- insert into 表名(列名1,列名2)values(值1,值2);
- insert into 表名 values(值1,值2);
- 批量插入:insert into 表名values(值1,值2),(值1,值2),(值1,值2);
删除数据
- delete from 表名 [where 条件];
- 先删除表,再重建表:truncate table 表名;
更新数据
- update 表名 set 列名=值, 列名=值 [where 条件];
查询数据
通用格式
select [distinct] [*] [列名1,列名2] from 表名 where 条件 group by [列名] having 条件过滤 order by 排序1 asc,排序2 desc;
关系运算符
- <> 不等于
- != 不等于
逻辑运算符
- and or not
在范围中
- in
模糊查询
- like
- _ 表示的单个字符
- % 表示的是多个字符
别名查询
- as
聚合函数
- sum : 求和
- avg() : 平均值
- count() : 统计数量
- max() : 最大值
- min() : 最小值
排序
- order by [列名] asc:升序排序
- order by [列名] desc:降序排序
分组
- group by [列名]