Java系列五 mysql小录

    技术2022-07-10  126

    mysql数据库总结

    一.元数据二.数据库操作数据库建库,以项目名开始建库展示当前所有数据库切换当前数据库展示当前数据库中的所有数据表修改数据库数据表更改安全模式删除当前数据库 三.数据表操作新建表展示数据表的字段属性修改数据表的字段属性修改数据表序列的开始值展示以及修改数据表的索引字段属性修改数据表名复制表,展示建库语句删除数据表每一个数据表均可增改删查数据表子句where字句 binary可以忽略大小写,因为使用java规范,严格大小写,不采用忽略的做法like替换 = 号以正则表达式的形式实现模糊查询 % =>-- union 去重结果集处理 分组关联null值处理 四.事物五.导出导入数据库

    所有库名、表名、列名均使用``反引号!

    一.元数据

    select version(); select database(); select user(); show status; show variables;

    二.数据库操作

    数据库建库,以项目名开始建库

    create database if not exists `current_project_name`;

    展示当前所有数据库

    show databases;

    切换当前数据库

    use `current_project_name`;

    展示当前数据库中的所有数据表

    show tables;

    修改数据库数据表更改安全模式

    show variables like "sql_safe_updates"; set sql_safe_updates = 0; set sql_safe_updates = 1;

    删除当前数据库

    drop database if exists `current_project_name`;

    三.数据表操作

    每一数据库下必须有一个字段枚举数据表,用来记录当期数据库中一些表头的可能枚举值,如学生表中的性别,枚举值为[男, 女]

    新建表

    create table if not exists `column_avilable_enums` ( `id` int not null auto_increment, `table_name` varchar(40) not null, `column_name` varchar(40) not null, `column_type` varchar(40) not null, `column_enum` text, index `name_index` (column_name(40)), primary key (`id`) ) engine=innodb default charset=utf8;

    展示数据表的字段属性

    show columns from `column_avilable_enums`;

    修改数据表的字段属性

    alter table `column_avilable_enums` add i int; alter table `column_avilable_enums` change i j bigint; alter table `column_avilable_enums` modify j bigint not null default 100; alter table `column_avilable_enums` drop j;

    修改数据表序列的开始值

    alter table `column_avilable_enums` auto_increment = 1;

    展示以及修改数据表的索引字段属性

    show index from `column_avilable_enums`; create index `column_name_index` on `column_avilable_enums`(column_name(40)); create unique index `table_name_unique` on `column_avilable_enums`(table_name(40)); drop index `column_name_index` on `column_avilable_enums`; drop index `table_name_unique` on `column_avilable_enums`;

    修改数据表名

    alter table `column_avilable_enums` rename to `tb`; alter table `tb` rename to `column_avilable_enums`;

    复制表,展示建库语句

    show create table `column_avilable_enums`;

    删除数据表

    drop table if exists `column_avilable_enums`;

    每一个数据表均可增改删查

    insert ignore into `column_avilable_enums` (`table_name`, `column_name`, `column_type`, `column_enum`) values ("students", "gender", "int", "enum genderenum{man,woman}"); update `column_avilable_enums` set `column_type` = "int" where `column_type` = "integer"; update `column_avilable_enums` set `column_type` = "int" where `id` = "1"; delete from `column_avilable_enums` where `id` = 3;

    数据表子句

    where字句 binary可以忽略大小写,因为使用java规范,严格大小写,不采用忽略的做法

    select distinct `id`, `table_name`, `column_name`, `column_type`, `column_enum` from `column_avilable_enums` where `table_name` != "teachers" limit 50 offset 0;

    distinct为去重

    like替换 = 号以正则表达式的形式实现模糊查询 % =>

    select `id`, `table_name`, `column_name`, `column_type`, `column_enum` from `column_avilable_enums` where `table_name` like "%tu%" and `column_name` like "%en%" order by `id` limit 50 offset 0;

    – union 去重

    (select `id`, `table_name`, `column_name`, `column_type`, `column_enum` from `column_avilable_enums` where `table_name` like "%tu%" and `column_name` like "%en%" limit 50 offset 0 ) union (select `id`, `table_name`, `column_name`, `column_type`, `column_enum` from `column_avilable_enums` where `table_name` like "%tu%" and `column_name` like "%en%" limit 50 offset 0);

    结果集处理 分组

    select column_name, function(column_name) from table_name where column_name = value group by column_name;

    关联

    select a.runoob_id, a.runoob_author, b.runoob_count from runoob_tbl a, tcount_tbl b where a.runoob_author = b.runoob_author; select a.runoob_id, a.runoob_author, b.runoob_count from runoob_tbl a inner join tcount_tbl b on a.runoob_author = b.runoob_author;

    null值处理

    select * from runoob_test_tbl where runoob_count = null; select * from runoob_test_tbl where runoob_count != null; -- empty set (0.00 sec) = 和 != 不起作用 select * from runoob_test_tbl where runoob_count is null; select * from runoob_test_tbl where runoob_count is not null;

    四.事物

    begin; rollback; commit;

    五.导出导入数据库

    在命令行模式运行下面代码

    $ mysqldump -uroot -p `current_project_name` > database_dump.txt;

    – 在txt文件中加入 use current_project_name 切换数据库语句 – 导入数据库

    $mysql -uroot -p < database_dump.txt
    Processed: 0.015, SQL: 9