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,它创建了联合。

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

      

         

 

 

   

 

 

 

   

 

 

 

 

     

     

     

    

          

目录
相关文章
|
11天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
39 11
|
25天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
24天前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
1月前
|
SQL 关系型数据库 MySQL
体验使用DAS实现数据库SQL优化,完成任务可得羊羔绒加厚坐垫!
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。完成任务,即可领取羊羔绒加厚坐垫,限量500个,先到先得。
159 12
|
1月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
1月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
1月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
7天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
27 3
|
7天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
31 3