美容 北京 公司 网站建设,昆明网站建设天猫运营,wordpress 调用小工具栏,佛山网站优化建设1. DDL
常见数据库操作
# 查询所有数据库
show databases;
# 查询当前数据库
select databases();# 使用数据库
use 数据库名;# 创建数据库
create database [if not exits] 数据库名; # []代表可选可不选# 删除数据库
drop database [if exits] 数据库名;
常见表操作
创建…1. DDL
常见数据库操作
# 查询所有数据库
show databases;
# 查询当前数据库
select databases();# 使用数据库
use 数据库名;# 创建数据库
create database [if not exits] 数据库名; # []代表可选可不选# 删除数据库
drop database [if exits] 数据库名;
常见表操作
创建表
create table 表名(字段1 字段类型 [约束] [comment 字段1备注信息],...字段n 字段类型 [约束] [comment 字段n备注信息]
)[comment 表备注信息];# eg:
create table tb_user(id int primary key comment ID,唯一标识,username varchar(20) not null unique comment 用户名,name varchar(20) not null comment 姓名,age int comment 年龄,gender char(1) default 女 comment 性别
)comment 用户表;
常见约束 # 查询当前数据库的所有表
show tables;
# 查询表结构
desc 表名;
# 查询建表语句
show create table 表名;
# 添加字段
alter table 表名 add 字段名 类型(长度) [comment 备注信息] [约束];
# 修改字段类型
alter table 表名 modify 字段名 新数据类型(长度);
# 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 备注信息] [约束];
# 删除字段
alter table 表名 drop column 字段名;
# 修改表名
rename table 表名 to 新表名;
2. DML(数据操作语言)
插入insert
# 指定字段添加数据
insert into 表名(字段1,字段2) values(值1,值2);
# 全部字段添加信息
insert into 表名 values(值1,值2);
# 批量添加数据指定字段
insert into 表名(字段1,字段2) values(值1,值2),(值1,值2);
# 批量添加数据全部字段
insert into 表名 values(值1,值2),(值1,值2); 注意事项 1. 插入数据时指定的字段顺序需要与值的顺序一一对应 2. 字符串和日期型数据应该包含在引号中 更新update
# 修改数据
update 表名 set 字段名1值1,字段名2值2 [where 条件]; 删除delete
# 删除数据
delete from 表名 [where 条件]; 注意事项 1. 如果没有where 条件则会清空表 2. delete不能删除某一个字段的值如果要操作可以使用update将该字段的值设为null 3. DQL(数据查询语言) select
# 语法
select 字段名1,字段名2 from table 表1,表2
where 条件列表
group by 分组字段列表
having 分组后条件列表
order by 排序字段列表
limit 分页参数 基本查询
# 查询多个字段
select 字段1,字段2 from 表名;
# 查询所有字段
select * from 表名;
# 设置表名
select 字段1 as 别名1,字段2 as 别名2 from 表名;
# 去除重复记录
select distinct 字段列表 from 表名;
条件查询where 分组查询group by 注意事项 1. null 不参与所有聚合函数运算 2. 统计数量推荐使用 count(*) # 语法
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组过滤条件];
# eg:查询入职时间在‘2015-01-01’包含以前的员工并对结果根据职位分组获取庺数量大于等于2的职位
select job,count(*) from tb_emp where entrydate ‘2015-01-01’ group by job having count(*) 2;
排序查询order by
# 语法
select 字段列表 from 表名 [where 条件列表] [group by 分组字段] order by 字段1 排序方式1,字段2 排序方式2; 默认排序方式asc升序 desc降序 如果是多字段值排序只有在前一个字段值相同的情况下才会根据下一个字段排序 分页查询limit
select 字段列表 from 表名 limit 起始索引,查询记录数; 注意事项 1. 起始索引从0开始起始索引查询页码-1* 每页显示的记录数 2. 如果查询的是第一页数据起始索引可以省略直接简写 limit 查询记录数 补充if条件语句 if条件语句 if(条件表达式,true取值,false取值) case表达式 case 表达式 when 值1 then 结果1 when 值2 then 结果2 else 其他结果 end # eg1: 性别存储时男存储的1女存的2
select if(gender 1 ,男,女) 性别, count(*) from tb_emp group by gender;
# eg2: 职位在存储时1班主任 2讲师 3学工主管 4教研主管 else 未分配职位
select (case job when 1 then 班主任 when 2 then 讲师 when 3 then 学工主管 when 4 then 教研主管 else 未分配职位) 职位, count(*)
from tb_emp group by job; 4.多表操作
外键
# 创建表时指定
create table 表名(...[constraint] 外键名称 foreign key(外键字段名) references 主表(字段名)
);
# 建完表后添加外键
alter table 表名 add constraint 外键名称 foreign key(外键字段名) references 主表(字段名); 内连接
# 隐式内连接
select 字段列表 from 表1,表2 where 条件;
# 显示内连接
select 字段列表 from 表1 [inner] join 表2 on 连接条件;
外连接
# 左外连接
select 字段列表 from 表1 left join 表2 on 连接条件;
# 右外连接
select 字段列表 from 表1 right join 表2 on 连接条件; 5. 事务
概念事务是一组操作的集合它是不可分割的工作单位。事务会把所有操作作为一个整体一起向系统提交或撤销操作请求即操作要么同时成功要么同事失败。
事务控制
# 开启事务
start transaction; / begin;
... 操作语句
# 提交事务
commit;
# 回滚事务
rollback;
四大特性ACID
原子性 事务是不可分割的最小单元要么全部成功要么全部失败
一致性 事务完成时必须使所有的数据都保持一致的状态
隔离性 数据库系统提供的隔离机制保证事务在不受外部并发操作影响的独立环境下运行
持久性 事务一旦提交或回滚它对数据库中的数据的改变就是永久性的
6. 索引
概念索引是帮助数据库高效获取数据的数据结构默认BTree多路平衡搜索树
优点提高查询和排序的效率
缺点占用磁盘空间、降低了insert、update、delete的效率
语法
# 创建索引
create [unique] index 索引名 on 表名(字段名,...);
# 查看索引
show index from 表名;
# 删除索引
drop index 索引名 on 表名; 注意事项 1. 主键字段在建表时会自动创建主键索引 2. 添加唯一索引约束时数据库会添加唯一索引