Java从零单排 -- SQL

202 阅读3分钟

本章节将结合《SQL基础教程》讲解。

什么是SQL

SQL是用来操作数据的语言,表的创建,数据的插入,修改,查询以及删除都是通过SQL完成的。

不同的数据库解析的SQL是不同,但是大体上都是符合标准的SQL,所以我将以上一章节的SQLite为例,
介绍如何通过SQL来创建表,以及数据的更改。

表的创建

首先我用的数据库交互工具是natvicat,连接的数据库是SQLite。

创建表的CREATE TABLE语句
模版
      CREATE TABLE <表名><列名1> <数据类型> <该列所需约束><列名2> <数据类型> <该列所需约束><列名3> <数据类型> <该列所需约束><列名4> <数据类型> <该列所需约束><该表的约束1><该表的约束2>, ……) ;
上一章创建的person表
      CREATE TABLE "person" (
      "id"           INTEGER   NOT NULL,
      "name"         TEXT,
      "age"          INTEGER,
      "nationality"  TEXT,
      PRIMARY KEY ("id")
      );
      约束条件可以省略

在navicat中双击选择数据库,点击上方的查询,再点击新建查询,将SQL语句复制在输入框内,点击运行,留意下方的信息的提示,出现[Err] 就是创建失败,没有就是成功。

注意:数据类型,每一种数据库支持的类型会不一样,我们需要转换的。

表的删除和更新

表的删除
DROP TABLE <表名>;
添加列
ALTER TABLE <表名> ADD COLUMN <列的定义>;
删除列
ALTER TABLE <表名> DROP COLUMN <列名>;

这是都是操作表语句,一般来说我们可以通过工具直接对表操作就可以了,工具就会帮我们执行这些语句了。

navicat中,在表的位置右键,选择设计表,就可以对表进行删除、更新操作了,点击保存就完成了。

查询数据 SELECT语句

SELECT <列名>, ……  FROM <表名>;
//*标识所有字段 
SELECT * FROM person ;
//增加过滤条件 只要获取名字叫小马,年龄是21的字段,字符串一点要用双引号
//and 为关键字,条件要同时满足
SELECT * FROM person WHERE name="小马" and age=21;
//分页limit 偏移值,数量
SELECT * FROM person limit 0,1

数据的插入 INSERT语句

语法 INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);
insert into person (id,name,age,nationality) values(5,"小金",18,"英国");

数据的更新 UPDATE语句

UPDATE <表名>  SET <列名> = <表达式>;

一把使用会增加约束条件的
UPDATE person  SET age = 28 where name = "小金";

数据的删除 DELETE语句

DELETE FROM <表名>;
不删除,只删除表中的数据
增加约束条件
DELETE FROM person where name = "小金";

事务

事务表示一系列更新处理的集合。 以日常生活中的例子,去服装店买衣服付款时,店铺老板娘在收银台算钱,把收入加到账本上,然后去库存本子减去对应衣服的仓库。这一系列的更新处理中,比如收钱的时候发现,钱是假钞,这样交易就结束了不会去减库存;或者在减库存的时候发现没库存了,这次的交易也要结束,账本上就不会增加钱。所以这一系列的更新处理,要么一起成功,要么一起失败。 在SQL中我们可以通BEGIN TRANSACTION 开始事务,COMMIT提交事务,在这2个关键字里面的就是一系列更新处理

BEGIN TRANSACTION;
     -- 账本增加100块
    UPDATE wallet SET money = money + 100;
     
   -- 运动T恤库存 减一件
    UPDATE Product
       SET repertory = repertory - 1
     WHERE product_name = '运动T恤';
COMMIT;