MYSql lesson 3 基本知识点
DQL (Q=query) 数据库查询语言 专门用来查询
DML (M=manipulation) 数据库操纵语言 专门做增删改操作
DDL (D=definition) 数据库定义语言 专门建库建表
DCL (C=control) 数据库控制语言 权限事务
SQL语句:
1.修改表的名称:
ALTER TABLE 旧表名 RENAME TO 新表名;
2.给表添加一个新的列(表已经创建好):
ALTER TABLE 表名 ADD 新的列名+数据类型…;
3.重新修改已经定义的列的内容:
ALTER TABLE 表名 CHANGE 旧列名 新的列名 新的列的数据类型…;
4.删除表中的列:
ALTER TABLE 表名 DROP 列名;
5.给已经创建好的列添加约束:
ALTER TABLE 表名 ADD CONSTRAINT 约束(列名);
PS:这里的约束可以是唯一约束 也可以是主键约束
6.给表添加外键约束: PS:主表列也可以叫引用列 从表列也可以叫外键列
alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key (从表外键字段) references 主表(主键字段)
从表数据依赖于主表,一般最后查询数据时把主表与从表进行关联查询
主表(父表) 在数据库中建立的表格即Table,其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识。
PS:外键的命名规范:KF_主表_从表
7.删除该表的外键约束: PS:要根据外键来删除
ALTER TABLE 主表 DROP FOREIGN KEY KF_主表_从表
8.添加一行新的列:
INSERT INTO 表名(括号内可以写要添加的列名) VALUES (各个列对应的值),(可以使用逗号相隔添加多个列的值);
9.更新表内的列的值:
UPDATE 表名 SET 更新后的值 WHERE 更新条件 PS:也可以配合子查询使用,下面会说起
10.清空表内的数据(自增长重新计算):
TRUNCATE TABLE 表名
10.1清空表内的数据(保留原来的自增长):
DELETE FROM 表名
------------------------------------------------------DQL-- 数据库查询语言------------------<分割线>------------------------------------------------------
数据库的示例 带<>一定要写
带[]可写可不写
sql语句之间的执行顺序
select 查询的列名
from 查询哪张表
[where <筛选条件>]
[group by<分组条件>] 精确筛选
[Having <分组筛选>]
[order by <排序列/desc||asc>]
[limit 参数1,参数2] 分页
–LIMT分页–
一般在行数过多的时候使用,不想显示在同一个页面的时候,可以使用LIMIT分页
示例:SELECT * FROM 表名 LIMIT 0,0
前面的0代表的是要忽略的行数 -------------------<分割线>--------------------- 如何计算出当前要忽略的行数:
后面的0代表的是要显示的行数 -------------------<分割线>-------------------------忽略的行数=(当前页码-1)×要显示的行数
–子查询–
子查询的目的
1.在同一个表进行筛选
2.拼接表数据
–where子查询–
语法:SELECT * FROM 表名 where(可以使用运算符号例如:><=等等) (SELECT * FROM 表名)
示例:
—最外层的是你想要查询到的结果,内层只是帮你筛选的条件
WHERE子查询也可以完成链接查询的操作,也可以配合聚合函数进行使用
示例: --PS:插入图片是为了让各个SQL语句的语法结构给初学者提供更加直观的感受
最重要的点:外层接收条件是一个的话 内层的返回的列也只能是一个
–From子查询–
From子查询语法:Select * from (Select * from xxx);
from子查询会把from后面括号里面的查询内容变成一张临时的表,当要连接两个零时表的时候,可以使用left join连接
select * from (select * from xxx)as a left join (select * from xxx) as b on a.xxx=b.xxx
可以把两个临时表的内容连接起来进行查询操作