创建数据库(CREATE TABLE)
连接数据库,库中建表 如下图,可以 直接在库中建表,可以 直接CREATE TABLE 建表 ,不展示了 ,直接建
建好表后 ,如下图,点击 选择前 100行,SQL直接跳到SQL表运行界面
添加(Insert语句)
1.下图语句为将所有字段内容完整写入数据表中
把所有字段的内容,按顺序完整逐条写入数据表中。
- 字段顺序、数量,必须和后面
VALUES里的值一一对应,不能多、不能少、不能乱序。 - 字符类型加单引号、数字不用加,主键自增就不用写 id 字段,会自动生成。
注意:想要 执行此语句,选中此语句,点击执行,即表格生成新数据
选中下述的Select,点击执行便执行查询整个表
2.指定列名添加
选择需要添加的字段进行添加
删除(Delete)
1.根据字段删除数据
id=2其实是个运算逻辑,可以写成id!=2,意思时除了不等于2的全部字段删除,或者改成>=2,意思是>=2的所有 字段都可删除
更新(UPDATA)
1.根据字段更新部分字段行中的内容
UPDATE 表名:指定要更新的表SET:后面跟「字段 = 新值」,可以同时修改多个字段,用逗号分隔WHERE:关键!用来指定要更新哪几行,不写会更新整张表的所有数据!
Where后面的可以增加逻辑运算符比如图片中or,意思是在满足关键字段id=4或者字段的productName='HR'中更新productName数据yc和pirce=0.33,同样也可以用and
查询(Select)
1.在productTab的数据表中查询字段 为ProductName的列内容
结果
2.在productTab的数据表中查询字段 为ProductName的列内容,通过as将product Name变更为产品名称
结果
3.在productTab的数据表中查询所有字段内容 ,并 将字段 名称改为中文
结果
1.查询满足id=4的数据,并把字段变更为中文展示
数据表中的数据源是
经过查询并字段展示 为 中文后
4.升序降序排序查询
结果
升序
5.区间查法
通过字段CreatTime中内容区间为04-029 20:19:14.377到202-04-29 20:19:14.863之间查询
6.模糊查法
查询表ProductTab中字段productName中最后有l的内容
结果
查询ProductTab中字段productName中中间有l的内容
结果
这个比较奇特就是比如%1代表内容最后为1;
%%1,代表末尾为1字段;
1%,代表首字符为1字段;
7.分页查询
ROW_NUMBER() OVER (ORDER BY creatTime DESC):按创建时间倒序,给每一行数据生成一个从 1 开始的连续序号(RowNum)- 这样表里的每一行,都会带上一个唯一的行号
- 外层查询:按行号分页
AS T:给内层子查询的结果集起个别名,方便外层调用WHERE RowNum BETWEEN 1 AND 10:筛选出第 1~10 行数据,也就是第 1 页,每页 10 条
结果
8.select逻辑运算
9.内连接
两个表,或者多表查询,显示
比如我有两张表
orderTab表内容为
productTab表内容为
指令通过inner join
SELECT *:查询两个表中所有匹配的字段FROM orderTab o:从订单表orderTab开始查询,给它起别名o(方便后面引用)INNER JOIN productTab p:和商品表productTab做内连接,给它起别名pON o.pId = p.id:连接条件,用订单表的商品 IDo.pId和商品表的主键p.id做关联
内连接的核心逻辑
- 内连接只会返回两张表中都能匹配上的记录
- 也就是:只有订单表
orderTab里的pId,在商品表productTab里存在对应的id,这条数据才会被查出来 - 如果订单里有一个
pId不存在于商品表,这条订单就不会出现在结果里 结果
10.左连接
- 左连接,以左表为 基准
- 结果
11.联表查询
UNION会把两个SELECT查询的结果合并成一个结果集,而且会自动去重。- 两个查询都来自同一张
productTab表,查询的字段也完全一样 - 所以执行后,结果和单独执行一次
SELECT id, productName FROM productTab是一样的(因为去重了,不会出现重复数据) - 结果
- 第二种