数据库常见命令:
desc+表名 查询表结构
Create database +表名; 创建表
Show databases 查看一个数据库中有哪些表
Use + 表名 使用哪个表
Show tables ; 打开使用的这个表
Drop database + 数据库; 删除数据库
Drop table + 表名; 删除表
Create table + 要复制的表名 +like 从那个表复制
alter TABLE +要删除的表名+ DROP +要删除的列名
INSERT INTO 表名(列名1,列名2) VALUES(值1,值2) 往数据库表中插入数据
UPDATE 数据库名.表名 SET 要修改的列名= '修改后的值' WHERE 修改的列名对应的key= key是几
delete from 表名; 删除表中的数据
内连接:(inner join)
左连接:
SELECT deptname,ename FROM dept INNER JOIN emp WHERE deptnumber = deptno; 内连接
# SELECT deptname,ename FROM dept left join emp ON deptnumber = deptno; 左连接
(以左边的表为主,右边的表为辅,主要输出左边的值,没有值的位补空值)
右连接:
# select deptname ,ename from emp RIGHT JOIN dept on deptnumber = deptno; 右连接
(以右边的表为主,左边的表为辅,主要输出右边的值,没有值的位补空值)
(具体看数据库test01数据库)。
create 创建
```sql
create database 库名;
create table 表名(
字段名 数据类型(范围) 约束条件,
字段名 数据类型(范围) 约束条件,
字段名 数据类型(范围) 约束条件,
字段名 数据类型(范围) 约束条件
primery key(字段)
foreign key 字段 REFERENCES 表(字段)
);
```
##### alter 修改
```sql
-- 修改名字
alter database 库名 rename 新名
-- 添加字段
alter table 表名 add id int(11) not null
-- 删除字段
alter table 表名 drop id
-- 修改字段名
alter table 表名 modify 字段名 类型 约束
```
##### drop 删除
```sql
drop table 表名;
drop database 库名;
```
- DML(数据库操作语言) 》》 数据
Insert 添加数据
Insert into 表 values (值);
Updae 更新数据
Update 表 set 列名 = 新值(where条件);
Delete 删除数据
Delete from 表名 (where条件);
- DQL(数据库查询语言) 》》 数据
关键字:
Where 查询条件
Group by 分组条件
Having (必须和聚合函数连用代替where) 分组期间筛选条件
Order by 排序
Asc (和order by 连用可以省略) 升序
Desc (和order by 连用,放在order by 后) 降序
Like(和百分号和下划线连用) 模糊查询
_ 代表一个字符
% 代表多个字符
As 起别名,可省略
Distinct 去重
例:select distanct 列名 from 表名 where条件;
Limit 分页,限制
例: SELECT * FROM sporter LIMIT 2,2 从第三个数的值开始查两条
Inner join where 内连接
Left join on (左表为主,右表为辅) 左连接
Right join on (右表为主,左表为辅) 右连接
-- 查询所有
select * from emp;
-- 条件查询
select 字段 from 表 where 条件;
-- 当where后面条件中出现了聚合函数(min,max,sum,count,avg),那么应该用having来进行判断
-- 一旦聚合函数被当作条件使用的时候,就要使用having来进行条件判断
-- 统计各部门人数,查找哪个部门人数大于5
select * from dept group by deptno having count(*)>5
-- 模糊查询
select * from emp where 字段 like '%xx%';
-- 分页查询: a 表示起始位置(从0开始),b 表示查询的条数
select * from emp limit a,b
-- 分页语句语法拼接(当前页 page)
-- 注意以下的这个语法只能在java语言中进行使用
select * from emp limit (page-1)*b,b
-- 多表联查
select * from emp as e join dept as d on e.deptno = d.deptno
-- 左外连接 (会对左表进行补null值操作)
select * from emp as e left join dept as d on e.deptno = d.deptno