MySQL 库、表 操作

2. 数据库 基本操作

  1. 一千行MySQL学习笔记   # 参数介绍
  2. 菜鸟教程
  3. 书籍:MySQL 必知必会

2.1. 数据库操作

/* 数据库操作 */ ------------------
-- 查看当前数据库   -- 3种方法;
    SELECT DATABASE();     --() 括号内空;
    show tables;
    status;
-- 显示当前时间、用户名、数据库版本
    SELECT now(), user(), version();
-- 创建库
    CREATE DATABASE[ IF NOT EXISTS] 数据库名 数据库选项
    数据库选项:
        CHARACTER SET charset_name   --
        COLLATE collation_name       --
        -- eg:
        CREATE DATABASE IF NOT EXISTS RUNOOB      
        DEFAULT CHARSET utf8       
        COLLATE utf8_general_ci;
        
-- 查看已有库
    SHOW DATABASES;
-- 查看当前库信息             -- 当前库信息
    SHOW CREATE DATABASE 数据库名       --有问题??;
-- 修改库的选项信息
    ALTER DATABASE 库名 选项信息
    
-- 删除库
    DROP DATABASE[ IF EXISTS] 数据库名
        -- 同时删除该数据库相关的目录及其目录内容
------------

2.2. 表的操作

-- []       可选项;
-- 创建表
    CREATE [TEMPORARY] TABLE[ IF NOT EXISTS] [库名.]表名 ( 表的结构定义 )[ 表选项]
        每个字段必须有数据类型
        最后一个字段后不能有逗号
        TEMPORARY 临时表,会话结束时表自动消失
        对于字段的定义:
            字段名 数据类型 [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string']
-- 表选项
    -- 字符集
        CHARSET = charset_name
        如果表没有设定,则使用数据库字符集
    -- 存储引擎
        ENGINE = engine_name
        表在管理数据时采用的不同的数据结构,结构不同会导致处理方式、提供的特性操作等不同
        常见的引擎:InnoDB MyISAM Memory/Heap BDB Merge Example CSV MaxDB Archive
        不同的引擎在保存表的结构和数据时采用不同的方式
        MyISAM表文件含义:.frm表定义,.MYD表数据,.MYI表索引
        InnoDB表文件含义:.frm表定义,表空间数据和日志文件
        SHOW ENGINES -- 显示存储引擎的状态信息
        SHOW ENGINE 引擎名 {LOGS|STATUS} -- 显示存储引擎的日志或状态信息
    -- 自增起始数
        AUTO_INCREMENT = 行数
    -- 数据文件目录
        DATA DIRECTORY = '目录'
    -- 索引文件目录
        INDEX DIRECTORY = '目录'
    -- 表注释
        COMMENT = 'string'
    -- 分区选项
        PARTITION BY ... (详细见手册)
-- 查看所有表
    SHOW TABLES[ LIKE 'pattern']
    SHOW TABLES FROM  库名
-- 查看表结构
    SHOW CREATE TABLE 表名 (信息更详细)
    DESC 表名 / DESCRIBE 表名 / EXPLAIN 表名 / SHOW COLUMNS FROM 表名 [LIKE 'PATTERN']         -- describe
    SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']

    describe student;   # 可以简写为desc student;

-- 修改表
    -- 修改表本身的选项
        ALTER TABLE 表名 表的选项
        eg: ALTER TABLE 表名 ENGINE=MYISAM;
    -- 对表进行重命名
        RENAME TABLE 原表名 TO 新表名
        RENAME TABLE 原表名 TO 库名.表名 (可将表移动到另一个数据库)
        -- RENAME可以交换两个表名
        
    -- 修改表的字段机构(13.1.2. ALTER TABLE语法)
        ALTER TABLE 表名 操作名
        -- 操作名
            ADD[ COLUMN] 字段定义       -- 增加字段
                AFTER 字段名          -- 表示增加在该字段名后面
                FIRST               -- 表示增加在第一个
            ADD PRIMARY KEY(字段名)   -- 创建主键
            ADD UNIQUE [索引名] (字段名)-- 创建唯一索引
            ADD INDEX [索引名] (字段名) -- 创建普通索引
            DROP[ COLUMN] 字段名      -- 删除字段
            MODIFY[ COLUMN] 字段名 字段属性     -- 支持对字段属性进行修改,不能修改字段名(所有原有属性也需写上)
            CHANGE[ COLUMN] 原字段名 新字段名 字段属性      -- 支持对字段名修改
            DROP PRIMARY KEY    -- 删除主键(删除主键前需删除其AUTO_INCREMENT属性)
            DROP INDEX 索引名 -- 删除索引
            DROP FOREIGN KEY 外键    -- 删除外键
-- 删除表
    DROP TABLE[ IF EXISTS] 表名 ...
-- 清空表数据
    TRUNCATE [TABLE] 表名
-- 复制表结构
    CREATE TABLE 表名 LIKE 要复制的表名
-- 复制表结构和数据
    CREATE TABLE 表名 [AS] SELECT * FROM 要复制的表名
-- 检查表是否有错误
    CHECK TABLE tbl_name [, tbl_name] ... [option] ...
-- 优化表
    OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
-- 修复表
    REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]
-- 分析表
    ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

-----------------  使用实例  ----------------------------------
# 创建表
    create table student( 
        id int auto_increment primary key,  --自增属性
        name varchar(50), 
        sex varchar(20), 
        date varchar(50), 
        content varchar(100) 
        )default charset=utf8 
        distributed by hash(id)(g1, g2, g3, g4);  --hash分布、分片

# 删除表
    #先判断表是否存在,存在先删除
    drop table if exists student;  --exists  第三人称单数

# 修改表
    ## 修改表的名字
        alter table tbl_name rename to new_name
    ## 向表中增加一个字段(列)
        alter table tablename add columnname type;/alter table tablename add(columnname type);
    ## 修改表中某个字段的名字
        alter table tablename change columnname newcolumnname type; 
    ## 其他   
        #表position 增加列test
            alter table position add(test char(10));
        #表position 修改列test
            alter table position modify test char(20) not null;
        #表position 修改列test 默认值
            alter table position alter test set default 'system';
        #表position 去掉test 默认值
            alter table position alter test drop default;
        #表position 去掉列test
            alter table position drop column test;
        #表depart_pos 删除主键
            alter table depart_pos drop primary key;
        #表depart_pos 增加主键
            alter table depart_pos add primary key PK_depart_pos
        (department_id,position_id);
        
# 数据导入       
    ## 用文本方式将数据装入数据库表中(例如D:/mysql.txt)
        load data local infile "D:/mysql.txt" into table MYTABLE;
    
    ## 导入.sql文件命令(例如D:/mysql.sql)
        source d:/mysql.sql;  #或者  /. d:/mysql.sql;
    

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在docker中操作mysql并创建,您可以按照以下步骤进行操作: 1. 首先,通过docker命令查看所有正在运行的实例。使用命令`docker ps`可以列出正在运行的docker容器实例。 2. 运行一个mysql容器,并将它映射到主机的3306端口。您可以使用以下命令来创建并运行mysql容器: ``` docker run -d -p 3306:3306 --name mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql ``` 3. 进入mysql容器。通过以下命令进入正在运行的mysql容器: ``` docker exec -it <CONTAINER_ID> /bin/bash ``` 其中,`<CONTAINER_ID>`是mysql容器的ID。 4. 在mysql容器中,您可以使用mysql客户端来创建。运行以下命令以启动mysql客户端: ``` mysql -u root -p ``` 输入之前设置的root密码(在上面的示例中为123456)。 5. 进入mysql客户端后,您可以使用标准的mysql语句来创建。例如,要创建一个数据,可以运行以下命令: ``` CREATE DATABASE mydatabase; ``` 要在该数据中创建,可以使用`USE`语句选择该数据,然后使用`CREATE TABLE`语句创建格。 请注意,这些步骤假设您已经安装并配置了docker,并且已经下载了mysql镜像。此外,您还需要调整命令中的路径和参数以适应您的环境和需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Docker 安装MySql后创、创](https://blog.csdn.net/Lin_FFF/article/details/128436646)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值