• PostgreSQL修炼之道笔记之准备篇(三)


    目录

    第三章 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 建表语句

    表是关系型数据库中最基本的对象,数据库中的表与实际生活中的二维表格很相似,有很多列也有很多行,每一列有一个名称,不同的列有不同的数据类型,比如,列可能是数字、文本字符串,也可能是日期类型。建表语句的一个简单语法如下:

    1. CREATETABLE table_name (
    2. co101_namme data_type,
    3. co102_namme data_type,
    4. co103_namme data_type,
    5. 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 如下:

    1. CREATETABLE score (
    2. student_name varchar (40 ),
    3. chinese_score int,
    4. math_score int,test_date date);


    如果按前面的安装步骤安装完了数据库,之后就可以使用psql工具连接到PostgreSQL数据库了,执行上面的建表语句,如下:

    1. osdba=# CREATE TABLE score (
    2. osdba(# student_name varchar (40),
    3. osdba(# chinese_score int,
    4. osdba(# math_score int,
    5. osdba(# test_date dateosdba(# );
    6. CREATE TABLE
    7. osdba=#

    在psql中,可使用ld显示数据库中有哪些表,如下:

    1. osdba=# ld
    2. List of relations
    3. Schema | Name |Type | owner
    4. --------+-----―-+------―+-------
    5. public | score | table | osdba( 1 row)

    这样就看到了我们建的表。
    使用“ld score”可以显示这张表的定义情况:

    1. osdba=# ld score
    2. Table "public.score"
    3. Column | Type | Modifiers
    4. student__name | character varying (40) |
    5. chinese_score | integer |
    6. math_score | integer |
    7. 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(213'李四');

    在插人数据时,也可以指定某些列不插人数据,这时这些列的数据会被置为空,如下:

    INSERT INTO student (no,student_name) VALUES(2'王二');

    如果在psql中执行了下面的语句,使用SELECT语句就可以查询出数据,查询的语句为:

    SELECT * FROM student;

    SELECT语句的具体用法会在后面的章节中介绍,现在只需要知道这么用就可以了。我们查看到的数据如下:

    1. osdba=# select * from student;
    2. no | student_name | age
    3. -———+-—------------+----
    4. | | 张三 | 14
    5. 2 | 李四 | 13
    6. 3 | 王二 |
    7. ( 3 rows)

    从上面可以看出,在插入数据时,没有提供的列数据会被置为NULL。

    3.3.2 更新语句

    假设要把student表中所有学生的年龄(age)更新为“15”,则更新语句如下:

    UPDATE student SET age = 15;

    从上面的语句可以看出,更新语句以“UPDATE”关键字开始,后面跟表名,然后是“SET”关键字,表示要设置的数据,再后面就是要设置的数据的表达式“age = 15”,设置数据的表达式也很简单,就是“列名=数据”的格式。
    实际执行的效果如下:

    1. osdba=# UPDATE student SET age = 15;
    2. UPDATE 3
    3. osdba=# select * from student;
    4. no | student _name | age
    5. -—―一+-—------------+-----
    6. 1 | 张三 | 15
    7. 2 | 李四 | 15
    8. 3 | 王二 | 15
    9. (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;
  • 相关阅读:
    Requests库
    【机器学习】机器学习:人工智能中实现自动化决策与精细优化的核心驱动力
    电力感知边缘计算网关产品设计方案-业务流程设计
    外卖APP开发价格
    【国产MCU】-CH32V307-通用定时器(GPTM)-编码模式与旋转编码器驱动
    配置一个Tomcat服务器中多个web项目的cookie共享
    Node.js开发、CommondJS 、ES-Module模块化设计
    当LCC画龙时,新老车企分别在想什么?
    2023-10-27 LeetCode每日一题(切割后面积最大的蛋糕)
    flutter arr 依赖
  • 原文地址:https://blog.csdn.net/Auspicious_air/article/details/126586995