Mysql打卡第三天
发布日期:2021-06-28 21:40:33 浏览次数:2 分类:技术文章

本文共 2132 字,大约阅读时间需要 7 分钟。

Mysql打卡第三天

MySQL表数据类型

  • 数值类型
  • 日期和时间类型
  • 字符串类型

用SQL语句创建表

语句解释

CREATE TABLE table_name (    column1 datatyoe,    column2 datatyoe,    column3 datatyoe,);

table_name -> 表名

column -> 列名

datatype -> 数据类型

设定列类型、大小、约束

列类型

  • 建表时设置,如上方法

  • 添加列时设定

    ALTER TABLE table_name ADD column_name datatype;
  • 修改列类型

    ALTER TABLE table_name ALTER COLUMN column_name datatype;

大小

  • 建表时设置,在类型后面用括号表示其最大长度

  • 修改列大小

    ALTER TABLE table_name modify column column_name varchar(50) ;

约束

  • 建表时设置,在列大小后面增加

  • 修改列约束

    ALTER table table_name add constraint my_un unique(column_name);

设定主键

  • 建表时是这,在最后加入 PRIMARY KEY (column_name);

  • 修改表约束为主键约束

    ALTER table table_name add constraint key_name primary key(column_name);

用SQL语句向表中添加数据

语句解释

  • 不指定列名

    INSERT INTO table_name VALUES ('value1', 'value2', 'value3', 'value4');

    根据列名的顺序插入值,不插入的要用 null 填充

  • 指定列名

    INSERT INTO table_name (column1,column2,column3) VALUES (value1,value2,value3);

    根据列名的顺序插入值

用SQL语句删除表

  • DELETE

    DELETE FROM table_name;

    系统一行一行地删除表的内容,表的结构还存在,不释放空间,可以回滚恢复;

  • DROP

    DROP TABLE table_name;

    直接删除表内容和结构,释放空间,没有备份表之前要慎用;

  • TRUNCATE

    TRUNCATE TABLE table_name;

    直接先删除表的内容,再建表,可以释放空间,没有备份表之前要慎用。

MySQL别名

SELECT column1 AS my_name FROM table_name my_table_name;

用 AS 或者省略

作业

项目三:超过5名学生的课(难度:简单)

创建如下所示的courses 表 ,有: student (学生) 和 class (课程)。

例如,表:

±--------±-----------+

| student | class |

±--------±-----------+‘’

| A | Math |

| B | English |

| C | Math |

| D | Biology |

| E | Math |

| F | Computer |

| G | Math |

| H | Math |

| I | Math |

| A | Math |

±--------±-----------+

编写一个 SQL 查询,列出所有超过或等于5名学生的课。

应该输出:

±--------+

| class |

±--------+

| Math |

±--------+

Note:

学生在每个课中不应被重复计算。

select class from courses GROUP BY class HAVING COUNT( DISTINCT student) >= 5

​ 项目四:交换工资(难度:简单)

创建一个 salary表,如下所示,有m=男性 和 f=女性的值 。

例如:

| id | name | sex | salary |

|----|------|-----|--------|

| 1 | A | m | 2500 |

| 2 | B | f | 1500 |

| 3 | C | m | 5500 |

| 4 | D | f | 500 |

交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新查询,并且没有中间临时表。

运行你所编写的查询语句之后,将会得到以下表:

| id | name | sex | salary |

|----|------|-----|--------|

| 1 | A | f | 2500 |

| 2 | B | m | 1500 |

| 3 | C | f | 5500 |

| 4 | D | m | 500 |

UPDATE salary SET sex = ( CASE WHEN 'SEX' = 'f' THEN 'm' ELSE 'm' END);

转载地址:https://blog.csdn.net/ycxzuoxin/article/details/89018688 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:AQS笔记
下一篇:Mysql打卡第二天

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月21日 00时27分33秒