SQL学习笔记(二)创建一个表
在命令行里键入以下命令:
1 | sqlite3 |
如果你按照上一个章节中那样配置好了环境,应该可以看到以下输出。
1 | # SQLite version 3.43.1 2023-09-11 12:01:27 |
看到输入提示符变成“sqlite>”,我们就进入了sqlite的命令行。
基本语句
数据库有四个基本操作CRUD,即Create增、Read查、Update改、Delete删,在SQL中分别对应以下语句。
- 增:CREATE, INSERT
- 查:SELECT
- 改:UPDATE
- 删:DELETE, DROP
创建一个表
使用以下命令来创建一个表,注意所有的SQL语句末尾都要有分号。
1 | CREATE TABLE 表名 ('列名' 数据类型, ...); |
不同的数据库可能对相同的类型有不同的名称、不同的长度、数据范围
以sqlite为例,常用的数据类型有以下几种:
数据类型 | 描述 |
---|---|
NULL | 空值NULL |
INTEGER | 整数,具体位数取决于插入数据的大小 |
REAL | 8位IEEE浮点数 |
TEXT | 字符串 |
BLOB | 二进制大对象(Binary Large Object) |
另外,SQLite还提供了两个修饰符:NOT NULL
和UNIQUE
,分别表示这个字段不能为空,以及这个字段必须唯一。
根据我们的需求,创建一个这样的表:
1 | CREATE TABLE books ('title' TEXT NOT NULL, 'price' REAL, 'sales' INTEGER, 'category' TEXT); |
我们先把一些数据拷贝到books.csv中(csv是Comma-Separated Values,逗号分隔的值的缩写)
数据是ChatGPT生成的,所以不要在意一些不合理的小细节
1 | The Great Gatsby,50.99,4,Fiction |
将sqlite切换为csv模式并导入这个.csv文件。
1 | .mode csv |
所有以逗号开头的命令都不属于SQL,而是SQLite的语法
查看表
这样可以查看有哪些表,每个表有哪些字段:
1 | .schema |
这样查看表的内容:
1 | SELECT 列名,... FROM 表名; |
切换到box模式,这样的输出比较好看,然后我们用SELECT
命令查看一下导入的数据。
1 | .mode box |
“*”表示通配符,即选择所有的列,在这里相当于SELECT name, price, sales FROM books;
可以看到输出了刚刚导入的表格
1 | ┌───────────────────────────────────────┬───────┬───────┬─────────────────┐ |
当然,不一定要选择所有的列,如果输入SELECT name FROM books;
就只会显示所有的书名。试一试吧!
打开数据库
输入.quit
退出SQLite。
你会发现,SQLite为你在目录下自动创建了一个名为“books.db”的文件。
下一次打开数据库只需要输入sqlite3 books.db
即可恢复原来的数据。
本文属于系列文章:SQL学习笔记