SQL 语言对数据库的操作(一)

简介:         一,对数据库及表的操作        1,创建数据库         CREATE DATABASE +数据库名        2,删除数据库        DROP DATABASE+数据库名称        3,创建表        CREATE TABLE name_of_table        (            name_of_column   column_datatype        )        4,更该现有表         更改一个现有表的关键字是ALTER TALBLE,这个语句允许添加并删除一个现有表中的列。

        一,对数据库及表的操作

       1,创建数据库

        CREATE DATABASE +数据库名

       2,删除数据库

       DROP DATABASE+数据库名称

       3,创建表

       CREATE TABLE name_of_table

       (

           name_of_column   column_datatype

       )

       4,更该现有表

        更改一个现有表的关键字是ALTER TALBLE,这个语句允许添加并删除一个现有表中的列。但是在许多ANSI SQL语言中,ALTER TABLE 语句不能改变一个现有列的数据类型,然而许多RDBMS(RelationalDatabase Management System)扩展了ALTER TABLE语句,并包含了他们自己的改变列定义方式的一样。

      添加新列 的语法:

       ALTER TABLE  name_of _talbe

           ADD name_of_field  data_type

    ALTER TABLE 是告诉数据库系统做些什么的关键字。在ALTER TABLE 语句之后,给出需要变更的表的名称,最后,上面的语法告诉数据库系统需要添加一个什么样的列,然后提供该列的名称和他的数据类型。

     5,删除现有列

     为了删除现有列,需要告诉RDBMS,要更改删除的列的表是哪个,要删除表中的那一列。

    语法:

             ALTER TABLE name_of_table

                 DROP COLUMN name_of_field

   二,对列的操作

      1,插入数据

      INSERT INTO 语句使得新数据插入到数据库中变得非常容易。需要说明的是,想那个表中插入数据,向那一列中插入数据,以及插入什么数据。

    基本语法:

                   INSERT INTO table_name  (colunm_names)  VALUE (data_value)

     2,更新数据

     与插入数据一样,更新数据时也要明确要更新哪一个数据,基本语法:

         UPDATE table_name

         SET column_name=value

         WHERE condition

     3,删除数据

      (1)无条件的简单用法:如果想从表中删除所有的记录,则可以不必用到WHERE子句来添加条件约束。语法如下:   DELETE FROM table_name

    (2)有约束的用法:  DELETE FROM talbe_name WHERE conditon

      在使用where子句添加约束后,可以删除特定的记录。

   三,从数据库中提取信息

      1,SELECT语句

       对SELECT语句的最早接触还是在红皮书的五个例子中,当时看着注释,只知道是根据条件从数据库中选择符合条件的数据。对它的用法不是很懂。现在才有了一点认识。

       (1)最简单的SELECT 语句

          最简单的SELECT语句就是说明从哪个表中获得哪些列的数据,语句格式:

           SELECT colunm1,column2,column3,colunm4,.....from table-name

          当一个表中有很多列但是我们又懒得列举那些列名时,我们可以采用这个格式:

           SELECT * FROM table-name

      2,仅返回不同的行

      有了最基本的SELECT语句,我们就可以在这个节点上向SELECT语句里面加入东西,来使SELECT语句更加精准的选择出我们想要得到的结果。

      如果想知道一个记录中的唯一值,我们可以在语句中加入DISTINCT这一关键字。

      语法:SELECT DISTINCT colunm_name FROM table_name

      3,使用别名

      为什么要使用别名呢?比如像我们班有很多人,而我的记性又很差,2年60几个人还没记住,但是当提到一个人时,我又会很快的想起他来,因为我给他们每个人都起了一个非常容易想起来的名字,比如:冬瓜。我记忆他们时,使用的就是别名。

    同样,在数据库中,我们可以给每一列都起一个别名。

     例如:SELECT LastName AS Surname FROM Memberdetils.

     如上例所示,我们可以加入AS来实现命名别名。

     4,利用WHERE 子句,逻辑运算符,算数运算符,过滤结果

      利用WHERE 子句和各类运算符,可以形成条件,用来筛选出结果。

     5,利用ORDER BY 排序结果

    在完成筛选结果后,我们大多数情况下要显示我们的数据,这是,我们可以利用ORDER BY语句,实现对结果的有序显示。

    ORDER BY 语句位于SELECT语句的末尾,它允许指定一个列或者是多个列,这些列确定了结果的顺序,以及顺序是升序还是降序。默认时,ORDER BY语句是升序显示。

如果要指定按照降序显示,则可以加入DESC关键字。

   如:SELECT YearReleased

           FROM Films

           ORDER BY  YearReleased DESC

     6,连接列

     在Oracle和IBM DB2中,存在两种串连文本数据基于文本的列的方式。第一种方式是使用串连运算符,在这两个系统中是使用两条(||)字符。第二种方式是使用CONCAT()函数。

     Oracle和DB2都支持第二种串连方式:CONCAT()函数。需要向这个函数传递两个参数,参数可以是列或者文本字符串,该函数将返回它们的连接结果。

     MySql使用函数进行串连。第一个函数是CONCAT(),,它的工作方式与Oracle和DB2中所使用的CONCAT()函数相似。但是,与这两个数据库系统不同的是,它可以使用两个或更多个参数。因此,如果想连接3个列,则可以编写如下所示的查询:

     SELECT CONCAT(memberid,firstname,lastname) FROM memberdetails,除了连接列之外,CONCAT()也可以连接字符串字面量。如下:SELECT CONCAT(‘ the member is called',firstname,' ',lastname) as 'member name'  FROM memberdetails.

     第二种连接方式是使用MYSQL所提供的CONCAT_WS()函数,该函数在所串连的每一列或字面量之间添加一个分隔符。如果想在每一列之间添加一个空格,则可以编写类似于如下所示的查询:SELECT CONCAT_WS(' ',' THE MEMBER IS CALLED',firstname,lastname) AS 'MEMBER NAME'

     7,从多个表中选择数据,创建联合

     内部联合组合两个表,并基于两个表中的列链接或联合它们。内部联合允许指定那些列组成联合,并基于什么条件。为了创建一个内部联合,必须指定被联合的两个表,以及联合基于的一个或多个列。其语法格式如下:

table1 INNER JOIN table2 on column_from_table1=column_from_table2

      使用INNER JOIN 或者JOIN创建表之间的联合,实际上不是联合表的仅有方式。但是应当使用它们,因为INNER JOIN 和JOIN能够显式的声明联合哪些表,这使得SQL语句具有更好的可读性。创建内部联合的另一种方式是,简单的在WHERE子句中指定链接。重写上面的SQL语句,如下:

           SELECT Filmname,yearreleased,rating

           FROM films,category

          WHERE films.categoryid=category.category AND category.categoryid=9

     WHERE子句声明了films.categoryid应当等于category.categoryid,它创建了联合。

     到目前为止,已使用了等号运算符联合表,它也被称为等值联合。等值联合是最常用的联合类型,但使用任何其它运算符也是可以的。

      

         

 

 

   

 

 

 

   

 

 

 

 

     

     

     

    

          

目录
相关文章
|
7天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
47 10
|
7天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
64 6
|
2天前
|
SQL JavaScript API
❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)
【4月更文挑战第4天】❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)在Node.js中实现删除本地数据库记录的操作。首先尝试通过SQL删除ID为8的用户,然后编写`app.delete`路由处理程序,从请求体获取ID并执行删除。。最终成功删除用户并展示了数据库的更新结果。下一节将优化增删改查功能。
15 1
|
4天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
4天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
32 3
|
7天前
|
SQL 监控 数据库
数据库管理与电脑监控软件:SQL代码优化与实践
本文探讨了如何优化数据库管理和使用电脑监控软件以提升效率。通过SQL代码优化,如使用索引和调整查询语句,能有效提高数据库性能。同时,合理设计数据库结构,如数据表划分和规范化,也能增强管理效率。此外,利用Python脚本自动化收集系统性能数据,并实时提交至网站,可实现对电脑监控的实时性和有效性。这些方法能提升信息系统稳定性和可靠性,满足用户需求。
29 0
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
95 0
|
17天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
15 0
|
8天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例