数据库:
- 数据库是一门独立的学科,只要是做软件开发的,数据库都要学。
提前准备了一个数据库test 和3个表(dept,emp,salgrade)
1.登录数据库:(-u 和 -p 分别是账户和密码)
bash
mysql -u root -p 123456
2.查询数据库:(前四个是系统库,后面是用户库)
bash
show databases;

3.使用某个数据库:(就会进入这个数据库)
bash
use test;

4.查询数据库里面的表结构,看看里面有什么表:(3个表)
bash
show tables;

5.查询表的结构:(里面有字段,类型。。。。)
bash
desc dept;

6.查询表里面的数据:
bash
select * from dept;

7.关于查询 语句是我们最应该掌握的(重点)
select : 选择 哪个字段 .......
from: 从哪个表......
where: 筛选条件.......
group by + having(min max avg count sum分组函数):
只有使用分组才能使用分组函数,但并不绝对,
order by:排序 desc 和csc ,升序和降序
limit: 查出的结果,取多少个
distinct:去重,只能放在字段的前面,否则报错
if: 相当于三元运算符,(A>B,a,b) true 为 a false 为 b
cast:类型转换 将(A,B),将A转换为B类型
isnull: 判断是否为null
current_time():获取当前时间时分秒
current_date():获取当前日期
concat:拼接字符串('值1','值2 '.'值3')
trim:去除前面的空白
substr;截取字符串("字符串",下标开始,几个)
datediff:计算两个日期差的数量
下面进行 示例:(我用emp这个表 进行演示)
1. 查询 某个字段
select * from emp; * 代表所有字段
sql
select * from emp;

查询 某个字段 ,比如查询 ename
sql
select ename from emp;

查询 2个或多个字段,中间用逗号间隔,最后一个字段不需要逗号
查询 ename 和 job
sql
select ename,job from emp;

2.查询带条件的字段 where,比如查询sal薪资大于1000,
sql
select ename,job,sal from emp where sal>1000;

3.查询带分组函数的字段 ,group by + (min max avg count sum)+having
(当对where的过滤条件不满足的时候,可以用having进行再次过滤)
sql
select avg(sal) ,deptno from emp where sal > 1000 group by deptno;

4.然后可以使用order by 进行排序 desc 和csc
sql
select avg(sal) ,deptno from emp where sal > 1000 group by deptno order by avg(sal) desc;

5.可以用limit 来取出 前几个元素 limit n;
sql
select avg(sal) ,deptno from emp where sal > 1000 group by deptno order by avg(sal) desc limit 1;

8.对于字段的数据类型:(开发常用的)
char(m):m长度是0~255个字符
varchar(m): 最长65535个字节
int:4个字节
bigint:8个字节
enum: 字段1('值1','值2' ,'值3') 里面的值,如果插入必须是这3个值
double:8个字节
json:文本格式(增删改语法 可以看一下)
date:3个字节 只存年月日
datetime: 8个字节 可以存年月日时分秒
9.对表的增删改DDL
1.创建表: create table t ()
sql
create table t (
id int,
name varchar(10)
)
2.对表进行操作 alter
sql
-- 对表改名字
alter table t rename tt;
-- 对表添加字段
alter table tt add email varchar(20);
-- 对表修改字段
alter table tt change id number int;
-- 对表删除某个字段
alter table tt drop number;
-- 修改字段的类型
alter table tt modify name char(10);
总结 : alter table 表名 操作名 条件;(简单记一下)
操作名:add + change + drop + modify +rename
10.对于表内数据的操作DML
delete + insert into +update
1.insert into 表名 ( 字段 )values ( 值 );
2.update 表名 set 字段=值 where 某个字段=值;
3.delete from 表名 where 条件;(truncate 这个删除不能恢复 不可回滚 rollback)
11.给表加上主键 约束constraint
1.非空约束; not null (字段不能为空,插入值的时候)
2.检查约束 :check;(给一个条件,比如sal>100 ,插入的时候会判断值是否满足)
3.唯一约束:unique(插入的时候,不能重复,这个也适合作为外键)
4.主键约束:primary key(用的最多)
5.外键约束:foreign key ( 这个也是)