Day4
mysql数据库
1. 数据库的简介
(1) 数据库就是一个文件系统,使用标准sql对数据库进行操作(crud)
(2) 常见的数据库
a) oracle:是oracle公司产品,是大型的收费的数据库
b) db2:是ibm公司的产品,是大型的收费的数据库
c) SQLServer:是微软公司产品,是中型的数据库
d) MySQL : 在oracle收购之后6.x版本开始收费,之前的版本是免费的。
e) SQLite:是小型的嵌入式数据库,应用在客户端开发中,比如安卓
(3) 关系数据库:存储的是实体之间的关系
2. sql语言简介
(1) sql的分类
a) DDL (数据定义语言)
i. 常用的语句 create
ii. 创建数据库,创建数据库表
b) DML (数据操纵语言)
i. 对表中的记录进行增加修改 删除操作
ii. 常用的语句 insert update delete
c) DCL (数据控制语言)
i. 数据库的编程的语言
d) DQL (数据查询语言)
i. 对表中的进行查询的操作
ii. 常用的语句 select
3. 使用sql对数据库操作
连接数据库 | mysql -u root -p 密码 |
创建数据库 | create database 数据库的名称 |
查看所有的数据库 | show databases; |
删除数据库 | drop database 要删除的数据库的名称; |
切换数据库 | use 要切换的数据库的名称; |
4. 使用sql对数据库表操作
创建数据库表 | 语句 create table 表名称 (字段 类型, 字段 类型) |
查看表结构 | 语句 desc 表名称; |
删除表 | 语句 drop table 要删除表的名称; |
查看当前的数据库里面有哪些表 | 语句 show tables; |
mysql的数据类型
字符串型 | VARCHAR、CHAR |
大数据类型 | BLOB、TEXT |
数值型 | TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE |
逻辑性 | BIT |
日期型 | DATE:用于表示日期 1945-08-15 TIME:用于表示时间 19:10:40 DATETIME:手动添加时间到数据表里面 TIMESTAMP:自动把时间添加到表里面 |
mysql的约束有三种
非空约束 not null | 表示数据不能为空 |
唯一性约束 unique | 表中的记录不能重复的 |
主键约束 primary key | 表示非空,唯一性 自动增长 auto_increment |
5. 使用sql对表中的记录进行操作(增删改查操作)
功能 | 语句 | 注意 |
Insert 向表里面添加记录 代码:insert into user values(1,'aaa','123456','nan'); | insert into 要添加的表名称 values(要添加的值); | 加的字段的数据类型是int类型,直接写值 添加的字段的类型是varchar类型和日期类型,使用单引号把值包起来 |
修改表里面的记录 update | update 表名称 set 要修改的字段的名称1=修改的值1,要修改的字段的名称2=修改的值2 where 条件 |
|
删除表里面的记录 delete | delete from 表名称 where 条件 |
|
查询表中的记录 select | select 要查询的字段的名称 (*) from 表名称 where 条件 |
|
别名 as |
|
|
distinct,去除表里面重复记录 | select distinct * from 表名; |
|
where子句 | 运算符 < > >= <= in:在范围内 and:在where里面如果有多个条件,表示多个条件同时满足 得到区间范围的值 like:模糊查询 | select * from user where username like '%a%'; |
查看当前的运行的数据库 | select database(); |
|
对表中查询的记录排序order by | order by写在select语句的最后 | 升序 order by 要排序字段 asc(asc可以省略,默认的情况下就是升序) 降序 order by 要排序字段 desc |
6. 聚集函数
(1) 使用提供一些函数,直接实现某些功能
(2) 常用的聚集函数
函数 | 功能 | 写法 |
count()函数 | 根据查询的结果,统计记录数 | select count(*) from ...where.... |
sum()函数 | 求和的函数 | select sum(要进行求和字段) from ...where.... |
avg()函数 | 计算的平均数的函数 | select avg(要计算平均数的字段名称) from ... |
max()函数 | 计算最大值 | select max(字段) from... |
min()函数 | 计算最小值 | select min(字段) from... |
7. 分组操作
分组使用 group by 根据分组的字段
在分组的基础之上再进行条件的判断 having,后面可以写聚集函数
(1) 例: 统计orders表里面每类商品的总的价格
select name,sum(price) from orders group by name;
(2) 例: select name,sum(price) from orders group by price havingsum(price)>66;
8. mysql的关键字limit
(1) limit关键字查询表中的某几条记录
(2) limit关键字不是标准sql的关键字,只能在mysql数据库里面使用,实现分页的功能
(3) 使用limit查询前几条记录
写法: limit 前几条记录 limit 3
(4) 使用limit查询第几条到第几条记录
写法: limit 第一个参数,第二个参数
第一个参数开始的记录数的位置,从0开始的
第二个参数从开始的位置向后获取几条记录
? 修改表添加列:
* alter table 表名 add 列名 类型(长度) 约束;
*alter table employee add image varchar(50);
? 修改表删除列:
* alter table 表名 drop 列名;
*alter table employee drop job;
? 修改表的列的类型长度及约束:
* alter table 表名 modify 列名 类型(长度) 约束;
*alter table employee modify image varchar(80) not null;
? 修改表的列名
* alter table 表名 change 旧列名 新列名 类型(长度) 约束;
*alter table employee change image eimage varchar(60);
? 修改表名
* rename table 旧表名 to 新表名;
*rename table employee to user;