MySQL数据库(一)

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.创建索引

  • 原则

并非越多越好

避免对经常更新的表进行过多的索引,并且索引中的列尽可能少

数据量小的表最好不要使用索引

在条件表达式中经常用到的不同值较多的列上建立索引,在不同值少的列上不要建立索引

当唯一性是某种数据本身的特征时,指定唯一索引

在频繁进行排序或分组的列上建立索引

  • 语法(了解)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值