【SQL】SQL介绍 <超详细系统,一篇即可理解SQL!>

  SQL   

目录

  SQL   

一、数据定义语言(DDL,Data Definition Language)

1. creat table

2. drop table

3. alter table

二、数据操作语言(DML,Data Manipulation Language)

三、数据操纵语言(Data Manipulation Language,DML)

4.select

单关系查询

多关系查询

四、完整性(Integrity)

五、嵌入式SQL

六、动态SQL


         SQL(Structured Query Language,结构化查询语言)是一种数据库查询语言和程序设计语言,主要用于管理数据库中的数据,如存取数据、查询数据、更新数据等。

SQL语言主要由以下几个部分组成:

一、数据定义语言(DDL,Data Definition Language)

        DDL主要用于定义数据库、表等结构,以及索引等数据库对象。通过DDL,可以构建数据库的骨架,为数据的存储做好准备。DDL包括以下几个主要语句:

  1. CREATE:
    1. 用于创建数据库、数据表、索引等。例如,使用CREATE DATABASE mydb1可以创建一个名为mydb1的数据库。
  2. ALTER:
    1. 用于修改数据库或表的结构。例如,使用ALTER TABLE mytable ADD COLUMN newcolumn VARCHAR(255)可以向表mytable中添加一个新的列newcolumn。
  3. DROP:
    1. 用于删除数据库、数据表或索引等。例如,使用DROP TABLE mytable可以删除表mytable。

实例

1. creat table

创建一个名为student的表格。

create table `student`( 
	`sno`  char(10),
	`sname`  char(10) NOT NULL DEFAULT '',
	`ssex`  char(2) NOT NULL DEFAULT '',
	 `sage`  int ,
	 `sdept`  char(20) NOT NULL DEFAULT '',
    primary key(`sno`));

        primary key(Aj1,Aj2,....,Ajm):主码声明表示 属性Aj1,Aj2,....,Ajm构成关系的主码,没有元组会在主码属性上取空值。

         foreign key(Ak1,Ak2,...Akn) reference s:  外码 声明表示关系中任意元组在属性(Ak1,Ak2,...Akn)上的取值必须对应于关系s中某元组在主码属性上的取值。

        not null: 一个属性上的非空约束表明在该属性上不允许存在空值;换句话说,此约束把空值排除在该属性域之外。

一个新创建的关系最初是空的。

2. drop table

        从数据库中删除关于被去掉关系中的所有信息。

        比delete from r 更强。

        后者保留关系,但删除r中的所有元组。前者不仅删除r中的所有元组,还删除r的模式。

3. alter table

        为已有关系添加属性。 

二、数据操作语言(DML,Data Manipulation Language)

DML主要用于对数据库中的数据进行添加、修改和删除操作。DML包括以下几个主要语句:

  1. INSERT:
    1. 用于向表中插入数据。例如,使用INSERT INTO mytable (column1, column2) VALUES (value1, value2)可以向表mytable的column1和column2列中插入值value1和value2。
  2. UPDATE:
    1. 用于修改表中的数据。例如,使用UPDATE mytable SET column1 = newvalue WHERE condition可以更新表mytable中满足条件condition的行的column1列的值。
  3. DELETE:
    1. 用于删除表中的数据。例如,使用DELETE FROM mytable WHERE condition可以删除表mytable中满足条件condition的行。

三、数据操纵语言(Data Manipulation Language,DML)

  1. INSERT:
    1. 用于向表中插入新的数据行。例如,INSERT INTO mytable (column1, column2) VALUES (value1, value2)表示向表mytable的column1和column2列中插入值value1和value2。
  2. UPDATE:
    1. 用于修改表中已存在的数据行。例如,UPDATE mytable SET column1 = newvalue WHERE condition表示更新表mytable中满足条件condition的行的column1列的值。
  3. DELETE:
    1. 用于删除表中已存在的数据行。例如,DELETE FROM mytable WHERE condition表示删除表mytable中满足条件condition的行。
  4. SELECT:
    1. 用于从数据库中查询数据。SELECT语句可以包含各种子句和条件,以指定要查询的数据和排序方式等。例如,SELECT column1, column2 FROM mytable WHERE condition ORDER BY column1表示从表mytable中查询满足条件condition的行,并按照column1的值进行排序。

实例

4.select

查询的基本结构由三个子句构成:select,from和where。

单关系查询
select name
from instructor

distinct强行去除重复。

select distinct dept_name
from instructor

 select 子句还可带含有+ 、-、*、/运算符的算术表达式,运算对象可以是常数或元组的属性。

select ID,salary*1.1
from Instructor
多关系查询

把需要访问的关系都列在from子句中,通过笛卡尔积把关系中相互没有关联的元组组合在一起。

where子句中使用谓词限制笛卡尔积所创建的组合。

select name,course_id
from instructor,teaches
where instructor.ID=teaches.ID;

查询可以理解为:

1. 为from子句中列出的关系产生笛卡尔积。

2. 在步骤1的结果上应用where子句中指定的谓词。

3. 对于步骤2的结果中的每个元组,输出select子句中指定的属性(或表达式的结果)。 

 

四、完整性(Integrity)

        数据库完整性是指数据库中的数据在逻辑上的一致性、正确性、有效性和可靠性。它确保数据不会因为各种操作而变得不合理或失去意义。

五、嵌入式SQL

定义:

        嵌入式SQL是将SQL语句直接嵌入到宿主语言(如C、C++、Java等)代码中的一种方法。开发人员需要使用特定的语法和预处理器来将SQL语句与宿主语言代码集成在一起。

六、动态SQL

定义:

        动态SQL是一种在运行时构建和执行SQL语句的方法。开发人员需要使用字符串拼接或模板引擎等技术来动态生成SQL语句,然后这些语句可以在应用程序运行时传递给数据库服务器进行执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值