MySQL与MariaDB学习笔记

博客链接: http://codeshold.me/2017/10/learning_mysql_mariadb_notes.html

  1. 本文是《MySQL与MariaDB学习指南》的简要学习笔记,方便日后查询和回忆!
  2. 原书容较为基础,但够用了,尤其常用函数和数据导入导出写的很不错! 适合初学者以及对mysql了解不用很深的人(仅会用)! 原书不涉及任何sql的优化!
  3. 发现了书中两处错误,已提交勘误!
  4. 进阶读物《深入理解MariaDB和MySQL》
  5. 作者网站mysqlresources.com有很多资料

0x01 准备

  • 自己没有安装相关工具,使用了docker mariadb 镜像
  • 相关命令如下
    • docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mariadb -d mariadb:latest
    • docker exec -it mariadb bash
    • docker start mariadb
  • 登陆说明

    root@b2659b21f321:/# mysql -uroot -proot  # 默认用户名和密码为root
    
    Welcome to the MariaDB monitor.  Commands end with ; or \g.  # 命令要以分号(;) 或斜线 +g(\g)结尾
    Your MariaDB connection id is 10    # 本次连接标识符
    Server version: 10.2.7-MariaDB-10.2.7+maria~jessie mariadb.org binary distribution
    
    Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. # 可清除之前缓存的输入一半的mysql命令
    
    MariaDB [(none)]> 
  • help 帮助命令, 最有用的 help contents

    • help
    • help Data Manipulation
    • help SHOW DATABASES
  • prompt 可修改提示符
  • 大小写区别
    • MySQL 不区分关键字(如 SHOW)的大小写,所以可以 用 show 甚至 sHoW
    • 数据库、表和列的名字却可能是区分大小写的,尤其是在那些大小写敏感的操作系统上,如Mac OS X或Linux
  • 用户自定义变量, 以 @ 开头的名字,再用 = 连接上一个值,或者一个表达式,又或者一条返回单个 值的 SQL 语句, 即SET @fav_site_total =
  • show tables from msyql; 显示mysql数据库中的所有表
  • describe mysql.user;
  • 创建数据库和表
    • CREATE SCHEMA swf == CREATE DATABASE swf
    • CREATE DATABASE swf2 CHARACTER SET latin1 COLLATE latin1_bin; # MySQL 数据的存储方式是二进制拉丁字符
    • 表名可以是 SQL 保留字以外的任何东西。事实上,用保留字也可以,但需要加上引号以作区分
    • AUTO_INCREMENT 选项告诉 MySQL 此列的值是自增的
    • TEXT类型,即长度可变,但最多65 535字节
    • 如果你能确定某列内容的长度,那就用 CHAR,否则用 VARCHAR
    • UNIQUE, 会截短显示为 UNI
    • ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin, 首先是表类型,或者说是该表使用的存储引擎的类型; 剩下两个是表的默认字符集(latin1)和默认校对方式(latin1_bin)
    • 校对方式,则可选 latin5_turkish_ci,它会根据土耳其语的字母表来排序
    • BLOB 二进制大对象
  • 备份数据库 mysqldump --user='russell' -p rookery birds > /tmp/birds.sql
  • 导入数据库 mysql --user='russell' -p rookery < rookery-ch2-end.sql
  • CREATE TABLE test.birds_new LIKE birds; 仅复制表结构
  • CREATE TABLE birds_new_alternative SELECT * FROM rookery.birds; 复制表结构和表数据

0x02 相关操作

  • ALTER TABLE birds ADD COLUMN test INT
  • ALTER TABLE birds_new ADD COLUMN wing_id CHAR(2);
  • ALTER TABLE birds_new ADD COLUMN wing_id CHAR(2) AFTER family_id; # 在特定的列之后加入一列
  • ALTER TABLE birds_new DROP COLUMN wing_id;
  • ALTER TABLE birds_new ADD COLUMN bill_id CHAR(2) AFTER body_id, ADD COLUMN endangered BIT DEFAULT b'1' AFTER bill_id;可同时添加多列
  • ALTER TABLE birds_new CHANGE COLUMN common_name common_name VARCHAR(255); 在使用CHANGE COLUMN时,就算只想修改该列的某一方面, 也需要完整地声明整个新列。
  • MODIFY COLUMN子句的语法只要求输入一次列名, MODIFY COLUMN是不能用来 改列名的

    ALTER TABLE birds_new
    MODIFY COLUMN endangered
    ENUM('Extinct',
         'Extinct in Wild',
         'Threatened - Critically Endangered',
         'Threatened - Endangered',
         'Threatened - Vulnerable',
         'Lower Risk - Conservation Dependent',
         'Lower Risk - Near Threatened',
         'Lower Risk - Least Concern')
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值