• 数据库的概念和sql语句


    数据:数字信息 据:就是属性 对一系列对象的具体属性的描述的集合

    数据库:数据库就是用来组织(各个数据之间是有关联。是按照规则组织起来的),存储和管理(对数据的增删改查)的仓库

    数据库是企业的重要信息资产,在使用数据库时,要注意(查和增,无所谓,但是删和改,要谨慎!)

    数据库管理系统(DBMS):实现对数据的有效组织,管理和存取的系统软件

    mysql工作流程

    mysql

    数据库是一个系统,是一个人机系统,硬件,os数据库,DBMS和数据库的用户共同组成

    用户是通过DBMS(各种数据库软件)来对数据库进行操作

    数据库的分类

    mysql :关系型数据库

    redis: 非关系型数据库 es

    关系型数据库

    存储数据的结构是一个二维表格

    表:行 列

    行:纪录,用来描述一个对象信息

    列:字段,用来描述对象的一个属性

    关系型数据库

    mysql(中小类型的数据并发请求)oracle(大数据量还是用它)sql-server mariaDB postgresql

    关系型数据当中,表里面的数据是关联的,表和表之间的数据也是关联起来

    非关系型数据库:保存不是一张表格,key--->value键值对来保存数据,xiaobu = 12

    redis 缓存性的数据库

    es 索引型数据库

    文档型 MongDB

    既然有关联,查询速度相对来说,关系型数据查询速度更慢一些,非关系型数据库可以支持高并发读写,对海量数据依旧保持着高效率的存储的访问

    mysql数据库的存储引擎

    5.5之间:MYISAM,不支持事物和外键的存储引擎,适用于读的多,写的好

    5.6之后默认的存储引擎lnnodb,可以支持事务,外键,行级锁定的存储引擎

    支持高并发性能的应用

    事务:在数据库当中,一个或者多个操作组成的数据操作的序列

    这些操作要么全部成功,失败一个就全部不执行,确保数据一致性和完整性

    事务的特点:原子性,数据库最小工作单元,要么全部执行全部,要么全部不执行,只要有一个操作时间,整个执行的序列,,都会被回滚,完成的操作也会被撤销

    一致性:事务执行执行前后,数据库的完整性约束不能被破坏,只有在满足所有的约束条件情况下,事务才能被提交

    隔离性:事务的执行是相互隔离,一个事物的执行不能受到其他执行事务的干扰,并发事务之间互相隔离,防止数据不一致的情况发生

    持久性:事务一旦提交,他所做的所有修改会被永久的保存在数据中,即使系统崩溃,提交的数据也不丢失,确保数据库始终处于一致性

    mysql的名词

    1、数据库:database

    2、表:table 行:row 列:column

    3、索引:index

    4、视图:view

    5、存储过程:procedure

    6、触发器:trigger

    7、用户:user

    8、权限:privilege

    mysql的语句的规范

    在数据库中,sql不区分大小写,但是建议大写,语句不区分,但是表名是严格区分大小写

    sql语句可以单行也可以多行书写,但是默认都以;结尾的

    关键词不能跨行或者简写

    子语句通常位于度路航,便于编辑,提高可读性

    数据库的命名规则

    必须以字母开头,后面可以包含数据,特殊字符:#_ $

    不要使用mysql的保留字:table select

    数据库名 表名 用户名严格区分大小写

    数据库的字符类型

    int 4个字节,只能存储整数

    char 固定长度的字符串,用来存储定长的字符串

    varchar 可变长度的字符类型,存储可变长度的字符串(无限制的可以随便写,也要根据类型的长度)

    float(m,d) 单精度浮点 存储浮点数,m表示总位数,d表示小数位

    double(m,d) 双精度浮点数,存储浮点数,M也是总位置,d表小数位

    text:用于存储大文本数据,文档,或者长字符串

    image 二进制存储图像,图片,多媒体

    decimal(5,2) 用于存储固定精度的小数,其中5,表示总位数,2表示小数位

    date 存储日期:yyyy-mm-dd

    datetime 存储日志 yyyy-mm-dd hh-mm-ss

    timestamp和datetime格式一致,可以自动的更新为当前的时间戳

    重点

    char varchar

    区别

    '' char 4个字节 ' ' varchar 一个字节

    'ab' char 4个字节 'ab' varchar 3个字节

    'abcd' char 4个字节 'abcd' varchar 5个字节

    char无论你是否定义了值,都会占用固定长度的字节大小

    varchar在保存时,varchar 14 实际长度是5就占用,加一个隐藏符,6个

    varchar比char节省磁盘空间

    但是varchar读写速度比char慢

    都是字符串类型:一定要用单引号(把字符串引起来)

    SQL语句的分类

    DDL

    数据定义语言,用于创建数据对象,创建库 表 索引

    CREATE 创建

    DROP 删除 ALTER 修改

    show global variables like 'port'; 查看数据库使用的端口

     show databases; 查看库

    create database 库名; 创建库

    use 库名;使用库

    创建表

     create table 表名 (id int(4)not null,name varchar(12)not null,passwd char(48),sroce decimal(5,2),primary key(id));

    删除表 drop table 表名;

    删除库 drop database 库名;

    truncate table 表名;清空表内容

    null和空格的区别

    null什么都没有,对象没有任何的描述信息

    空格:也是字符

    DML

    数据操作语言,对表中的数据进行管理

    select 查询

    update 更新

    insert 添加

    delete 删除 对表进行操作

    添加

    方法一

    insert into 表名 (id,name,sroce,passwd) values (1,'名字','90','123');

    方法二

    insert into 表名 values (1,'名字','90','123');

    添加并给密码加密

    insert into xiaokai values (3,'小刘',password('123'),'98');

    给表里面的密码加密

    删除表里的容

    delete from xiaokai where id = 4;

    DQL

    查询数据纪录

    查询

    select * from 表名 where id = 序号;

    select * from 表名 limit 序号1,序号2; 从序号1到序号2

    select * from 表名 limit 序号1; 从开头到序号1

    select distinct sroce from表名 ;去重查询

    select distinct name from 表名 ;

    修改表名

    alter table 原名 rename 将要修改的名字;

    添加一列生日信息

    alter table 表名 add birth date;

    修改空白列的内容

    update 表名 set birth=date('yyyy-mm-rr') where id = 序号;

    修改列名

    alter table 表名 change birth birthday datetime;

    删除列

    alter table 表名 drop 列名;

    改变列的字符类型

    alter table 表名 modify column passwd varchar(52);

    DCL

    数据控制语言,设置或者更改数据库用户或者用户的权限

    GRANT 赋予权限

    REVOKE 取消权限

    TCL 事务控制语句,管理数据库当中的事务

    commit 确认提交事务

    ROLLBACK 事务提交之后无法回滚

    savepoint 保存点,可以回滚

  • 相关阅读:
    万宾科技智能井盖的效果怎么样?
    STM32F10x SPL V3.6.2 集成 FreeRTOS v202112
    【四】关系模型 -- 关系代数
    Pytorch中Tensor类型转换
    java架构知识-设计模式与实践(学习笔记)
    C++ 课堂实验 编写一个能判断数字大小的小程序
    Springboot整合ElasticSearch进行简单的测试及用Kibana进行查看
    bandit agent下棋AI(python编写) 通过强化学习RL 使用numpy
    不就是Java吗之 String类 PartII
    Android拖放startDragAndDrop拖拽onDrawShadow动态添加View,Kotlin(3)
  • 原文地址:https://blog.csdn.net/qq_71147683/article/details/134074902