ubuntu 18.04.1 数据库是MySQL 8.0.16
参考网址:
教程 w3cschool https://www.w3school.com.cn/sql/sql_foreignkey.asp
刷题 牛客网 https://www.nowcoder.com/ta/sql
目录
DDL:数据定义语言、Data Definition Language
DML:数据操纵语言、Data Manipulation Language
DQL:数据查询语言 Data Query Language
下面这些内容是本人对数据库的一些理解
DDL:数据定义语言、Data Definition Language
- 功能:创建数据库和表的结构
- 常用关键字:
- CREATE, 创建表或库
- ALTER, 修改表中对应列 或者 库的属性
- DROP,删除表或库
- TRUNCATE,删除表中所有内容
- 由于要区分更改的是库还是表,使用关键字后要加上TABLE或者DATABASE(或SCHEMA)。
- 库名和表名区分大小写,命令不区分大小写。
- 下面做些演示:(select * from 表名 作用是显示当前表中所有数据,具体后边再解释)
登录mysql数据库管理系统
新建一个库
删除库
显示库的创建信息
修改、备份、恢复数据库(这里修改了数据库字符集)
进入某一个数据库:
接下来是对表的基本操作(必须先登入某一个数据库才对表进行操作):
创建一个表:
- 设置成员的格式是:参数名 参数类型 参数属性
- 中间使用逗号隔开。
- NOT NULL 表示值不能为NULL。
- AUTO_INCREMENT表示自动增加。
- varchar表示变长字符串。
- PRIMARY KEY表示主键。
- 表的列是表的数据结构(可以理解为c语言中的结构体),而表中的行是表中的内容(具体的对象),两者是不一样的,要区分开来。所以添加、删除、修改表的行和列是不一样的方法。
查看表的数据结构:(desc全称为describe,描述)
添加表中的列:(DATE可以为小写)(关键字 ADD)
删除表中的列:(关键字 DROP)
修改表中列的名:(关键字 CHANGE)
修改表中列的值类型:(原本Age是int型)
修改表名:
修改表的字符集:
修改表中某一列的值为NOT NULL:(modify关键字)
或者通过修改列名的同时修改NOT NULL。
- 第一次错误是因为表中有一条或多条记录的realName为NULL,这时候不能设置。将所有记录的realName置为非NULL后就可以修改了。
DML:数据操纵语言、Data Manipulation Language
- 用于向数据库中的表插入、删除、修改数据
- 常用关键字:
- INSERT:插入一条记录
- DELETE:删除一条记录
- UPDATE:更新记录中某一项或多项
- 由于这里是针对表的,所以不再需要添加是database还是table了。
添加表中一行:
删除一条记录:
更新一条记录:(自己添加了几个)
更新一条记录的多个值:
DQL:数据查询语言 Data Query Language
- 作用:查询数据
- 常用关键字
- select
- 格式
- select 列名,列名,列名,...
- from 表名
- where 查询条件(也可以称为过滤条件)
- order by 列名 Desc(默认为升序 Asc)
- group by 列名 [having 条件]
- select后跟的列名会按照你写得顺序显示出来,可以将我们需要的列写到select后,就会显示我们需要的列。而条件所在的列可以不显示。其中 * 是通配符,也就是所有列名的意思。
注意这里显示的顺序
接下来,我先添加一些数据,方便更好的做一下查询的介绍:
- 比较运算符有 > < = >= <= <> 分别为大于,小于,等于,大于等于,小于等于,不等于
- BETWEEN... AND...显示某一区间的值,闭区间
- IN(SET) , SET为一个集合,其中每个值用逗号隔开。
- LIKE '%guo_' , 模糊查询 百分号%代表零个或多个字符,下划线_表示一个字符
- IS NULL , 判断是否为空。不能用0判断一个NULL值。此外,注意NULL占用空间。
- 逻辑运算符有and,or, not 分别是与,或,非
1.找出16岁并且体重在55kg以下的人的ID和名字。
2.找出16岁或15岁的身高在160以下的人的ID和名字。
3.按照身高升序、降序排列输出表中所有内容
升序(默认就是升序,或者加上Asc,全称ascend)
降序(desc 全称descend,下降)