MySQL学习日记2关于数据表的操作

1.修改

MODIFY
改字段的数据类型
alter table 表名 modify 字段名 数据类型;
例:
alter table 员工信息表 modify 员工姓名 varchar(8);
改已有字段所在的列
alter table 表名 modify 字段名1 数据类型 first|after 字段名2;
例:
##将 员工姓名 改到列首
alter table 员工信息表 modify 员工姓名 varchar(8) first;
##将 员工姓名 的位置改到 员工编号 后
alter table 员工信息表 modify 员工姓名 varchar(8) after 员工编号;

CHANGE 和 AS
改字段名
alter table 表名 change 原字段名 新字段名 新数据类型;
例:
##将 入职时间 改为 入职日期
alter table 员工信息表 change 入职时间 入职日期 date;

##只在查看的时候改一次,不在原表上改
select 列名 [as] 别名;

ADD
添加字段
alter table 表名 add 新字段名 数据类型 [first|after 表中某一字段];
例:
##将 身份证号 插入到 员工性别 后
alter table 员工信息表 add 身份证号 char(18) after 员工性别;
##将 工号 插入到首列
alter table 员工信息表 add 工号 char(3) not null first;

RENAME
改表名
alter table 原表名 rename [to] 新表名;

2.复制

create table [if not exists] 新表名 [like 旧表名] | [as (select_statement)];
例:
##新建一个 employees 空数据表并将 员工信息表 复制到 employees 这个表中

LIKE
create table employees like 员工信息表;

AS
create table employees as(select *from 员工信息表);

[if not exists]:防止重复创建

3.删除

DROP
删除表
drop table [if exists] 表名;
例:
drop table 员工信息表;
##删除 员工信息表 (如果没有这个表也不报错)
drop table if exists 员工信息表;

DELETE
删除记录
delete from 表名 [where 条件语句];
例:
##删除 员工姓名 是 李四 的行
delete from 员工信息表 where 员工姓名='李四';

TRUNCATE
删除记录(不可恢复)
truncate from 表名;

4.插入数据

实例:
创建表
mysql> create table kcb(
->课程号 char(6) not null primary key,
->课程名char(20)not null,
->学分 tinyint(2) not null,
->学时 tinyint (2) not null,
->学期 tinyint not null,
->前置课 char(6)not null
->);
显示表结构
mysql> desc kcb;
+--------+------------+------+-----+---------+-------+
| Field  | Type       | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+-------+
| 课程号 | char(5)    | NO   |     |         |       |
| 课程名 | char(14)   | NO   |     |         |       |
| 学分   | int(2)     | YES  |     | NULL    |       |
| 学时   | int(2)     | NO   |     |         |       |
| 学期   | tinyint(4) | NO   |     |         |       |
| 前置课 | char(5)    | NO   |     |         |       |
+--------+------------+------+-----+---------+-------+
6 rows in set


插入数据
mysql> insert into kcb values
->('21006','操作系统',4,64,1,'21001'),
->('31001','管理信息系统',3,48,4,'21004'),
->('31002','软件工程',2,32,5,'31001'),
->('31003','云计算',6,64,'321004');
查看表内数据
mysql> select *from kcb;
+--------+--------------+------+------+------+--------+
| 课程号 | 课程名       | 学分 | 学时 | 学期 | 前置课 |
+--------+--------------+------+------+------+--------+
| 21005  | 数据库       |    4 |   64 |    2 | 21004  |
| 21006  | 操作系统     |    4 |   64 |    1 | 21001  |
| 31001  | 管理信息系统 |    3 |   48 |    4 | 21004  |
| 31002  | 软件工程     |    2 |   32 |    5 | 31001  |
| 31005  | 云计算       |    6 |   64 |    3 | 21004  |
+--------+--------------+------+------+------+--------+
5 rows in set

5.更新

##满足where后面条件的行,把set后提到的东西都改掉
update 表名
set 要改的东西1,要改的东西2,...
where 条件
例:
##将 员工编号 为 00001 的行中 员工姓名 改为 张婷,工资+500
update 员工信息表 
set 员工姓名='张婷',工资=工资+500 
where 员工编号='00001';

6.查询

select [distinct] <字段列表>
from 表名
[where 查询条件]
[group by 字段列表]
[having 条件表达式]
[order by 字段列表]
[limit [offset,] 限制行数];

(1) [DISTINCT]:可选项,去除查询结果中重复的数据记录
(2)<字段列表>:表示需要查询的字段,其中至少包含一个字段名称,如果需要查询多个字段,需要用逗号将每个字段隔开。
(3)表名 :可以是单表或者多表。
(4)[WHERE<查询条件>]:可选项,限定本查询须满足查询条件。
(5)[GROUP BY<字段列表>]:可选项,该子句将查询结果按照指定的字段进行分组。
(6) [HAVING<条件表达式>]:可选项,与GROUP BY一起使用,该子句将分组结果按条件表达式进行过滤。
(7) [ORDER BY<字段列表>]:可选项,该子句将查询结果按指定字段列表的值进行排序。
(8)[LIMITI<OFFSET,>1限制行数>]:可选项,指定查询结果显示的数据行数,OFFSET表示偏移量。

例:
##查看 员工姓名 和 工资 这两列的记录
select 员工姓名,工资 from 员工信息表;
##查看 员工姓名 列,以 name 这个名字显示,as可以省略
select 员工姓名 as name;
select 员工姓名 name;

##替换查询结果的数据
##显示4列内容,员工姓名 入职日期 工资 工资等级
select 员工姓名,入职日期,工资,
case
when 工资<=4000 then '较低工资'
when 工资>4000 and 工资<4500 then'中等工资'
else '较高工资'
end as '工资等级'
from 员工信息表;

##查询去重后结果
select distinct 工资 from 员工信息表;


函数查询
COUNT
##计数,(*)包括空值,(字段名)不包括空值
select count(*) as 总人数 from 员工信息表;
select count(奖金收入) as 有奖金人数 from 员工信息表;
MIN|MAX
select max(工资) as 最高工资,min(工资) 最低工资 from 员工信息表;
SUM|AVG
select sum(工资) as 总工资,avg(工资) 平均工资 from 员工信息表;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值