• MYSQL基础知识


    复习一下以前学过的数据库知识

    在mysql配置文件my.ini中默认配置了数据库文件存放目录

    datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

    mysql库选项 :  只有字符集,校对集的概念.

    在数据库目录下db.opt文件中

    default-character-set=utf8
    default-collation=utf8_general_ci

    校对集,指的是,在某个字符集下,字符的排序关系应该是什么,称之为校对集 

    典型的后缀:

    _bin 二进制编码层面直接比较:

    _ci 忽略大小写(大小写不敏感)比较

    _cs 大小写敏感比较

    我们一般选择忽略大小写的校对集.

    数据库名:Windows不区分大小写,linux区分.

     数据库管理操作命令

    查询语句  show databses

      

    可以使用通配符(通用匹配符,可以匹配多个字符)

    % 匹配任意字符的任意次数(包括0次)的组合!

    _ 匹配任意字符的一次!

    注意如需要匹配特定的通配符,则需要对通配符转义,使用反斜杠完成转义

     修改语句

    alter database 数据库名    只能修改数据库选项,即校对集和字符集

    删除语句

    drop database 名字

     表操作

    建表语句

     修改表选项

    alter table table_name [新选项]

    增加字段

    alter table table_name add column 字段定义 [字段位置]

     

    修改已有字段(只能修改字段定义)

    alter table table_name drop column column_name;

     

    增加字段

    alter table table_name modify column column_name 新的定义!

    可以修改位置

     字段改名

    alter table table_name change column 原字段名新字段名新字段定义!

    注意,不是纯粹的改名,而是需要在修改定义的同时改名!

     

    数据存储的编码

    确定数据的存储编码是由以下的方案完成的:

    1,  先看字段的编码!如果存在则确定完毕!

    2,  如果字段没有设置编码,查看表的编码,如果有,则确定数据编码!

    3,  如果表没有编码,查看库的编码,如果有,则确定数据编码!

    4,  如果库也没有编码,则有服务器程序确定!

    客户端操作,查询的编码

    在客户端与服务器端交互时,存在两个重要的编码:

    1. 客户端发送数据的编码

    2. 客户端接收到服务器数据编码.

     set names gbk,就是一个快捷操作,将上面两个配置同时更改成目标编码.

    列约束,字段属性

    null,not null属性约束

    mysql的NULL不是数据,也不是类型!只是标识属性!

    用于说明某个字段,是否可以为null(是否可以什么都不存)

    NULL采用关键NULL表示!(不是字符串)

    是:NULL,而不是:‘NULL’

     

    default 默认属性值约束

    采用 default 关键字,来限定一个字段的默认值,在没有指定字段数据时,采用默认值

    如果一个字段没有指定默认值,那么默认为NULL

     current_timestamp,用在第一个时间戳类型的字段上,表示当前的时间

    典型在很多表上增加一个 update_time 将其默认值设置成 current_timestamp。就可以记录下当前记录的最后操作时间

    主键约束/唯一约束

    删除主键:

    alter table表名 drop primary key;

     

    添加主键

    alter table 表名 add primary key(‘字段列表’);

     

    删除唯一  

    alter table 表名 drop index index_name

     查看索引名字    show create table 

     

    增加唯一

    alter table 表名 add unique key 索引名字 (字段列表)

     

    自动增长  auto_increment

    用于主键,只有一个字段主键,才能使用auto_increment!

    可以,从1开始,逐一递增的数值!

    目的是保证唯一,计算方面!

     unsigned,不是列属性,是类型的一部分(包括zerofill)因此位置上与类型在一起

    comment 注释

    外键约束

    约束的作用,是用于保证数据的完整性或者合理性的工具!

    外键:foreign key,当前表内,指向其他表的主键的字段,称之为外键!

    虚拟表名 dual

    只是为了语法更加规范, 没有实际意义.
    例如 :   select 1 + 1 from dual;

    with rollup

    对group by 分组后的每个结果再进行一次统计

    使用with  rollup 后

    视图

    只是一张select出来的虚拟表, 不保存真实数据.

    mysqldump 备份

    mysqldump -h127.0.0.1 -p3306 -uroot -p data > data.sql  将data数据库备份生成data.sql

    在不使用on语法时,join、inner join、逗号、cross join结果相同,都是取2个表的笛卡尔积。逗号与其他操作符优先级不同,所以有可能产生语法错误,尽量减少用逗号

    join、inner join、cross join支持on和using语法,逗号不支持on和using语法

  • 相关阅读:
    Flink 多流转换算子
    Flink 基本算子map、keyBy、sum、reduce
    Scala 调用方法时加不加小括号
    Hive rank函数开窗
    Hive 窗口函数
    Scala 集合Map的基本操作
    LOJ#2402. 「THUPC 2017」天天爱射击 / Shooting 整体二分+树状数组
    LOJ#106. 二逼平衡树 树套树
    LOJ#2340. 「WC2018」州区划分
    LOJ#2304. 「NOI2017」泳池(70pts) dp
  • 原文地址:https://www.cnblogs.com/tanxing/p/5616292.html
Copyright © 2020-2023  润新知