SQL的含义
Structured-结构 Query-查询 Languag-语言
sql是一种过程语言(侧重于步骤)
SQL的作用
数据库操作语言
SQL的构成
DML:数据操作语言(insert update delete)
DQL:数据查询语言(select)
DDL:数据定义语言(create drop alter)
DCL:数据控制语言(grant revoke)
TCL:事务控制语言(commit rollback)
数据库分类
关系型:
层次性:
网状型:
常用的数据库:
数据库名称 | 所属公司 | 国家 | 规模和描述 |
Mysql | Oracle公司(瑞典AB) | 美国 | 中小型、免费、关系型 |
Oracle | Oracle | 美国 | 大型关系对象型 |
Sql-server | Microsoft | 美国 | 大型关系型数据库 |
DB-2 | IBM | 美国 | 大型数据库 |
Sys-base | Sys-info | 美国 |
SQL的语法
from:表名
select 字段名 【别名】
where:条件
group by:分组
having:筛选
order by:排序-排序规则-asc升序-desc降序(默认:asc-升序)
limit
聚合函数 sum(求和)count(记录数)max(最大值)min(最小值)avg(平均值)
删除数据库
DROP database if EXISTS 数据库名;
创建数据库
CREATE database if not exists 数据库名 default CHARACTER set utf8;
使用数据库
use 数据库名;
删除表
DROP TABLE IF EXISTS 表名;
创建表
create table IF NOT exists 表名(
字段名称 数据类型(大小) 约束条件,
.....
);
删除数据
#删除数据
delete from 表名
#删除数据,并重置id
truncate table 表名
MySQL语法顺序
select->from ->join(如left join) ->on ->where ->group by ->having ->union ->order by ->limit
MySQL执行顺序
From->on ->join ->where ->group by ->having ->select ->distinct ->union ->order by
SQL数据类型
数字类型:int float double decimal(货币)
字符类型:char(固定长度)、varchar(可变长度)
区别 | char | varchar |
长度 | 固定 | 可变 |
效率 | 高 | 低 |
空闲 | 浪费 | 节省 |
日期类型:datetime(年月日小时分钟秒)date(年月日)
约束 | 语法 | 作用 |
主键 | primary key | 通过主键找到唯一的一条数据 |
唯一 | unique | 该字段的值不可重复 |
非空 | not null | 该字段的值不可为空 |
外键 | foreign key | 保持数据一致性、完整性 |
默认 | default | 为该字段设置默认值 |
自定义 | check(mysql8.0以上支持) | 自定义约束 |
存储过程
语法:
#创建存储过程
create PROCEDURE 存储过程名称()
...Sql语句
#删除存储过程
drop 存储过程名-不需要()
调用存储过程
call 存储过程名-需要()
触发器
触发器:(难点:注意:OLD和NEW的使用!!)
OLD 删除时、更新时
New: 插入数据时
注意:触发器只是针对: insert、update和delete ,select没有触发器
特点:自动执行、无需调用(特殊的存储过程)、本身就是事务(保证数据的完整性、一致性
语法:
#创建触发器
DELIMITER //
create trigger 触发器名 before 增删改 on 操作表名 for each row
begin
...进行的增删改操作
end //