DDL之数据库操作:databases
1,查看数据库:
命令: show databases;
2,查看某个数据库的定义的信息:
show create database 数据库名;
3,需求: 把数据库 day01删除掉
格式:
drop database 数据库名称;
4,切换数据库:
use 数据库名;
DDL之表操作:table
1,创建表:
格式:
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
...
);
类型:
varchar(n) 字符串
int 整形
double 浮点
date 时间
timestamp 时间戳
约束:
primary key 主键,被主键修饰字段中的数据,不能重复、不能为null。
2,查看表:
查看表的信息
查看数据库中的所有表:
格式:show tables;
3,需求:查看一下 user 表的 表结构
格式:
查看表结构:
格式:desc 表名;
4,删除表:
需求:把user表删除掉
格式:drop table 表名;
5,修改表:
//需求:修改user表中 cname字段 数据类型的长度变成100
需求: 给user表添加一个新的列列名叫做 sex ,类型是字符串类型,长度是50
格式:
alter table 表名 add 列名 类型(长度) [约束];
6,
需求:
/*
修改user表的 sex字段,让字段的长度是100 sex 可以为空
格式:
alter table 表名 modify 列名 类型(长度) [约束];
*/
ALTER TABLE USER MODIFY sex VARCHAR(100)
7,需求:
把user表的 列名sex改成usex
格式:
alter table 表名 change 旧列名 新列名 类型(长度) [约束];
8,需求:
把user表的 usex这一列删除掉
格式:
alter table 表名 drop 列名;
9,需求:
把user表的 usex这一列删除掉
格式:
alter table 表名 drop 列名;
10,需求:
把user表 表名改成 myuser
格式:
rename table 表名 to 新表名;
DML数据操作语言
1,设计数据库表
2,-- 向表中插入某些字段
insert into 表名 (字段1,字段2,字段3…) values (值1,值2,值3…);
–向表中插入所有字段,字段的顺序为创建表时的顺序
insert into 表 values (值1,值2,值3…);
单表操作
1,表的更新
整体的更新某一列
根据条件进行更新
条件更新
2,删除记录:delete
原始数据和需求
实现:
删除所有
Delete 删除数据之后 又重新添加 效果 注意主键的效果
删除整表数据的方式2
3,基本查询
数据准备
查询所有
查询一列信息
查询多列
查询 没有去重
查询 去重
对查询结果 进行运算
别名
查询多列 使用别名
4, 基本查询practice
#查询商品名称为“花花公子”的商品所有信息:
SELECT * FROM product WHERE pname=‘花花公子’
#查询商品价格在200到1000之间所有商品
#查询商品价格是200或800的所有商品
#查询含有’霸’字的所有商品
#查询第二个字为’想’的所有商品
查询商品价格为空的商品
查询商品价格不为空的商品
5,聚合 排序 分组
降序
升序
聚合函数 count(*) 统计条目个数
带有条件的统计
有条件的求和
Avg 求平均
分组
分组查询 带条件
分页
查询表的英语成绩去掉重复数据。
统计每个学生的总分,显示时 有两列信息 分别是name 和sum, sum为总分,总分的意思是chinese english math 之和
查询数学分数为89 90 77 的同学信息
13)查询数学分80并且语文分80的同学信息
14)查询英语80或者总分为200的同学的信息
15)对数学成绩降序输出。
16)对总分排序,降序输出,显示时只有一列,列名是sum 显示的是总分
17)对姓李的学生信息按照总分降序的方式输出
强化2
单表级别:
1)查询没有上级的员工全部信息(也就是说 员工上级编号为 null 的)
查询10号部门的平均薪资、最高薪资、最低薪资
单表带有子查询
0)-- 查询薪资最高的员工的信息 ----子查询
列出与“SCOTT”从事相同工作的所有员工姓名、工作名称
查询语句重点语法
select [distinct]
*| 列名,列名 from 表 where 条件Distinct 去重
From 从…
where 条件连接符
order by 列 以XXX列进行排序 ASC 升序
如 123456 DESC 降序 如 654321count:统计指定列不为NULL的记录行数;
sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;group by 列名 以 XXX列 分组