SQL(Structured Query Language)——结构化查询语言

  SQL语言的组成部分

  • 数据定义语言 (DDL:Data Definition Language)

  负责数据结构定义与数据库对象定义的语言,由CREATEALTERDROP三个语法所组成,操作的对象包括关系表、视图、索引等。

  • 数据操纵语言(DML: Data Manipulation Language)

  其语句包括动词SELECT查询)、INSERT添加)、UPDATE修改)、DELETE删除)表中的行。

  • 数据控制语言(DCL: Data Control Language)

  其中包含可对数据访问权进行控制的指令,由 GRANT REVOKE 两个指令组成。

  • 事务处理语言(TPL: Transaction Processing Language)

  它的语句能确保被DML语句影响的表的所有行及时得以更新。包括BEGIN TRANSACTION, COMMITROLLBACK


  SQL数据基本定义功能——定义模式

  CREATE SCHEMA <模式名> AUTHORIZATION <用户名>

  例子:定义一个学生-课程模式

  Create schema "S-T" authorization Zhang

  不指明模式名则隐含为 模式名为用户名

   Create schema authorization Zhang

CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<表定义子句> | <视图定义子句> | <授权定义子句>]

  例子:

Create schema test authorization Zhang
create table Tab1(A1 int,
A2 char(10),
A3 char(20))

   SQL数据基本定义功能——删除模式

   DROP SCHEMA <模式名> <CASCADE|RESTRICT>

  例子:

   Drop schema Zhang cascade


  最最常用的在这里啦!!!

  SQL数据基本定义功能——创建表

CREATE TABLE 表名
(<列名1> 数据类型 [列级约束],
[<列名2> 数据类型 [列级约束],]
……,
[表级约束])

  例子:

  • 创建表Students

  关系模式 Students ( Sno, Sname, Ssex, Sage, Sdept )

Create table Students
(Sno char(11),
Sname char(20),
Ssex char(2),
Sage int,
Sdept char(20),
primary key(Sno))——————————————————这种是表级约束
Create table Students
(Sno char(11)primary key, ——————————————————————这是列级约束
Sname char(20),
Ssex char(2),
Sage int,
Sdept char(20))
  • 创建表Courses

  关系模式 Courses ( Cno, Cname, Cpno, Ccredit )

Create table Courses
(Cno char(4),
Cname char(40),
Cpno char(4),
Ccredit int,
primary key (Cno),——————————————————————————————这是表级约束
Foreign Key (Cpno) REFERENCES Courses(Cno))—————这是定义外键
  • 创建表SC  

  关系模式 SC ( Sno, Cno, Grade )

Create table SC
( Sno char(9),
Cno char(4),
Grade int,
Primary key(Sno,Cno),
foreign key (Sno) references Students (Sno),
foreign key (Cno) references Courses (Cno))

  SQL数据基本定义功能——数据类型

char(n) 固定长度为n的字符串
varchar(n) 可变长度为n的字符串
smallint 短整数
int 长整数
numberic(p,s) 定点数。由p位数字组成,包括s位小数
float(n) 精度至少为n位数字的浮点数
real 取决于机器精度的浮点数
double precision 取决于机器精度的双精度浮点数
date 日期,格式为年、月、日,YYYY-MM-DD
time 时间,格式为时、分、秒,HH-MM-SS

  

  

  SQL数据基本定义功能——表的修改

  添加列|完整性约束:

ALTER TABLE <表名> ADD <列名> <数据类型> [完整性约束]

    删除列|完整性约束:

ALTER TABLE <表名> DROP <列名> <数据类型> [完整性约束]

  修改列:

   ALTER TABLE <表名> ALTER COLUMN <列名> <数据类型>   

  例子:

  在学生表中添加字段Sclass,字符类型,长度20

   Alter table Students add Sclass char(20)

  将年龄的数字类型由字符型改为整型

   Alter table Students alter coiumn Sage int

  增加课程名称必须取唯一值的约束条件

   Alter table Courses add unique (Cname)

  SQL数据基本定义功能——表的删除

   Drop table <表名> [restrict | cascade]

  Restrict: (严格删除)表删除有限制条件,不能被其他表的约束所引用,不能有视图、触发器、存储过程或函数

  Cascade: (级联删除)把一个基本表的定义连同表上的所有记录、索引以及由此基本表导出的所有视图都删除,并释放相应的存储空间

  例子:

   Drop table Students cascade


  总是晚上才有时间码字,不积跬步,无以至千里,基础还是很重要的,下一篇开始介绍SQL查询语句,敬请关注!

必杀技———SQL基础整理系列(一)的更多相关文章

  1. 11、SQL基础整理(变量)

    变量 定义变量:declare  @hello  varchar(20) 赋值:set  @hello = ‘你好’ select(结果框显示)/print(消息框显示) @hello *三行必须同时 ...

  2. 8、SQL基础整理(约束)

    约束 主键约束 防止在新增数据时出错,有约束性,起唯一标志的作用,在新增条目的时候防止不慎添加重复内容(不允许有null值) 1.  右键—设计—设置主键 2.在创建表格时设置 code int pr ...

  3. 5、SQL基础整理(字符串函数)

    字符串函数 ASCII 返回字符串首字母的ascii编码 select ASCII('name') select ASCII(name) from xuesheng select *from xues ...

  4. SQL脚本整理系列 三

    触发器 SQL 2008 怎么实现删除学生表里面的一条记录,成绩表里面关于这个学生的记录也同时删掉,谢求具体代码 --创建表 DROP TABLE tstudent GO CREATE TABLE t ...

  5. SQL脚本整理系列一 分隔函数

    原来效果: fName Scroe 王某某 ,, 李某某 , 王某某 李某某 李某某 ,, 王某某 执行后效果: name score 李某某 李某某 李某某 王某某 王某某 王某某 王某某 王某某 ...

  6. 17、SQL基础整理(事务)

    事务 事务==流程控制 确保流程只能成功或者失败,若出现错误会自动回到原点 例: begin tran insert into student values('111','王五','男','1999- ...

  7. 16、SQL基础整理(触发器.方便备份)

    触发器(方便备份) 本质上还是一个存储过程,只不过不是通过exec来调用执行,而是通过增删改数据库的操作来执行(可以操作视图) 全部禁用触发器 alter table teacher disable ...

  8. 15、SQL基础整理(视图)

    视图 即虚拟表 系统-右键-新建视图 编辑前200行 select *from studentscore 代码创建法: create view studentscore as select stude ...

  9. 14、SQL基础整理(存储过程)

    存储过程procedure(proc) 数据库—可编程性—存储过程 新建存储过程: create proc firstproc as select *from fenshu go 执行存储过程: 存储 ...

随机推荐

  1. .Net开源工作流Roadflow的使用与集成

    序言 最近公司要整理公司内部oa系统,需要使用到工作流,所以就开始了开源工作流挑选,使用,到集成到公司内部系统的工作. 首先在网上搜了文档,自己也有补充,整理啦国内几款工作流的比较,由于没有个个击破式 ...

  2. 设计模式(一):“穿越火线”中的“策略模式”(Strategy Pattern)

    在前段时间呢陆陆续续的更新了一系列关于重构的文章.在重构我们既有的代码时,往往会用到设计模式.在之前重构系列的博客中,我们在重构时用到了“工厂模式”.“策略模式”.“状态模式”等.当然在重构时,有的地 ...

  3. 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)

    说到PopupWindow,我个人感觉是又爱又恨,没有深入使用之前总觉得这个东西应该很简单,很好用,但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题,但是即便是人家的api有问题, ...

  4. 重定向Http status code 303 和 302

    http 302 http 303 Http 302 302是一个普通的重定向代码.直观的看来是,请求者(浏览器或者模拟http请求)发起一个请求,然后服务端重定向到另一个地址.而事实上,服务端仅仅是 ...

  5. es6学习笔记一数组(上)

    最近公司没什么事情,我们老大让我看看es6,小颖就练习了下数组的各个方法,今天先给大家分享一部分.嘻嘻,希望对大家有所帮助. every方法: 概述:    every() 方法测试数组的所有元素是否 ...

  6. SSH(Struts2+Spring+Hibernate)框架搭建流程

    添加支持 我先介绍的是MyEclipse9的自带框架支持搭建过程:(完全的步骤 傻瓜式的学习..~) 首先我们来搭建一个Web项目: 一.Hibernate(数据层)的搭建: 相关描述 Ⅰ.服务器与数 ...

  7. linux终端指令总结

    一直没机会进行linux指令的系统学习,但是工作中总能遇到通过指令操作文件或数据库的情况,总不能一味地依赖后端开发者的帮忙.上任领导说过,要是在同一个地方跌倒,那么你就是傻子.我可不想成为傻子,so, ...

  8. 游戏启示录 关于Update的相关问题

    游戏启示录 关于Update的相关问题 这里说的Update是指的游戏的主循环.一般情况下.为了程序的方便控制我们一般只会有一个主循环.所有的游戏逻辑都会在这一个循环中完成.(额,其实这么做有点浪费. ...

  9. DataTable的orderby有关问题

    在网上找了一个在后台重新对DataTable排序的方法(之所以不在数据库是因为我生成的是报表,写了存储过程用的表变量,order by也要用变量,死活拼不起来,sql能力没过关,动态sql也试了) s ...

  10. Day01 login module

    知识点:模块导入  变量赋值的两种形式  格式化输出  for循环  if...else 嵌套 #!C:\Program Files\Python35/bin # -*- conding:utf-8 ...