学习MySQL之爱不释手的CRUD

mysql常用一些CRUD的操作

  1. DDL操作数据库:CRUD

    • C(Create):创建

      • 创建数据库:CREATE DATABASE 数据库名称;

      • 创建数据库且判断是否存在再创建

        CREATE DATABASE IF NO EXISTS 数据库名称;

      • 创建数据库并指定字符集

        CREATE DATABASE 数据库名 CHARACTER SET 字符集;

    • R(Retrieve):查询

      • 查询所有数据库的名称:SHOW DATABASES;

      • 查询某个数据库的字符集:查询某个数据库的创建语句:

        SHOW CREATE DATABASE 数据库名称;

    • U(Update):修改/更新

      • 修改数据库默认的字符集

        ALTER DATABASE 数据库名 DEFAULT CHARACTER 字符集;

    • D(Delete):删除

      • 删除数据库:DROP DATABASE 数据库名;
  2. 使用数据库

    • 查看正在使用的数据库:SELECT DATABASE();
    • 使用/切换数据库:USE 数据库名;
  3. 操作数据表:CRUD

    • C(Create):创建

      • 创建表的格式

        CREATE TABLE 表名 (

        ​ 字段名 1 字段类型 1,

        ​ 字段名 2 字段类型 2

        );

      • 快速创建一个表结构相同的表

        CREATE TABLE 新表名 LIKE 旧表名;

    • R(Retrieve):查询

      • 查看某个数据库中的所有表:SHOW TABLES;
      • 查看表结构:DESC 表名;
      • 查看创建表的SQL语句:SHOW CREATE TABLE 表名;
    • U(Updata):修改

      • 添加表列ADD:ALTER TABLE 表名 ADD 列名 类型;
      • 修改列类型MODIFY:ALTER TABLE 表名 MODIFY 列名 新的数据类型;
      • 修改列名CHANGE:ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
      • 修改表名:RENAME TABLE 表名 TO 新表名;
      • 修改字符集:ALTER TABLE 表名 CHARACTER SET 字符集;
    • D(Drop):删除

      • 删除表

        • 直接删除表:DROP TABLE 表名;
        • 判断表是否存在再删除:DROP TABLE IF EXISTS 表名;
      • 删除列DROP:ALTER TABLE 表名 DROP 列名;

  4. 操作表中的数据:CRUD

    • C(Create):表中添加数据用insert关键字

      • 插入全部字段

        • 所有字段名全写

          INSERT INTO 表名 (字段名1, 字段名2 ,字段名3…) VALUES (值1, 值2, 值3…)

        • 不写字段名

          INSERT INTO 表名 VALUES (值1, 值2, 值3…)

      • 插入部分数据:INSERT INTO 表名(字段名1, 字段名2, …) VALUES (值1, 值2, …)

      • 蠕虫复制:将一张已存在的表中的数据复制到另外一张表中

        • 将表1所有的数据复制到表2

          INSERT INTO 表名1 SELECT * FROM 表名2;

        • 复制部分数据

          INSERT INTO 表名1(列1, 列2) SELECT 列1, 列2 FROM 表名2;

      • insert注意事项

        1. 插入的数据应与字段的数据类型相同
        2. 数据的大小应在列的规定范围内
        3. 在VALUES中列出的数据位置必须与别加入的列的排列位置相对应(value在mysql中不建议使用)
        4. 字符和日期型数据应包含在单引号中
        5. 不指定列或使用null,表示插入空值
    • R(Retrieve):查询表中行和列的数据

      • 查询表中所有的行和列的数据:SELECT * FROM 表名;

      • 查询指定列的数据:SELECT 字段名1, 字段名2, 字段名3, … FROM 表名;

      • 通过指定列的别名进行查询

        1. 对列指定别名:SELECT 字段名1 AS 别名, 字段名2 AS 别名 … FROM 表名;

        2. 对列和表同时指定别名

          SELECT 字段名1 AS 别名, 字段名2 AS 别名 … FROM 表名 AS 表别名;

      • 查询指定列且结果中不出现重复数据

        SELECT DISTINCT 字段名 FROM 表名;

      • 查询结果参与运算

        1. 某列数据和固定值运算:SELECT 列名1 + 固定值 FROM 表名;
        2. 某列数据和其他列数据参与运算:SELECT 列名1 + 列名2 FROM 表名;
      • 条件查询:SELECT 字段名 FROM 表名 WHERE 条件;

    • U(Updata):修改表中数据

      • 不带条件修改数据:UPDATA 表名 SET 字段名=值; 修改所有的行
      • 带条件修改数据:UPDATA 表名 SET 字段名=值 WHERE 字段名=值;
    • D(Delete):删除表中数据

      • 不带条件删除数据:DELETE FROM 表名;

      • 带条件删除数据:DELETE FROM 表名 WHERE 字段名=值;

      • 使用TRUNCATE删除表中的所有记录

        TRUNCATE TABLE 表名;

        truncate相当于删除了表的结构,再创建一张表

    注意事项

    1. DOS 命令窗口操作数据乱码问题
      • 主要产生原因:可能是客户端编码和服务器的编码不一样
      • 解决方案
        1. 查看MySQL内部设置的编码:SHOW VARIABLES LIKE ‘CHARACTER%’;
        2. 修改编码:
          • 修改客户端的字符集:SET character_set_client=编码值;
          • 修改连接的字符集:SET character_set_connection=编码值;
          • 修改查询的结果的字符集:SET character_set_results=编码值;
          • 同时设置上述三个编码情况:SET names 编码值;
          • 退出DOS命令行就失效了,需要每次做配置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值