zoukankan      html  css  js  c++  java
  • 数据库之基本操作和存储引擎

    一、知识储备

    数据库服务器:一台计算机(对内存要求比较高)

    数据库管理系统:如mysql,是一个软件

    数据库:oldboy_stu,相当于文件夹

    表:student,scholl,class_list,相当于一个具体的文件

    记录:1 susan  158426544   22,相当于文件中的一行内容

    二、初始SQL语言

    SQL(Structured Query Language 即结构化查询语言)
    SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
    DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
    DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
    DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

    、创建数据库

    数据库命名规则:

    可以由字母、数字、下划线、@、#、$
    区分大小写
    唯一性
    不能使用关键字如 create select
    不能单独使用数字
    最长128位
    create database db1

    五、数据库相关操作

    数据库的相关操作
    注意:数据库就相当于文件夹
          表就相当于文件
    数据库的命名规则:

    一.数据库的增删改查(sql语句) 增:
    create database db1; 删:drop database db1;

    改:alter databas db1 charset utf8 查:show databases;

    #查看所有的数据库 show
    create database db1;
    查看指定的数据库 设置默认的utf8,在配置文件中:写上character_set_server
    = utf8 use db2
    #代表你鼠标双击切换目录
    select database() #查看你当前在哪个文件夹
    二.表的增删改查
    增:create table  t1(id int ,name char);  (t1.frm 表结构  ,t1.ibd 表数据) 
    删:drop table t1;
    方式1:
    delete from tab_name [where ....]
    
    方式2:
    truncate table emp_new;
    
                /*    
                如果不跟where语句则删除整张表中的数据
                delete只能用来删除一行记录
                delete语句只能删除表中的内容,不能删除表本身,想要删除表,用drop
                TRUNCATE TABLE也可以删除表中的所有数据,词语句首先摧毁表,再新建表。此种方式删除的数据不能在
                事务中恢复。
                */
    改:update tab_name set field1=value1,field2=value2,......[where 语句] 
    插入数据:
    insert into test(id,name) values(1,'x')
    <1>插入一条记录:
    
      insert [into] tab_name (field1,filed2,.......) values (value1,value2,.......);
        
    
    <2>插入多条记录:
      insert [into] tab_name (field1,filed2,.......) values (value1,value2,.......),
                                            (value1,value2,.......), 
                                 ...                               ;
    
    <3>set插入:
      insert [into] tab_name set 字段名=值 
    不写给谁传值就指定都传,而且还是按照位置传 查:show tables; 
    #查看所有表 show
    create table t1;
    #查看指定的表
    select * from t1
    #查看表数据
    select id,name from t1
    #查看表数据 engine
    = InnoDB 表的存储引擎是InnoDB

    三.修改表结构
     -- (1)增加列(字段)
          alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名];
          
          #添加多个字段
          alter table users2 
                add addr varchar(20),
                add age  int first,
                add birth varchar(20) after name;
    
       -- (2)修改一列类型
          alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
          -- (3)修改列名
          alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名];
         -- (4)删除一列
          alter table tab_name drop [column] 列名;-- (5)修改表名
          rename table 表名 to 新表名;
    
       -- (6)修该表所用的字符集    
          alter table student character set utf8;
     

    六、什么是存储引擎?

    存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方

    法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)

    SQL 解析器、SQL 优化器、缓冲池、存储引擎等组件在每个数据库中都存在,但不是每 个数据库都有这么多存储引擎。MySQL 的插件式存储引擎

    可以让存储引擎层的开发人员设 计他们希望的存储层,例如,有的应用需要满足事务的要求,有的应用则不需要对事务有这 么强的要求 ;有的希望数据

    能持久存储,有的只希望放在内存中,临时并快速地提供对数据 的查询。 

    一种类型表明的是一种存储方式

    存储引擎:就是表的类型,不同的类型就会对应不同的处理机制去处理他

    事务:就是要么同时成功,要么同时不成功

    使用存储引擎

    方法1:建表时指定

    存储引擎
    1.create table t1(id int) engine = innodb 会出现2个文件
    2.create table t2(id int) engine = myisam 会出现3个文件(速度比上面的快),但是我们还是用innodb存储 
    3.create table t3(id int) engine = memory 只有表结构没有表数据,是创建到内存中的
    4.create table t4(id int) engine = blackhole  黑洞,吃数据(数据存进去就没有了,存进去就没有了)

    方法2:在配置文件中指定默认的存储引擎

    /etc/my.cnf
    [mysqld]
    default-storage-engine=INNODB
    innodb_file_per_table=1
  • 相关阅读:
    SysUtils.CompareText的注释
    获取进程列表及相关信息
    基于OpenCV的视频图像组态 (4) :劈裂动画效果
    基于OpenCV的视频图像组态 (3):常见PPT动画1
    基于OpenCV的视频图像组态 (2) :动画总体
    基于OpenCV的视频图像组态 (1) :时钟
    基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)
    小型便携式交互板安装设计
    小型便携式交互板安装设计
    乂文®便携触摸屏
  • 原文地址:https://www.cnblogs.com/lujiacheng-Python/p/9913931.html
Copyright © 2011-2022 走看看