mysql基础笔记

mysql目录结构

  • bin:存储可执行文件
  • data:存储数据文件
  • docs:文档
  • include:存储包含的头文件
  • lib:存储库文件
  • share:错误消息和字符集文件

mysql相关配置

  • 修改编码方式
    1
    2
    default-character-set=utf-8
    default-set-server = utf-8

mysql相关指令

  • 启动mysql服务

    1
    net start mysql
  • mysql 登录参数

    1
    mysql -D -h -P -p -u -v --prompt

img

  • mysql退出

    1
    2
    3
    mysql > exit;
    mysql > quit;
    mysql > \q;
  • 修改mysql提示符

    1
    2
    3
    4
    5
    6
    prompt 提示符
    /*提示符参数*/
    -D // 完整日期
    -d // 当前数据库
    -u // 当前用户
    -h //当前服务器
  • 常用命令

    1
    2
    3
    SELECT VERSION() //显示服务器版本
    SELECT NOW() // 显示当前时间
    SELECT USER() // 显示当前用户

mysql指令

数据库操作

  • 创建数据库

    1
    CREATE DATABASE {IF NOT EXISTS} db_name [DEFAULT] CHARACTER SET {=} charset_name
  • 查看数据库列表

    1
    SHOW DATABASES
  • 修改数据库

    1
    ALTER DATABASE [db_name] [DEFAULT] CHARACTER SET {=} charset_name
  • 删除数据库

    1
    DROP DATABASE {IF EXIST} db_name
  • 打开数据库

    1
    USE db_name

数据表操作

  • 查看数据表

    1
    SHOW TABLES [FROM db_name]
  • 查看数据表结构

    1
    SHOW COLUMNS FROM tb_name
  • 创建数据表

    1
    2
    3
    4
    CREATE TABLE [IF NOT EXISTS] table_name (
    column_name date_type,
    ...
    )

创建数据表的几个参数可选项

- 主键 : PRIMARY KEY  
- 空值 : NULL /  NOT NULL  
- 自动编号 : AUTO_INCREMENT  
  • 插入记录

    1
    2
    3
    4
    5
    6
    // 方式一
    INSERT [INTO] tb_name [(col_name)] VALUES(val,...)
    // 方式二,与前者区别在于此方法可以使用子查询
    INSERT [INTO] tb_name SET col_name={expr | DEFAULT},...
    // 方式三,此方式可以将查询结果插入到指定数据表
    INSERT [INTO] tb_name [(col_name,...)] SELECT...
  • 查找记录

    1
    SELECT expr.. FROM tb_name
  • 单表更新记录

    1
    UPDATE table_name SET col_name1={expr1|DEFAULT}... {WHERE where_condition}
  • 单表删除记录

    1
    DELETE FROM tb_name [WHERE where_condition]
  • 编辑数据表的默认存储引擎

    1
    default-storage-engine=INNODB //在配置文件中
  • 修改数据表-添加单列

    1
    ALTER TABLE tb_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name]
  • 修改数据表-删除列

    1
    ALTER TABLE tb_name DROP [COLUMN] col_name
  • 修改数据表-添加主键约束

    1
    ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
  • 修改数据表-添加外键约束

    1
    ALTER TABLE tb_name [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition
  • 修改数据表-添加/删除默认约束

    1
    ALTER TABLE tb_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  • 修改数据表-删除主键约束

    1
    ALTER TABLE tb_name DROP PRIMARY KEY
  • 修改数据表-删除外键约束

    1
    ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol
  • 修改数据表-删除唯一约束

    1
    ALTER TABLE tb_name DROP {INDEX|KEY} index_name
  • 修改数据表-列定义

    1
    ALTER TABLE tb_name MODIFY [COLUMN] col_name column_definition {FIRST|AFTER col_name}
  • 修改数据表-列名称

    1
    ALTER TABLE tb_name CHANGE [COLUMN] old_col_name new_col_name column_definition {FIRST|AFTER col_name}
  • 数据表更名

    1
    2
    ALTER TABLE tb_name RENAME [TO | AS] new_tb_name;
    ALTER TABLE tb_name TO new_tb_name

数据表查找操作

img

  • 查询表达式书写规范
    img
  • WHERE 条件查询

    1
    [WHERE where_condition]
  • GROUP BY 查询结果分组

    1
    [GROUP BY {col_name | position} [ASC | DESC]]
  • HAVING 设置分组条件

    1
    [HAVING where_condition]
  • ORDER BY 查询排序

    1
    [ORDER BY {col_name | expr | position} [ASC | DESC]]
  • LIMIT 限制查询数量

    1
    [LIMIT [起始偏移位置,偏移长度]]

mysql语句规范

  • 必须以分号结尾
  • 关键字、函数大写(小写也没有影响)
  • 各种名称小写

mysql数据类型

  • 整型
    整型
  • 浮点型
    浮点型
  • 字符型
    字符型
  • 日期时间型
    日期时间

mysql约束

约束类型

  • 默认约束 DEFAULT
    为字段设置默认值,如果没有明确为字段赋值,则自动赋予默认值
  • 唯一约束 UNIQUE KEY
    保证记录的唯一性,可以为空
  • 外键约束 FOREIGN KEY
    实现一对一或一对多的关系
    外键约束的要求

    img

    外键约束的参照操作

    img

  • 主键约束 PRIMARY KEY
  • 非空约束 NOT NULL

表级约束与列级约束

img