1基础指令
进入数据库操作系统:
mysql -uroot -proot
查看数据库系统:
show databases;
选择数据库:
use db_name;
查看所有数据表:
show tables;
创建数据表:
create table tb_name(field type(length) constraint extra);
删除数据表:
drop table tb_name if exist;
查看表结构:
desc tb_name;
查看表数据:
select field1,field2,field3... from tb_name where ...;
添加表数据:
insert into tb_name(field1,field2,...) values(value1,value2,...);
修改表数据:
update tb_name set field1 = value1,field2=value2,...where...;
删除表数据:
delete from tb_name where...;
2.约束
-
主键约束:
primary key
特点:非空且唯一;一个表中可以有多个主键,作为联合主键;创建多个主键时需要使用表级约束创建
-
外键约束:
foreign key
特点:建立两个表的链接;外键值必须等于主表主键的某个值;一个表可以有多个外键
-
非空约束:
not null
该列字段不能为null
-
默认约束:
default value
自定义默认值,当不传值时,系统自动使用默认值
-
唯一约束:
unique
该列字段数据唯一,该列至多可以有一个值为空
-
主键自增:
auto_increment
一个表至多只能有一个自增字段,且该字段必须为主键
3.单表查询命令
-
select * | 字段名
-
[from 表名1,表名2,...]
-
[where condition]
运算符----mod,(10,3)
in()| not in()
is null | is not null
between ...and... | not between...and...
-
[group by field]
-
[having condition]
-
[order by field desc]
-
[limit offset,row]
4.连接结构查询
union
union all
5.常用聚合函数
count(*|field)
sum()
max()
min()
avg()
sqrt()
md5()|sha() |password()
concat(str1,str2,str3...)
now() 返回当前系统的时间
year()
group_concat()
6.表连接查询
-
内连接
自连接:将同一张表,看成两张不同的表,根据需求,找出关联字段
[inner] join 表名 on 连接条件
-
外连接
left outer join...on...
以左表为基准,从右表中查不到的数据,使用null填充
right outer join...on...
以右表为基准,从左表中查不到的数据,使用null填充
-
多表连接查询的本质:将多张表关联后,看成一张字段很多的新表,然后按照单表查询,完成结果集的展示
-
交叉连接(结果就是笛卡尔积)
7.子查询
-
定义:满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件
-
any(任意一个),all(全部)关键字
-
EXISTS 子查询结果没有返回给外层查询false,外层查询不执行
-
IN(NOT IN) 当不知道子查询的结果为一个还是多个时使用
-
= 子查询只有一个结果是使用(主键)
8.MySQL正则表达式 '^ $'
以^ 开头 以$结尾
. 表示只有一个
*任意多个(eg: '^ba**')b后出现a的记录
+0或多个
| 或 [] 一位字符 \w 字母数字下划线 \d 数字
' [^a] 表示除了a
{M,N} 指定字符串出现的次数
9.事务
-
transaction,
是有一个或多个SQL语句组成的操作集合,要么全成功,要么全失败
-
事务的特性(ACID):
-
原子性Atomicity 事务就像原子,不可分割,组成事务的DML操作语句要么全成功,要么全失败
-
一致性Consistency 一旦失误完成,不管是成功还是失败,整个系统处于数据一致的状态
-
隔离性Isolation 一个事务的执行不会被另一个事物干扰
-
持久性Durability事务一但提交,不可回滚
-
SET autocommit = 0 手动提交,1为自动提交
-
事务的开始(查询不需要添加事务)
在一个事务中,第一次遇到DML/DDL
上一个事务结束,第一次遇到DML/DDL,自动开启
-
事务的结束
commit 显示
rollback 隐式
10索引
1.简介
索引是一个单独的、存储在磁盘上的数据库结构,包含对数据表的所有记录的引用指针。
2.特点
-
优点
提高系统性能
加快数据查询速度
加快表和表的连接
在使用分组和排序查询子句时,显著减少时间
-
缺点
消耗添加过程时间
占用磁盘空间
当有增删改的时候,索引也要对应改动,降低了数据库的维护速度
3.分类
6大类(选择或填空)
普通索引和唯一索引
单列索引和组合索引
全文索引
空间索引
4.创建索引
-
原则
并非越多越好
避免对经常更新的表进行过多的索引,并且索引中的列尽可能少
数据量小的表最好不要使用索引
在条件表达式中经常用到的不同值较多的列上建立索引,在不同值少的列上不要建立索引
当唯一性是某种数据本身的特征时,指定唯一索引
在频繁进行排序或分组的列上建立索引
-
语法(了解)