MySQL学习笔记(三)

1、MySQL表数据类型

定义表的属性类型

1.1 数值

int、float、double、decimal(小数点)等

1.2 日期/时间

date、time、year、datetime等

1.3 字符串类型

char(定长字符串)、varchar(变长字符串)、text(长文本数据)等

2、用SQL语句创建表

(1)AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
(2)PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
(3)ENGINE 设置存储引擎,CHARSET 设置编码。

CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

在这里插入图片描述
在这里插入图片描述

3、用SQL语句向表中添加数据

mysql> insert into runoob_tbl
    -> (runoob_title,runoob_author,submission_date)
    -> values
    -> ("边城","沈从文",'2016-06-02');

在这里插入图片描述

4、用SQL语句删除表

mysql> DROP TABLE runoob_tbl

在这里插入图片描述

5、用SQL语句修改表

新建一个表,表名为:testalter_tbl
在这里插入图片描述

5.1 删除、添加字段

在这里插入图片描述

5.2 修改字段

(1)把字段c的类型从char(1)改为char(10)
在这里插入图片描述
(2)修改字段默认值
将i的默认值从null改为1000在这里插入图片描述
删除字段默认值
在这里插入图片描述

5.3 修改表名

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

作业:

项目三:超过5名学生的课

(1)创建courses()表
在这里插入图片描述
(2)插入数据
在这里插入图片描述
在这里插入图片描述
(3)编写一个 SQL 查询,列出所有超过或等于5名学生的课。
在这里插入图片描述

项目四:交换工资

(1)创建一个 salary表,如下所示,有m=男性 和 f=女性的值 。
在这里插入图片描述
(2)插入数据
在这里插入图片描述
(3)交换所有的f和m值
在这里插入图片描述

6、表联结

6.1 MySQL别名

SELECT * FROM 表名 [AS] 别名;

6.2 INNER JOIN

连接两表的交集
在这里插入图片描述

6.3 LEFT JOIN

左连接(left join)读取左边数据表的全部数据,右边表无对应数据
右连接(right join)读取右边数据表的全部数据,左边表无对应数据
在这里插入图片描述

6.4 CROSS JOIN

返回行的笛卡尔乘积,连接两个表,结果集包括两个表中的所有行,每一行都是第一个表中的行与第二个表中的行的组合。

6.5 自连接

一些特殊的查询需要对同一个关系进行连接查询,成为表的自身连接: 即一张表看成是两张表。

6.6 UNION

用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

6.7 这几种方式的区别和联系

NNER JOIN产生的结果是两张表的交集,LEFT JOIN产生左表的完全集,右表中若没有匹配则以null值取代。CROSS JOIN将两张表数据进行一个N*M组合,即笛卡尔积。自连接是对于自身的操作,将自己当成两张表操作来提取需要的信息。UNION操作符是用于连接两个以上的SELECT语句,它和INNER JOIN的区别是一个是连接两张表,另一个是连接两个SELECT语句。

作业

项目五:组合两张表

在数据库中创建表1和表2,并各插入三行数据(自己造)
(1)创建表
Person表,PersonId 是表主键
在这里插入图片描述
Address表,AddressId 是主键
在这里插入图片描述
(2)编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:FirstName, LastName, City, State
在这里插入图片描述

项目六:删除重复的邮箱

编写一个 SQL 查询,来删除 email 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。
(1)创建表,id是主键
在这里插入图片描述
(2)自连接在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值