- MySQL学习笔记 | 01-为什么要使用数据库
- MySQL学习笔记 | 02 - MySQL在Windows下的安装、配置、服务启动/停止、用户登录、查看版本号
- MySQL学习笔记 | 03 - MySQL在 Ubuntu 下的安装、配置、服务启动/停止、用户登录退出
注意,MySQL中输入的所有语句都要以
;
或/q
结尾!
接下来的所有操作以电网公司管理用户用电记录为例。
1. 数据库的查看、创建与删除
① 创建数据库
create database <数据库名>;
② 删除数据库
drop database <数据库名>;
③ 查看当前所有存在的数据库
show databases;
2. 数据表的查看、创建与删除
2.1. 使用指定的数据库(必须)
use <数据库名>;
2.2. 查看数据库中的表
show tables;
2.3. 创建表
create table 表名(字段1, …字段n,[表级约束]) [type=表类型];
每个字段的格式为:
字段名 字段类型 字段约束
① 字段类型
- int、 bigint、 smallint、 tinyint
- int(M)的M 表示最大显示宽度,与存储大小无关
- float、 double
- float(5,2)表示显示5位有效数字,小数位显示2位
- char、 varchar——字符串
- Char(N)固定使用N个字符长度,不足部分后面补空格;
- varchar(N)可指定最大字符数;
- text、 blob——不指定长度的字符串;
- blob存储二进制、 text存储字符串
- date、 time、 datetime、 timestamp;
② 字段约束
- null/not null 允许/不允许该字段为空,默认为null;
- default default_value 指定默认值
- auto-increment 自增长
③ 表级约束
- primary key 主键
- unique 唯一键
示例:
设计一个数据库,用于电网公司管理用户用电记录。
数据表包括:
- 用户号(id, 10 位整数,不能为空,且具有唯一性)
- 用电类型(type,枚举型。分为家庭用电、商业用电、工业用电,不同的用电类型电价不
同,电价无需存入数据库,可以使用实际价格) - 电费预存款余额(balance,浮点型)
- 总用电量(total,整数)
- 本年度用电量(amount,整数,用于阶梯电价计算)
- 用户手机号(phone, char(11))
use wangshiwei;
create table user961 (id INT(10) not null,type ENUM("home","industry","business"),balance FLOAT,total INT,amount INT,phone CHAR(11));
2.4. 查看、复制、删除表
查看表结构:
desc <表名>;
复制一张表:
create table <新表名> like <源表名>;
删除一张表:
drop table <表名>;
2.5. 修改表结构
alter table <表名> 更改动作1[,更变动作2…]
① 增加一个字段
alter table <表名> add <字段名> <类型> first|after;
如果没有指定first或者after,则在末尾添加一列。
② 删除一个字段
alter table <表名> drop <字段名>;
③ 修改一个字段的属性
alter table <表名> modify <字段> <新属性>;
④ 改表名
alter table <旧表名> to <新表名>;
rename table <旧表名> to <新表名>;
3. 数据表记录的查看、创建与删除
3.1. 向表中添加记录
insert into <表名>(<字段1>,<字段2>) values(<字段1的值>,<字段2的值>);
3.2. 删除表中记录
delete from <表名> where <条件表达式>;
条件表达式可以是:
<字段>=<字段值>
3.3. 修改表中记录
update <表名> set 字段1=字段1的值[,字段2=字段2的值] where <条件表达式>;
eg. 在之前创建的电网用户数据表中添加一条记录。
4. 数据表记录查询
4.1. 读取表中所有数据
select * from <表名>;
4.2. 查找特定数据
比如查找某一个属性值满足要求的所有记录:
select * from <表名> where <条件表达式>;
① 查找属性值中以abc开头的条件表达式:
where name like 'abc%';
② 查找属性值中包含abc的条件表达式:
where name like '%abc%';
4.3. 查询结果的过滤与排序
① 只显示第1条记录:
select * from <表名> limit 1;
② 只显示第3到7条记录:
select * from <表名> limit 2 5;
limit后的前一个参数表示从第几个开始显示(0为第一个),后面的参数表示显示几条记录。
③ 对查询结果的排序:
按某一字段属性升序排列:
select * from <表名> order by <字段名> asc;
按某一字段属性降序排列:
select * from <表名> order by <字段名> desc;
如果最后一个参数asc或者desc不加,则默认升序排列。
接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:『mculover666』。