码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【MYSQL】库和数据表


    • 1. 库
    • 2. 数据表
      • 2.1 表的列操作
        • (1) 查看表字段信息
        • (2) 查看表的所有信息
        • (3) 查看当前库下所有表信息
        • (4) 创建表
        • (5) 在原表上添加新的列
        • (6) 删除表
        • (7) 删除列
        • (8) 清空表内容
        • (9) 修改表名称
        • (10) 修改列属性
        • (11) 修改列名称和属性
        • (12) 添加主键约束
        • (13) 删除主键约束
        • (14) 删除查询缓存
      • 2.2 列的属性
        • (1) 列的默认属性
        • (2) 主键与自增
      • 2.3 表引擎

    1. 库

    数据库就是存放数据的仓库,这个仓库是按照一定的数据结构来组织存储的。

    # 显示数据库
    show databases;
    
    # 选择数据库
    use dbname;
    
    # 创建数据库
    create database dbname charset utf8;
    
    # 删除数据库
    drop database dbname;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2. 数据表

    数据表是关系数据库中一个非常重要的对象,是其它对象的基础,也是一系列二维数组的集合,用来存储和操作数据的逻辑结构。

    2.1 表的列操作

    (1) 查看表字段信息

    # 语法
    DESC 表名
    
    # 示例
    DESC student;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (2) 查看表的所有信息

    # 语法
    SHOW CREATE TABLE 表名
    
    # 示例
    SHOW CREATE TABLE student;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (3) 查看当前库下所有表信息

    # 语法
    SHOW TABLE status
    
    # 示例
    # 列形式输出
    SHOW TABLE status \G;
    
    #或过滤表输出
    SHOW TABLE status WHERE name='goods' \G;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    (4) 创建表

    # 语法
    CREATE TABLE 表名(列名 列类型 列属性 ......)
    
    # 示例
    CREATE TABLE student (
      sid TINYINT UNSIGNED,
      name VARCHAR(20),
      age INT
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    (5) 在原表上添加新的列

    # 语法
    ALTER TABLE 表名 ADD COLUMN 列名 列类型 列属性 ......
    
    # 示例
    # 在最后添加列
    ALTER TABLE student ADD COLUMN sn TINYINT(6) ZEROFILL;
    
    # 在指定位置添加列:
    ALTER TABLE user ADD height TINYINT AFTER weight;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    (6) 删除表

    # 语法
    DROP TABLE 表名
    
    # 示例
    DROP TABLE student;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (7) 删除列

    # 语法
    ALTER TABLE 表名 DROP 列名
    
    # 示例
    ALTER TABLE student DROP COLUMN sn;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (8) 清空表内容

    TRUNCATE相当与drop和creat表两个操作。

    # 语法
    TRUNCATE 表名
    
    # 示例
    TRUNCATE student;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (9) 修改表名称

    # 语法
    ALTER TABLE 旧表名 RENAME TO 新表名
    
    # 示例
    ALTER TABLE student RENAME TO stu;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (10) 修改列属性

    # 语法
    ALTER TABLE 表名 MODIFY sid 列名 列类型 列属性
    
    # 示例
    ALTER TABLE student MODIFY sid TINYINT UNSIGNED;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (11) 修改列名称和属性

    # 语法
    ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型 列属性
    
    # 示例
    ALTER TABLE student CHANGE sid id INT UNSIGNED;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (12) 添加主键约束

    # 语法
    ALTER TABLE 表名 ADD CONSTRAINT PRIMARY KEY 表名(列名)
    
    # 示例
    ALTER TABLE student ADD CONSTRAINT PRIMARY KEY student(sid);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (13) 删除主键约束

    # 语法
    ALTER TABLE 表名 DROP PRIMARY KEY
    
    # 示例
    ALTER TABLE student DROP PRIMARY KEY;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (14) 删除查询缓存

    # 语法
    RESET QUERY CACHE
    
    • 1
    • 2

    2.2 列的属性

    (1) 列的默认属性

    实际使用中避免列的默认值为null,创建表时给列一个初始值,在列的类型后面添加NOT NULL DEFAULT值,示例:id INT UNSIGNED NOT NULL DEFAULT 0

    (2) 主键与自增

    主键(primary key),能够区分每一行,一般和auto_increment一起使用,有两种方式声明该列为主键:

    • 在列的类型之后声明primary key,例如:id INT UNSIGNED PRIMARY KEY
    • 声明完列之后,在最后声明那一列为主键primary key(列名),PRIMARY KEY(id)

    主键与自增搭配使用,例如:id INT PRIMARY KEY AUTO_INCREMENT

    提高效率建表原则:定长与变长分离,常用和不常用分离。

    2.3 表引擎

    MySQL常用两种表引擎是Myisam和InnoDB,引擎不同,组织数据方式也不同,新版本MySQL可以统一使用InnoDB,性能比Myisam差别不是太大。

    CREATE TABLE account(
      id INT UNSIGNED PRIMARY KEY,
      name CHAR(10) NOT NULL DEFAULT '',
      balance INT NOT NULL DEFAULT 0
    )ENGINE innodb CHARSET utf8;
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    使用css制作3D盒子,目的是把盒子并列制作成3D货架
    基于Android平台的手机安全卫士的设计与实现
    常见插件 资源拷贝插件
    探究 CoreData 使用索引(Index)机制加速查表究竟如何实现?
    java如何用drawString()绘制文字(三行代码)
    python常见语法
    知识图谱之知识抽取
    vscode路径别名文件跳转解决办法
    使用Navicat对比多环境数据库数据差异和结构差异,以及自动DML和DDL脚本
    Spring篇---第五篇
  • 原文地址:https://blog.csdn.net/u013301892/article/details/126572569
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号