SQL 基础

本文概述了MySQL数据库的基本操作,包括表的创建、字段类型、根据搜索结果创建表、删除、插入、更新和查询,以及事务处理、事务隔离级别、索引的使用和维护、视图的概念和数据库范式原理。
摘要由CSDN通过智能技术生成

创建

**************************************************************************************************************

1、创建表

create table 表名( 

       字段          varchar(255)        default   默认值,

       ........         char(255)             not null ,

       .........        int(11)                  unique ,  自动安排索引  pk也是

       .........       bigint()                  primary key   只能有一个      auto_increment 从1开始自动分数  

       .........       clob()                   非常多的字符

       .........       blob()                    非常多的二进制

       .........       data()                   %y  %m  %d  默认格式 年-月-日  str_to_date('日期字符串','格式')

       .........       datatime()    now() %h  %i   %s  默认格式  时:分:秒 data_format(字段,'格式')  

      unique()

      primary key()

      foreign key()  references 父表(字段)  删除 先子后父    增或创建  先父后子

);

2、根据搜索结果创建表

    create table 表名 as select.........

**************************************************************************************************************

删除

**************************************************************************************************************

drop table if existed 表名

**************************************************************************************************************

**************************************************************************************************************

insert into 表 (....) values (.....) 

insert into 表 select....

**************************************************************************************************************

**************************************************************************************************************

delete from 表 where ....  只删数据不删表,速度慢,可找回

truncate table 表  快速删除,不能找回

**************************************************************************************************************

**************************************************************************************************************

update  表 set  字段=... where .....

**************************************************************************************************************

**************************************************************************************************************

select....from...where...group by...having....order by....limit..... 

where:

          1、<>=

          2、between ........and......

          3、is null / is not null

          4、and 优先级大于 or

           5、 in (..)  替换 or  

           6、 like  %  _          %多个字符,_一个字符

单行处理函数  

       .........................

分组函数

     max()

      min()

      sum()

      avg()

      count() 

额外

      distinct()  去重

     union   拼接查询结果

     limit (pageno-1)*pagesize,pagesize

**************************************************************************************************************

事务

**************************************************************************************************************

增,删,改

commit     提交事务      本质:保存

rollback   回滚事务      本质:撤销操作,回到上一个保存点

Mysql 默认情况下 自动执行 commit    

切换成手动:start transaction

事务四个特性:原子性,一致性,隔离性,持久性

事务和事务的隔离级别:

       读未提交: read uncommited     低

       读已提交: read commited            oracle默认级别

       可重复读: repeatable read           mysql默认级别

       序列化/串行化: serializable      高

查询隔离级别:select @@tx_isolation

**************************************************************************************************************

索引

**************************************************************************************************************

 本质:自平衡二叉树

使用场景:数量庞大,经常出现在where 后,很少出现在 insert ,delete, update 

建议:不要随意使用,因其需要维护,太多降低性能  建议使用pk 和 unique 查询

创建索引: 

             create index .....索引名.....  on   表(字段)

删除索引:

              drop index .......索引名....    on   表 

索引失效:

                   1、模糊查询  like '%..'   会失效 ,因为以%开头,不确定

                    2、 or       使用  or  两端要么都有索引,要么都没有

                    3、使用复合索引  没有使用左侧列

                    4、where里面使用  索引列计算,索引失效

                    5、where  索引列 使用函数  失效

地位:  数据库优化重要手段

**************************************************************************************************************

视图

**************************************************************************************************************

站在不同的角度看同一份数据

create view ..... as select .....

**************************************************************************************************************

数据库范式

**************************************************************************************************************

数据库表  依据     数据库范式  避免冗余,但有时为了满足客户需求,可以用冗余换时间

第一范式    :     有主键       字段原子性不可分     解决: 分开字段

第二范式     :    第一范式基础上    完全依赖   不要产生部分依赖    解决:分表  

第三范式     :     第二范式基础上    直接依赖    不要产生传递依赖      解决:分表

多对多     三个表, 多  多   对(外键)

一对多     两个表     一   对多(外键)

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值