首发于SQL数据库
SQL基础教程(持续更新)

SQL基础教程(持续更新)

下载安装PostgreSQL 9.6:

安装完之后,进入路径:

c:\PostgreSQL\9.6\bin\psql.exe -U postgres



注:口令以光标的形式闪烁,但并不会显示出来。


输入命令:

SELECT 1;



";"是SQL的结束符,如果没有输入的话,即使按下回车键,SQL也不会执行。

创建数据库的SQL语句(数据库名称只能使用小写字母)

CREATE DATABASE shop;



结束psql

输入\q,然后按下回车键,就切断了与postgreSQL的连接



为了连接刚创建的数据库,需要暂时结束psql,直接X掉窗口即可关闭


连接学习用数据库(登录)

执行命令,登录数据库“shop",输入:

c:\PostgreSQL\9.6\bin\psql.exe -U postgres -d shop

其中"-d shop "是指定“数据库shop”的意思。




SQL的基本书写规则

  • SQL语句要以分号( ; )结尾。
  • SQL语句不区分大小写

为了易于理解:. 关键字要大写;表名的首字母大写;其余(列名等)小写

  • 字符串和日期常数需要使用单引号( ' )括起来。数字常数无需加注,直接书写即可

例如:'abc', 1000

  • 单词需要用半角空格或者换行来分隔

例如: CREATE TABLE Product


表的创建(CREATE DATABASE语句)

CREATE DATABASE <数据库名称>;

注:数据库名称、表名及列名都要使用半角字符(英文字母、数字、符号)





Product表的数据类型及列的约束:




命名规则:

只能使用半角英文字母、数字、下划线( _ )作为数据库、表和列的名称

例如:不能将product_id 写成 product-id 。¥、#、?也不能作为名称使用







所有的列都必须指定数据类型:数字型、字符型、日期型
INTEGER型整数(数字型)不能存储小数
CHAR型:字符型。 CHAR(10)或者CHAR(200),括号中指定的是字符串的最大长度

数据库中表的创建

使用命令:

CREATE TABLE Product

然后在表中创建内容:

shop-# (product_id CHAR(4) NOTNULL,
shop(# product_name VARCHAR(100) NOTNULL,
shop(# product_type VARCHAR(32) NOTNULL,
shop(# sale_price INTEGER ,
shop(# purchase_price INTEGER ,
shop(# regist_date DATE ,
shop(# PRIMARYKEY (product_id));

显示创建表(Product)成功



添加新的列项

shop=# ALTER TABLE Product ADD COLUMN Product_name_pinyin VARCHAR(100);

删除列项

shop=# ALTER TABLE Product DROP COLUMN Product_name_pinyin;

操作的图示:



然后输入:

\d shop



修改表名,然后显示新的表结构:

ALTER TABLE Product RENAME TO Productbk;

示例:



向表中插入内容:

shop=# BEGIN TRANSACTION;


开头的 BEGIN TRANSACTION 语句是开始插入行的指令语句,

shop=# INSERT INTO Product VALUES ('0001', 'T恤衫', '衣服',

shop=(#1000, 500, '2009-09-20');

INSERT 0 1

shop=# INSERT INTO Product VALUES ('0002', '打孔器', '办公用品',

shop(# 500, 320, '2009-09-11');

INSERT 0 1

shop=# INSERT INTO Product VALUES ('0003', '运动T恤', '衣服',

shop(# 4000, 2800, NULL);

INSERT 0 1

shop=# INSERT INTO Product VALUES ('0004', '菜刀', '厨房用具',

shop(# 3000, 2800, '2009-09-20');

INSERT 0 1

shop=# INSERT INTO Product VALUES ('0005', '高压锅', '厨房用具',

shop(# 6800, 5000, '2009-01-15');

INSERT 0 1

shop=# INSERT INTO Product VALUES ('0006', '叉子', '厨房用具',

shop(# 500, NULL, '2009-09-20');

INSERT 0 1

shop=# INSERT INTO Product VALUES ('0007', '擦菜板', '厨房用具',

shop(# 880, 790, '2008-04-28');

INSERT 0 1

shop=# INSERT INTO Product VALUES ('0008', '圆珠笔', '办公用品',

shop(# 100, NULL,'2009-11-11');

INSERT 0 1

然后输入

shop=# COMMIT;(确定插入行的意思)



在MySQL中时,需要将 BEGIN TRANSACTION; 改写成 START TRANSACTION;
在Oracle和DB2中运行时,无需使用BEGIN TRANSACTION;(请予以
删除)。


第一章练习题:

1.1编写一条CREATE TABLE语句,创建一个包含表1-A中所列各项的Addressbook(地址薄),

交将regist_no (注册编号)列设置为主键约束



答案:


编辑于 2022-02-23 16:42