• 数据库之DDL操作(数据库,表,字段)


    Data Definition Language,数据库定义语言,用来定义数据库对象(数据库,表,字段)

    1.数据库操作 

    1.1查询所有数据库 

    show databases;

    1.2查询当前数据库

    show databases();

    1.3创建数据库

    create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

     例如:

    • 我们想创建一个Student数据库,并且使用数据库默认的字符集。
    create database Student;
    • 因为在同一个数据库服务器中不能出现同名的数据库,所以我们使用(if not exists)参数来解决这个问题,若想要创建的数据库不存在,则创建数据库,如果存在,则不创建。 
    create database if not exists Student;
    • 我们也可以指定数据库使用的字符集 
    create database Student default charset utf8mb4;

    1.4删除数据库

    drop database [if exists] 数据库名;

    1.5切换数据库

            我们要操作某一个数据库下的表时,需要通过命令,切换到对应的数据库下面,否则是不能对那个表进行操作的。

    use 数据库名;

    2.表操作 

    2.1查询创建

    2.1.1查询当前数据库中所有表

    show tables;

    例如:

    • 如果我们想要在mydata数据库中查询我们所创建的所有表。 
    1. use mydata;
    2. show tables;

    2.1.2查看表结构

            这条指令可以使我们看见指定表的字段,字段的类型,是否可以为NULL,是否存在默认值等信息。

    desc 表名;

    2.1.3查询表的建表语句

            这条指令可以使我们查询到创建表时候的所有参数,指定的和没指定的(默认值)都回查询到 。(存储引擎,字符集)等没。

    show create table 表名;

    2.1.4创建表结构

    1. create table 表名(
    2. 字段1 字段1类型 [comment 字段1注释],
    3. 字段2 字段2类型 [comment 字段2注释],
    4. 字段3 字段3类型 [comment 字段3注释],
    5. 字段4 字段4类型 [comment 字段4注释],
    6. ......
    7. 字段n 字段n类型 [comment 字段n注释]
    8. )[comment 表注释]
    • 最后一个字段没有逗号(,)

     例如:

    1. create table tb_stu(
    2. S# varchar(12) comment '学号';
    3. name varchar(30) comment '姓名';
    4. age int comment '年龄';
    5. gender varchar(1) comment '性别'
    6. )comment '学生表';

    2.2数据类型 

    2.2.1数值类型

    类型大小有符号范围无符号范围描述
    TINYINT1byte(-128,127)(0,255)小整数值
    SMALLINT2bytes(-32768,32767)(0,65535)大整数值
    MEDIUMINT3bytes(-8388608,8388607)(0,16777215)大整数值
    INT4bytes(-2147483648,2147483647)(0,4294967295)大整数值
    BIGINT8bytes(-2^63,2^63-1)(0,2^64-1)极大整数值
    FLOAT4bytes(-3.4... E+38,3.4... E+38)0和(1.17... E-38,3.40... E+38)单精度浮点数值
    DOUBLE8bytes(-1.7... E+308,1.7... E+308)0和(2.22... E-308,1.79... E+308)双精度浮点数值
    DECIMAL依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度)的值

    小数值(精确定点数)

    例如:

    1. //年龄字段--不出现负数不超过255岁
    2. age tinyint unsigned
    3. //分数字段--总分100,一位小数
    4. score double(4,1)

    2.2.2字符串类型

    类型大小描述
    CHAR0-255 bytes定长字符串(需要指定长度)
    VARCHAR0-65535 bytes变长字符串(需要指定长度
    TINYBLOB0-255 bytes不超过255个字符的二进制数据
    TINYTEXT0-255 bytes短文本字符串
    BLOB0-65535 bytes二进制形式的长文本数据
    TEXT0-65535 bytes长文本数据
    MEDIUMBLОB0-16 777 215 bytes二进制形式的中等长度文本数据
    MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
    LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
    LONGTEXT0-4 294 967 295 bytes极大文本数据

    例如:

    1. 1).用户名 username->长度不定,最长不会超过50
    2. username varchar (50)
    3. 2),性别 gender--------->存储值,不是男,就是女
    4. gender char (1)
    5. 3).手机号 phone-----> 固定长度为11
    6. phone char (11)

    2.2.3日期时间函数

    类型大小范围格式描述
    DATE31000-01-01至9999-12-31YYYY-MM-DD日期值
    TIME3-838:59:59至838:59:59HH : MM: SS时间值或持续时间
    YEAR11901至2155YYYY年份值
    DATETIME81000-01-01 00:00:00 至9999-12-31 23:59:59YYYY-MM-DDHH:MM:SS混合日期和时间值
    TIMESTAMP41970-01-0100:00:01至2038-01-19 03:14:07YYYy-MM-DDHH:MM: SS混合日期和时间值,时间戳

    例如:

    1. 1),生日字段 birthday
    2. birthday date
    3. 2),创建时间 createtime
    4. createtime datetime

     2.2.4表操作--修改

    2.2.4.1添加字段

    ALTER TABLE 表名 ADD 字段名类型 (长度) [COMMENT 注释] [ 约束];

    2.2.4.2修改数据类型 

    ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);

    2.2.4.3修改字段名和字段类型

    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [ 约束 ];

    2.2.4.4删除字段

    ALTER TABLE 表名 DROP 字段名;

    2.2.4.5修改表名

    ALTER TABLE 表名 RENAME TO 新表名;

    2.2.5表操作-删除

    2.2.5.1删除表

    DROP TABLE [IF EXIST} 表名;

     可选项 IFEXISTS代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果加该参数项,删除一张不存在的表,执行将会报错)。

    2.2.5.2删除指定表,并重新创建表

    TRUNCATE TABLE 表名;

  • 相关阅读:
    【Android笔记32】Android中数据存储技术之SQLite事务操作以及存储大文件
    初探UAF漏洞
    linux 卸载php的最终方案
    【21天打卡】前端攻城狮重学算法之-直接选择排序
    桐乡上元——UI设计
    音频之Android NDK读写声卡
    2.2.3 vim操作合集
    Android--ConnectivityManager使用
    RAG 高级应用:基于 Nougat、HTML 转换与 GPT-4o 解析复杂 PDF 内嵌表格
    学习:DDR3基础知识(1)
  • 原文地址:https://blog.csdn.net/atomy_iiii/article/details/137345827