zoukankan      html  css  js  c++  java
  • Mysql笔记

    SQL分类
    1. 数据查询语言:DQL 代表指令: select/show
    2. 数据操作语言:DML 代表指令: insert/update/delete
    3. 事务处理语言:TPL 代表指令: begin/transaction/commit/rollback
    * 不是所有的关系型数据库都提供事务安全处理
    4. 数据控制语言:DCL 代表指令: grant/revoke
    * 专门用于权限管理
    5. 数据定义语言:DDL 代表指令: create/drop/alter
    * 专门用于结构管理

    启动mysql:net start mysql
    关闭mysql:net stop mysql
    登陆mysql:mysql [-hlocalhost] -uroot -p
    退出mysql:exit,q,quit

    Mysql服务端架构有一下几层构成
    1. 数据库管理系统(最外层):DBMS:专门管理服务器端的所有内容
    2. 数据库(第二层):DB,专门用于存储数据的仓库
    3. 二维数据表(第三层):Table,专门用于存储具体实体的数据
    4. 字段(第四层):Field,具体存储某种类型的数据(实际存储单元)

    创建数据库:create database 数据库名字 [库选项]
    字符集:charset 字符集,如果不指定默认是DBMS(安装时候指定的,校对集随字符集)
    校对集:collate校对集

    显示部分 匹配模式 模糊查询
    获取以my开头的全部数据库:my%
    获取m开头,后面第一个字符不确定,最后为database的数据库:m_database
    获取以database结尾的数据库:%database

    -- 数据库操作 --
    显示数据库创建语句
    #show create database 数据库名字;
    显示数据表创建语句
    #show create table 数据表名字G;

    修改数据库字符集:字符集和校对集
    alter database 数据库名字 charset=字符集
    #create database mydatabase charset gbk;

    -- 数据表操作 --
    存储引擎:mysql提供的具体存储数据的方式,默认有一个innodb(5.5之前默认是myisam)
    复制已有表结构
    #create table 新表名 like 数据库.表名;
    每当一张数据表创建,那么会在对应的数据库下创建一些文件(与存储引擎有关)
    innodb存储引擎所有文件都在外部的ibdata文件中
    @多维度修改表
    修改表名
    #rename table 旧表名 to 新表名;
    修改表选项
    #alter table 表名 表选项 [=] 新值;
    新增字段
    #alter table 表名 add 新字段名 列类型 [列属性] [位置 first/after] 字段名;
    eg: alter table my_student add age int;--默认最后
    first:默认增加到第一个字段
    after:需要指定放在哪个字段之后
    eg:alter table my_student add age int after id;
    修改字段名
    #alter table 表名 change 旧字段名 新字段名 新字段类型;
    eg:alter table user5 change age nj int;
    修改字段类型
    #alter table 表名 modify 字段名 新类型 [新属性] [新位置]
    alter table user5 modify nj2 varchar(60);--可以通过修改字段名修改
    删除字段
    #alter table 表名 drop 字段名;
    删除表结构
    #drop table 表名[,表名2...];


    字符集:
    Mysql.exe与Mysqld.exe之间的处理关系一共分为三层
    客户端传入数据给服务端:client:character_set_client
    服务端返回数据给客户端:server:character_set_results
    客户端与服务端之间的连接:connection:character_set_connection

    set names 字符集的本质:就是一次性打通三层关系的字符集,变得一致
    在系统中有三个变量来记录着这三个关系对应的字符集:show variables like 'character_set%';
    mysql> set names gbk;
    mysql> show variables like 'character_set%';
    +--------------------------+------------------------------------------------------+
    | Variable_name | Value |
    +--------------------------+------------------------------------------------------+
    | character_set_client | gbk |
    | character_set_connection | gbk |
    | character_set_database | utf8 |
    | character_set_filesystem | binary |
    | character_set_results | gbk |
    | character_set_server | utf8 |
    | character_set_system | utf8 |
    | character_sets_dir | F:StudySoftWaremysql-5.7.27-winx64sharecharsets |
    +--------------------------+------------------------------------------------------+
    8 rows in set, 1 warning (0.02 sec)
    解析:
    character_set_client :客户端传入数据
    character_set_connection:连接层
    character_set_database:当前数据库存储方式
    character_set_results:结果返回的字符集
    修改服务器端变量名的值
    set character_set_client=gbk;

  • 相关阅读:
    mysql orderby 查询过慢优化
    js密码复杂度验证
    下载linux指定目录下的文件
    关于对接农业银行支付的问题
    string拼接时去掉最后一个逗号
    java基础题整理(1)
    springboot 读取 resource文件
    自动生成Excel 报表工具类
    java设计模式—— 工厂模式
    pyqt线程实现
  • 原文地址:https://www.cnblogs.com/lszbk/p/12312514.html
Copyright © 2011-2022 走看看