zoukankan      html  css  js  c++  java
  • MySQL-数据库和表的基本操作

    数据库和表的基本操作

    数据库基础知识

    创建数据库

    CREATE DATABASE 数据库名称 ;
    

    查看数据库(显示数据库名列表)

    SHOW DATABASES ;
    

    查看某数据库信息(显示创建的信息)

    SHOW CREATE DATABASE 数据库名称 ;
    

    修改数据库编码

    ALTER DATABASE 数据库名称 
    DEFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin ;
    

    删除数据库

    DROP DATABASE 数据库名称 ;
    

    数据类型

    整数类型
    数据类型 字节数 无符号数取值范围 有符号数取值范围
    TINYINT 1 0~255 -128~127
    SAMLLINT 2 0~65535 -32768~32767
    MEDIUMINT 3 0~16777215 -8388608~8388607
    INT 4 0~4294967295 -2147483648~2147483647
    BIGINT 5 0~18446744073709551615 -9223372036854775808~9223372036854775807
    浮点数类型和定点数类型

    单精度浮点数类型FLOAT,4字节;
    双精度浮点类型DOUBLE,8字节;
    定点数类型DECIMAL(D,B),M+2字节,M表示数据的长度,D表示小数点后的长度。

    日期与时间类型
    数据类型 字节数 取值范围 日期格式 零值 补充
    YEAR 1 1901~2155 YYYY 0000 字符串格式'0'表示2000,数字格式0表示0000
    DATE 4 1000-01-01 YYYY-MM-DD 0000-00-00 使用CURRENT_DATE或者NOW()表示当前系统日期
    TIME 3 -838:59:59~838:59:59 HH:MM:SS 00:00:00 可以输如'D HH:MM:SS'字符串,D表示0~34之间的值,相当于D*24+HH .使用CURRENT_DATE或者NOW()表示当前系统日期
    DATETIME 8 1000-01-01 00:00:00~9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00 使用NOW()表示当前系统日期
    TIMESTAMP 4 1970-01-01 00:00:01~2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00 使用CURRENT_TIMESTAMP来输入当前系统日期;输入NULL时系统会输入系统当前日期和时间;无任何输入时,系统会输入系统当前日期和时间。
    字符串和二进制类型
    数据类型 类型说明 补充
    CHAR 用于表示固定长度的字符串
    VARCHAR 用于表示可变长度的字符串
    BINARY 用于表示固定长度的二进制数据
    VARBINARY 用于表示固定长度的二进制数据
    BLOB 用于表示二进制大数据
    TEXT 用于表示大文本数据
    ENUM 表示枚举类型,只能存储一个枚举字符串值
    SET 表示字符串对象,可以有零或多个值
    BIT 表示位字段类型

    数据表的基本操作

    选择数据库

    USE 数据库名 ;
    

    创建数据表

    CREATE TABLE 数据表名
    (
    字段名1 数据类型[完整性约束条件] ,
    字段名2 数据类型[完整性约束条件] ,
    ...
    字段名n 数据类型[完整性约束条件]
    ) ;
    

    查看此数据库下的表(显示表名列表)

    SHOW TABLES ;
    

    查看数据表(显示定义语句,字符编码)

    SHOW CREATE TABLE 表名 ;
    

    整齐的查看数据表(显示定义语句,字符编码)

    SHOW CREATE TABLE 表名G
    

    查看数据表(显示字段信息)

    DESCRIBE 表名 ;
    

    或简写为:

    DESC 表名 ;
    

    执行结果如下:

    +----------+-------------+------+-----+---------+-------+
    | Field    | Type        | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id       | int(20)     | YES  |     | NULL    |       |
    | grade    | float       | YES  |     | NULL    |       |
    | username | varchar(10) | YES  |     | NULL    |       |
    +----------+-------------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    

    (1).NULL:表示该列是否可以存储NULL值;
    (2).Key:表示该列是否已经编制索引;
    (3).Default:表示该列是否有默认值;
    (4).Extra:表示获取到的与给定列相关的附加信息。
    修改表名(to可以省略)

    ALTER TABLE 旧表名 
    RENAME [To] 新表名 ;
    

    修改字段名

    ALTER TABLE 表名 
    CHANGE 旧字段名 新字段名 新数据类型 ;
    

    修改字段的数据类型

    ALTER TABLE 表名
    MODIFY 字段名 数据类型 ;
    

    添加字段

    ALTER TABLE 表名 
    ADD 新字段名 数据类型
    [约束条件][FIRST | AFTER 已存在字段名]
    

    上述格式中,“FIRST”为可选参数,用于将新加字段设为第一个字段,“AFTER”也为可选参数,用于将新加字段添加到指定“已存在字段名”的后面。
    修改字段的排列位置
    修改为第一个字段:

    ALTER TABLE 表名
    MODIFY 字段名1 数据类型 FIRST;
    

    将字段名1插入到字段名2之后:

    ALTER TABLE 表名
    MODIFY 字段名1 数据类型 AFTER 字段名2 ;
    

    删除字段

    ALTER TABLE 表名
    DROP 字段名 ;
    

    删除数据表

    DROP TABLE 表名 ;
    

    表的约束

    约束条件 说明
    PRIMARY KEY 主键约束,用于唯一标识对应的记录
    FOREIGN KEY 外键约束
    NOT NULL 非空约束
    UNIQUE 唯一性约束
    DEFAULT 默认值约束,用于设置字段的默认值
    AUTO_INCREMENT 字段值自动增加

    举个例子:
    id为主键且值自动增加,name字段值唯一,grade字段默认值为0。

    CREATE TABLE TB_GRADE
    (
    id INT(10) PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20) UNIQUE,
    grade FLOAT DEFAULT 0
    );
    

    索引

    创建表的时候创建索引
    CREATE TABLE 表名 
    (
    字段名 数据类型[完整性约束条件] ,
    字段名 数据类型[完整性约束条件] ,
    ...
    字段名 数据类型[完整性约束条件] ,
    [ UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY
                [ 别名 ] (字段名1 [ (长度)] [ ASC | DESC] )
    ) ;
    

    上述相关语法解释:
    (1)UNIQUE:可选参数,表示唯一索引。
    (2)FULLTEXT:可选参数,表示全文索引。
    (3)SPATIAL:可选参数,表示空间索引。
    (4)INDEX和KEY:用来表示字段的索引,二者选一即可。
    (5)别名:可选参数,表示创建的索引名称。
    (6)字段名1:指定索引对应字段的名称(创建多列索引时,用逗号隔开)。
    (7)长度:可选参数,用于表示索引的长度。
    (8)ASC和DESC:可选参数,ASC代表升序排列,DESC代表降序排列。

    在已经存在的表上创建索引

    方法一:

    CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名
    ON 表名 (字段名1 [ (长度)] [ ASC | DESC] ) ;
    

    方法二:

    ALTER TABLE 表名
    ADD [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名 (字段名1 [ (长度)] [ ASC | DESC] ) ;
    
    删除索引

    方法一:

    ALTER TABLE 表名
    DROP INDEX 索引名 ;
    

    方法二:

    DROP INDEX 索引名
    ON 表名 ;
    
  • 相关阅读:
    TensorFlow进阶(六)---模型保存与恢复、自定义命令行参数
    TensorFlow进阶(五)---图与会话
    TensorFlow进阶(四)---名称域和共享变量
    spark中数据倾斜解决方案
    Hive窗口函数之LAG、LEAD、FIRST_VALUE、LAST_VALUE的用法
    java.lang.RuntimeException: HRegionServer Aborted
    hive中的优化问题
    读取hbase数据到mysql
    用mapreduce读取hdfs数据到hbase上
    centos7下安装elasticSearch错误总结(单节点模式)
  • 原文地址:https://www.cnblogs.com/xiaochen2715/p/13174675.html
Copyright © 2011-2022 走看看