• Day3-体系结构+查询+导入/出


    Mysql体系结构

    Mysql存储引擎

    存储引擎——处理不同类型表的处理器

            不同的存储引擎有不同的功能和存储方式

            在建表时可以设置表使用的存储引擎

            若不设置,新建的表使用mysql服务默认的存储引擎。

    Show engines    查看当前数据库服务支持的存储引擎

    Innodb    |default    Supports transactions, row-level locking, and foreign keys

        .frm    表结构        .ibd表记录和表索引        学名:共享表空间

    Myisam    不支持外键,不支持事务

    .frm    表结构     .myd    表记录        .myi    表索引        独享表空间

    修改mysql配置文件

    修改 默认存储引擎

       

    事务——一次sql操作从开始到结束过程

    事务回滚——若一次SQL操作没有成功,就把数据还原到操作之前的状态——例:向银行转账,若转账不成功,回滚

    锁机制——可锁记录或锁表

    解决并发访问冲突问题

    锁的范围取决于存储引擎

    读锁(共享锁)

    写锁(排它锁    互斥锁)

       

    Mysiam    表锁        查看比较多的使用该引擎

    Innodb        行锁        写操作比较多的使用该引擎

       

    Mysql体系结构——8个

    1连接池(内存    CPU    进程数)

    客户端要提供连接工具——语言连接数据库

    2管理工具    提供mysql数据库服务的软件自带的命令

    3 SQL接口——传递SQL命令给MYSQLD进程

    4分析器——SQL命令格式是否正确,对操作操作的库、表是否有使用权限

    5优化器——优化执行的SQL语句,让系统使用最少的资源去执行SQL命令

    6缓存区——在mysql数据库服务时,会划分一定的系统物理内存给mysql服务做缓存

    7储存引擎    myisam    innodb    

    8文件系统——存储设备/var/lib/mysql/数据库名/表.*

       

    数据导入——把系统文件的内容保存到数据库服务器的表里

        可以把系统用户信息保存数据库服务器的表里    

    mysql> create table user_user(user varchar(30),password char(1),uid int(2),gid int(2),comment varchar(50),home varchar(50),shell varchar(50),index(user) );

    mysql> load data infile '/etc/passwd' into table user_user fields terminated by ':' lines terminated by ' ';

    mysql> alter table user_user add id int(6) primary key auto_increment first;

    数据导入命令

    LOAD DATA INFILE '文件名' INTO TABLE    表名    FIELDS TERMINATED BY '分隔符'    LINES TERMINATED BY ' ';

    导入数据时注意事项

        表中字段的个数要和文件中列的个数相等

        字段的类型要与文件中列的值匹配

       

    数据导出——把数据库表里的记录保存到系统文件里

    mysql> select * from 表名 into outfile '导出的文件位置';

    默认以TAB键为间隔可以使用

    后面加        fields terminated by "符号"——————这是设置列分隔的

    后面加        lines terminated by "符号";——————这是设置行分隔的

    mysql> select * from user_user into outfile '/tmp/user.txt';

    mysql> select * from user_user into outfile '/tmp/user.txt' fields terminated by "#";

    注意事项

    导出的内容由SQL查询语句决定若不指定路径,默认会放在执行导出命令时所在库对就的数据库目录下。就确保mysql用户对目标文件夹有写权限

       

    表记录和基本操作

    select 查     ——不消耗CPU,消耗内存

    select 字段名列表 from 表名;

    select 字段名列表 from 数据库名.表名where 条件表达式;

    字段名列表

    *     所有字段

    字段名

    字段名1、字段名2、字段名…

    条件表达式

    数值比较比较——字段名    比较符号(>、>=、<、<=、=、!=)    数字

    字符比较——字段名    比较符号(=、!=)    "字符串"

    范围内查找

    In    在...里

    Not    in    不在...里

    Between    ....    and——————一般只用于数字,字符很少,不精准

    匹配空    字段名    is    null

    匹配非空    字段名is    not    null

    逻辑比较——查询时使用 2个或2个以上查询条件

    逻辑与    and    多个条件必须同时成立

    逻辑或    or    多个条件只要有一个条件成立就可以

    逻辑非    !    取反

    DISTINCT不显示重复的值

    Select distinct 字段名 from 表名

    模糊查询    like

    Where    字段名 like '表达式'

    %匹配0到多个字符

    _匹配任意一个字符

    使用正则表达式做查询条件

    Where 字段名 REGEXP '正则表达式'

    ^    首

    $    尾

    []    范围

    .    任意一个字符

    查询时可运算——四则运算

        +    -    *    /    %

    常用的统计的函数

    集合的平均值——avg()

    对集合中的各参数求和——sum()

    集合中的最好小值——min()

    集合中的最好大值——max()

    记录的个数——count()

       

    排序    order by    字段名 排序方式

        排序方式——ASC升序(默认) DESC降序

    分组    group by    字段名    [having条件]

    限制显示记录的条目数    limit

    Limit N,M

    N    表示从查询结果的第几条记录开始显示

        默认从查询结果的第1条记录开始显示    第一条记录的编号是零

    M    显示记录的条目数

    update改

    批量修改    update 数据库名.表名    set    字段名="值",字段名="值"

        只修改符合条件的记录中指定字段的值

        批量修改    update 数据库名.表名    set    字段名="值",字段名="值" where 条件表达式

    给表赋空值    update 表名 set comment=NULL

    条件表达式——数值、字符、范围内、空、非空、模糊、正则表达式、逻辑比较

    delete删 ——删除的是整条记录

    删除表中的所有记录delece from 数据库名.表名;

    删除指定的记录delece from 数据库名.表名 where 条件表达式;

    insert增 ——添加一条新记录(默认:新的记录都追加已有记录的末尾)

    添加新记录时,只给记录的某几个字段赋值

        insert into 表名(字段名1,字段名2,字段名..)values(值1,值2,值..)

    添加新记录时,给记录的所有字段赋值

        insert into 表名 values(值1,值2,值..)

    *值与字段类型要匹配

    嵌套查询——消耗资源内存较多

    里层查询结果做为外层查询条件

    select * from 表名 比较( select * from 表名)

  • 相关阅读:
    shell 守护进程
    leetcode Find Minimum in Rotated Sorted Array II python
    find: missing argument to `-exec'
    php fpm start.sh
    mysql alter
    nginx log format
    leetcode Contains Duplicate II python
    webpack
    各种安装包打包发布工具
    VueJS 事件修饰符
  • 原文地址:https://www.cnblogs.com/fina/p/5835840.html
Copyright © 2020-2023  润新知