PostgreSQL修炼之道之SQL语言入门(三)
目录
第三章 SQL语言入门(一)
3.1 SQL语句语法简介
3.1.1语句的分类
3.1.2 语法结构
3.2 DDL语句
3.2.2 删除表语句
3.3 DML语句
3.3.1 插入语句
3.3.2 更新语句
3.3.3 删除语句
第三章 SQL语言入门(一)
3.1 SQL语句语法简介
3.1.1语句的分类
SQL命令一般分为DQL、DML、DDL几类。
DQL:数据查询语句,基本就是SELECT查询命令,用于数据查询。
DML : Data Manipulation Language的简称,即数据操纵语言,主要用于插人、更新、删除数据,所以也分为INSERT、UPDATE、DELETE三种语句。
DDL : Data Definition Language 的缩写,即数据定义语言,主要用于创建、删除,以
及修改表、索引等数据库对象语言。
3.1.2 语法结构
每次执行的SQL可以由多条SQL命令组成。多条SQL命令之间由分号(“;”)分隔。每个SQL命令由一系列的记号组成,这些记号可以由关键字、标识符、双引号包围的标识符、常量、单引号包围的文本常量和特殊的字符等组成。在SQL命令里可以有注释,这些注释在PostgreSQL中等效于空白。
SQL命令并未严格地像计算机语言一样明确标识哪些是命令、哪些是操作数或参数。SQL的语法主要是让你比较直观地理解其意思。比如,查询一个表的数据,就是由“SELECT”+“要查询的各列”+“FROM表”这样的语法组成的。后面的几节会详细叙述sQL的用法。
3.2 DDL语句
3.2.1 建表语句
表是关系型数据库中最基本的对象,数据库中的表与实际生活中的二维表格很相似,有很多列也有很多行,每一列有一个名称,不同的列有不同的数据类型,比如,列可能是数字、文本字符串,也可能是日期类型。建表语句的一个简单语法如下:
CREATETABLE table_name (
co101_namme data_type,
co102_namme data_type,
co103_namme data_type,
co104_namme data_type,};
其中“CREATE”、“TABLE”为关键字,是不变的,从字面上也很好理解,表示创建表。"table_name”表示表名,“col01_name”、 “" col02_name”、" col03_name "、 " col04_name”分别表示列名。" data_type”表示数据类型,不同的数据库系统有不同的数据类型名称,即使是相同意思的整数类型,在不同的数据库系统中也有不同的类型名称。变长的字符串在大多数数据库中都可使用“varchar”类型,比如PostgreSQL、MySQL 和 Oracle数据库等。整形数据在PostgreSQL和 MySQL都可以使用“int”类型。日期类型的名称一般为“date”。例如,要创建一张分数表score,包括“学生名称( student_name)”、“语文成绩( chinese_score)”、“数学成绩(math_score)”、“考试日期(test_date)”四列,则创建这个表的SQL 如下:
CREATETABLE score (
student_name varchar (40 ),
chinese_score int,
math_score int,test_date date);
如果按前面的安装步骤安装完了数据库,之后就可以使用psql工具连接到PostgreSQL数据库了,执行上面的建表语句,如下:
osdba=# CREATE TABLE score (
osdba(# student_name varchar (40),
osdba(# chinese_score int,
osdba(# math_score int,
osdba(# test_date dateosdba(# );
CREATE TABLE
osdba=#
在psql中,可使用ld显示数据库中有哪些表,如下:
osdba=# ld
List of relations
Schema | Name |Type | owner
--------+-----―-+------―+-------
public | score | table | osdba( 1 row)
这样就看到了我们建的表。
使用“ld score”可以显示这张表的定义情况:
osdba=# ld score
Table "public.score"
Column | Type | Modifiers
student__name | character varying (40) |
chinese_score | integer |
math_score | integer |
test_date | date |
注意:显示列的类型“character varying(40)”实际上与“varchar(40)”的意思是完全一样的“int”与“integer”的意思也是一样的。
3.2.2 删除表语句
删除表的语法比较简单,如下:
DROP TABLE table_name;
其中“table_name”表示要删除的表名。假设要删除前面创建的表student,则可以使用下面的SQL:
DROP TABLE student;
3.3 DML语句
3.3.1 插入语句
可以使用下面的语句往前面创建的学生表(student)中插入数据:
INSERT INTO student VALUES(1,'张三',14) ;
由此可以看出,INSERT语句的语法为:以“INSERT INTO”关键字为首,后面跟表名,然后再跟“VALUES”关键字,最后是由小括号包围起来的以逗号分隔的各列数据,数据的顺序与表定义时表列的顺序是一样的。当然也可以在表名后指定要插入数据列的顺序,如下所示:
INSERT INTO student(no,age,student_name)VALUES(2,13,'李四');
在插人数据时,也可以指定某些列不插人数据,这时这些列的数据会被置为空,如下:
INSERT INTO student (no,student_name) VALUES(2,'王二');
如果在psql中执行了下面的语句,使用SELECT语句就可以查询出数据,查询的语句为:
SELECT * FROM student;
SELECT语句的具体用法会在后面的章节中介绍,现在只需要知道这么用就可以了。我们查看到的数据如下:
osdba=# select * from student;
no | student_name | age
-———+-—------------+----
| | 张三 | 14
2 | 李四 | 13
3 | 王二 |
( 3 rows)
从上面可以看出,在插入数据时,没有提供的列数据会被置为NULL。
3.3.2 更新语句
假设要把student表中所有学生的年龄(age)更新为“15”,则更新语句如下:
UPDATE student SET age = 15;
从上面的语句可以看出,更新语句以“UPDATE”关键字开始,后面跟表名,然后是“SET”关键字,表示要设置的数据,再后面就是要设置的数据的表达式“age = 15”,设置数据的表达式也很简单,就是“列名=数据”的格式。
实际执行的效果如下:
osdba=# UPDATE student SET age = 15;
UPDATE 3
osdba=# select * from student;
no | student _name | age
-—―一+-—------------+-----
1 | 张三 | 15
2 | 李四 | 15
3 | 王二 | 15
(3 rows)
在更新数据时,还可以指定过滤表达式“WHERE”,从而指定更新哪条数据或哪些数据,比如,要更新学号(no)为3的学生年龄为14岁,则使用下面的语句:
UPDATE student SET age =14 WHERE no = 3;
在SET子句中,还可以同时更新多个列的值,如下所示:
UPDATE student SET age =13,student_name='王明充’ WHERE no = 3;
3.3.3 删除语句
如果想删除学号(no)为3的记录,语句如下:
DELETE FROM student WHERE no = 3;
由此可见删除语句比较简单,以“DELETE FROM”开始,后面跟表名,然后加“WHERE"子句用于指定要删除的记录。
当然也可以没有“WHERE”子句,这表明要删除整个表的数据,删除表student 中所有数据的语句如下:
DELETE FROM student;
PostgreSQL修炼之道之SQL语言入门(三)相关推荐
- PostgreSQL修炼之道之SQL语言入门(四)
目录 第三章 SQL语言入门(二) 3.4 查询语句 3.4.1 单表查询语句 3.4.2 过滤条件的查询 3.5 其他SQL语句 3.5.1 INSERT INTO... SELECT语句 3.5. ...
- PostgreSQL修炼之道:从小工到专家
数据库技术丛书 PostgreSQL修炼之道:从小工到专家 唐成著 图书在版编目(CIP)数据 PostgreSQL修炼之道:从小工到专家/唐成著. -北京:机械工业出版社,2015.4 (数据库技术 ...
- PostgreSQL修炼之道:从小工到专家. 导读
数据库技术丛书 PostgreSQL修炼之道:从小工到专家 为什么要写这本书 PostgreSQL数据库是目前功能最强大的开源数据库,它基本包含了其他所有商业或开源的数据库中能找到的功能,甚至还包 ...
- postgresql修炼之道_PostgreSQL内核开发学习资料
我自2011年便开始进行PostgreSQL内核开发岗,在公司内也算是时间比较久了,带了一些新人入门,总结了一些不同阶段需要学习的资料. 我将PostgreSQL内核知识划分为3层: 数据库基础对象, ...
- postgresql修炼之道_PostgreSQL的TOAST技术
本文参考: PostgreSQL TOAST 技术理解 <PostgreSQL修炼之道> 一.TOAST是什么? TOAST是"The Oversized-Attribute S ...
- 荐书送书丨《PostgreSQL实战》、《PostgreSQL修炼之道:从小工到专家(第2版)》...
墨墨导读:最近,相信大家都注意到数据库行业大事记,PostgreSQL在2020年的DB-Engines 排名中获得了比其他360个受监控数据库系统更多的受欢迎程度,获得"2020年度数据库 ...
- 视频教程-Python编程的术与道:Python语言入门-Python
Python编程的术与道:Python语言入门 大学教授,美国归国博士.博士生导师:人工智能公司专家顾问:长期从事人工智能.物联网.大数据研究:已发表学术论文100多篇,授权发明专利10多项 白勇 ¥ ...
- Oracle PL/SQL语言入门
一.背景介绍 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方 ...
- PostgreSQL修炼之道之psql工具的使用介绍(五)
目录 第四章 psql工具的使用介绍(一) 4.1 psql介绍 4.2 pslq的简单使用 4.3 psql的常用命令 4.3.1 \d命令 4.3.2 指定字符集编译的命令 4.3.3 pset命 ...
最新文章
- 7-2一元多项式的乘法与加法运算
- 【编程通识】正则表达式
- at java.net.urlclassloader.findclass_如何使用URLClassLoader加载* .class文件?
- print函数python_带有结束参数的Python print()函数
- 精品教程--Android组件详解
- Mysql 5.5 编译参数
- 读者投稿 | 写Go满一年啦,来聊聊进程、线程与协程
- python filter
- Visio画图删去四周白边
- echarts 生成 迁徙图_利用百度Echarts开发人口迁徙图(产品流向图)
- access 2016 迁移到 mysql_将ACCESS数据库迁移到SQLSERVER数据库两种方法(图文详解)
- python清空文本框内容_js清空文本框
- tf SavedModel 保存模型的新方式
- 预测科技未来发展趋势的10个定律
- 【EMNLP2020】忒修斯之船启发下的知识蒸馏新思路 - 微软研究院
- xtrareport 修改行颜色
- docker安全配置(cpu、分区的大小设定和权限设定)
- Flask教程(二十)flask-apscheduler
- 微信小程序流量主广告怎么加圆角
- gif制作软件哪个好用?建议收藏这些软件
热门文章
- Gvim使用心得--设置篇
- 制作SpringBoot启动图案
- UVA - 11624 Fire! 两次BFS
- Illustrator 教程:如何在 Illustrator 中添加图像?
- 最强元宇宙项目MetaMobile即将在OpenSea推出纪念版NFT
- 花了几天时间了解了下Xamarin
- 好书推荐--Windows 7实用宝典
- python底层网络交互模块_Python 利用三个简易模块熟悉前后端交互流程
- 2-12 2-13
- FLASH网络游戏基本知识-flash和后台的简单socket链接2009-10-08 11:43FLASH网络游戏主要解决的是和服务器的数据传输问题