zoukankan      html  css  js  c++  java
  • day 7-12 数据库的基本操作和存储引擎

    一. 储备知识

      数据库服务器:一台高性能计算机

      数据库管理系统:mysql(mssql等),是一个软件

      数据库:db1(student_db),是一个文件夹

      表:studen_info 是一个文件

      记录:1 jack 18 male 133****1234  一条记录学生信息的内容

    二. SQL语言

      SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:

     1、DDL语句    数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
    
     2、DML语句    数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
    
     3、DCL语句    数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

    三. 创建数据库及常用操作

     1.数据库的命名规则:

      可以由字母、数字、下划线、@、#、$(一般不推荐在数据库名字中使用特殊符号)
      区分大小写
      唯一性
      不能使用关键字如 create select
      不能单独使用数字
      最长128位

      2.数据库的常用操作.

    注:进入mysql的时候,需要以root身份登录(msyql -uroot -p),否则会报错: Access denied for user ''@'localhost' to database 'db8'

    操作文件夹(库)
    #
            create database db1 charset utf8;
    #
            show create database db1;    #查看指定的数据库
            show databases;                #查看所有的数据库
    #
            alter database db1 charset gbk;    #更改db1数据库的字符编码
    #
            drop database db1;        #删除db1数据库
    #    其他
            select database();  #查看当前所在数据库
            use db1;                #切换到db1数据库
    操作文件(表)
        切换文件夹(数据库):use db1  # 切换到指定的数据
        查看当前所在文件夹(数据库):select database();
        增
            create table t1(id int,name char);    #创建一个表
        
    create table t1(id int,name char(3)); #指定name字段的长度

            show create table t1;            #查看表结构
            desc t1;                        #查看表结构(推荐)
            show tables                        #查看所有的表
        改
            alter table t1 modify name char(6);    #更改name字段的长度
            alter table t1 change name NAME char(10);    #更改字段名称和长度
        删
            drop table t1;            #删除表
    操作文件内容(记录)
        增
            insert t1(id,name) values(1,"alex"),(2,"jack"),(3,"lili");        #向表t1插入多个字段值
        查
            select id,name from db1.t1;        #查看db1下面t1表.如果查看当前数据的下表,可以省略数据库名(db1)
            select * from db1.t1            #查看所有信息 
        改
            update db1.t1 set name="boy";        #更改t1中name字段的所有值
            update db1.t1 set name="SB" where id =2;        #仅更改id为2的名字
        删
            delete from db1.t1;        # 删除表中所有的数据
            delete from db1.t1 where id =2; #删除表中id为2的数据

    四. 存储引擎

      存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)

      SQL 解析器、SQL 优化器、缓冲池、存储引擎等组件在每个数据库中都存在,但不是每 个数据库都有这么多存储引擎。MySQL 的插件式存储引擎可以让存储引擎层的开发人员设 计他们希望的存储层,例如,有的应用需要满足事务的要求,有的应用则不需要对事务有这 么强的要求 ;有的希望数据能持久存储,有的只希望放在内存中,临时并快速地提供对数据 的查询。

      

      一种类型表明的是一种存储方式
      存储引擎:就是表的类型,不同的类型就会对应不同的处理机制去处理他
      事务:就是要么同时成功,要么同时不成功

    四-1.使用存储引擎

      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.在配置文件中指定

      

    [mysqld]
    default-storage-engine=INNODB
    innodb_file_per_table=1

     五.基本操作语句语法

      1.插入数据(insert)

    1. 插入完整数据(顺序插入)
        语法一:
        INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n);
    
        语法二:
        INSERT INTO 表名 VALUES (值1,值2,值3…值n);
    
    2. 指定字段插入数据
        语法:
        INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…);
    
    3. 插入多条记录
        语法:
        INSERT INTO 表名 VALUES
            (值1,值2,值3…值n),
            (值1,值2,值3…值n),
            (值1,值2,值3…值n);
            
    4. 插入查询结果
        语法:
        INSERT INTO 表名(字段1,字段2,字段3…字段n) 
                        SELECT (字段1,字段2,字段3…字段n) FROM 表2
                        WHERE …;

      2.更新数据(update)

      

    语法:
        UPDATE 表名 SET
            字段1=值1,
            字段2=值2,
            WHERE CONDITION;
    
    示例:
        UPDATE mysql.user SET password=password(‘123’) 
            where user=’root’ and host=’localhost’;

      3.删除数据(delete)

      

    语法:
        DELETE FROM 表名 
            WHERE CONITION;
    
    示例:
        DELETE FROM mysql.user 
            WHERE password=’’;
    
    练习:
        更新MySQL root用户密码为mysql123
        删除除从本地登录的root用户以外的所有用户
  • 相关阅读:
    设计模式之工厂模式
    东方通 部署项目 报错 内存溢出解决
    java8提取对象集合中的一项属性
    vue 函数节流
    ALINK(三十一):特征工程(十)特征选择(二)卡方选择器 (ChiSqSelectorBatchOp)
    ALINK(三十):特征工程(九)特征选择(一)主成分分析(PcaTrainBatchOp/PcaPredictBatchOp)
    ALINK(二十九):特征工程(八)特征组合与交叉(三)Hash Cross特征 (HashCrossFeatureBatchOp)
    ALINK(二十八):特征工程(七)特征组合与交叉(二)Cross特征预测/训练 (CrossFeaturePredictBatchOp)
    ALINK(二十七):特征工程(六)特征组合与交叉(特征组合也叫特征交叉)(一)
    ALINK(二十六):特征工程(五)特征离散化(五)二值化 (BinarizerBatchOp)
  • 原文地址:https://www.cnblogs.com/lovepy3/p/9304859.html
Copyright © 2011-2022 走看看