本章节将结合《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;