必杀技———SQL基础整理系列(一)
SQL(Structured Query Language)——结构化查询语言
SQL语言的组成部分
- 数据定义语言 (DDL:Data Definition Language)
负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER、DROP三个语法所组成,操作的对象包括关系表、视图、索引等。
- 数据操纵语言(DML: Data Manipulation Language)
其语句包括动词SELECT(查询)、INSERT(添加)、UPDATE(修改)、DELETE(删除)表中的行。
- 数据控制语言(DCL: Data Control Language)
其中包含可对数据访问权进行控制的指令,由 GRANT 和 REVOKE 两个指令组成。
- 事务处理语言(TPL: Transaction Processing Language)
它的语句能确保被DML语句影响的表的所有行及时得以更新。包括BEGIN TRANSACTION, COMMIT 和 ROLLBACK。
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基础整理系列(一)的更多相关文章
- 11、SQL基础整理(变量)
变量 定义变量:declare @hello varchar(20) 赋值:set @hello = ‘你好’ select(结果框显示)/print(消息框显示) @hello *三行必须同时 ...
- 8、SQL基础整理(约束)
约束 主键约束 防止在新增数据时出错,有约束性,起唯一标志的作用,在新增条目的时候防止不慎添加重复内容(不允许有null值) 1. 右键—设计—设置主键 2.在创建表格时设置 code int pr ...
- 5、SQL基础整理(字符串函数)
字符串函数 ASCII 返回字符串首字母的ascii编码 select ASCII('name') select ASCII(name) from xuesheng select *from xues ...
- SQL脚本整理系列 三
触发器 SQL 2008 怎么实现删除学生表里面的一条记录,成绩表里面关于这个学生的记录也同时删掉,谢求具体代码 --创建表 DROP TABLE tstudent GO CREATE TABLE t ...
- SQL脚本整理系列一 分隔函数
原来效果: fName Scroe 王某某 ,, 李某某 , 王某某 李某某 李某某 ,, 王某某 执行后效果: name score 李某某 李某某 李某某 王某某 王某某 王某某 王某某 王某某 ...
- 17、SQL基础整理(事务)
事务 事务==流程控制 确保流程只能成功或者失败,若出现错误会自动回到原点 例: begin tran insert into student values('111','王五','男','1999- ...
- 16、SQL基础整理(触发器.方便备份)
触发器(方便备份) 本质上还是一个存储过程,只不过不是通过exec来调用执行,而是通过增删改数据库的操作来执行(可以操作视图) 全部禁用触发器 alter table teacher disable ...
- 15、SQL基础整理(视图)
视图 即虚拟表 系统-右键-新建视图 编辑前200行 select *from studentscore 代码创建法: create view studentscore as select stude ...
- 14、SQL基础整理(存储过程)
存储过程procedure(proc) 数据库—可编程性—存储过程 新建存储过程: create proc firstproc as select *from fenshu go 执行存储过程: 存储 ...
随机推荐
- .Net开源工作流Roadflow的使用与集成
序言 最近公司要整理公司内部oa系统,需要使用到工作流,所以就开始了开源工作流挑选,使用,到集成到公司内部系统的工作. 首先在网上搜了文档,自己也有补充,整理啦国内几款工作流的比较,由于没有个个击破式 ...
- 设计模式(一):“穿越火线”中的“策略模式”(Strategy Pattern)
在前段时间呢陆陆续续的更新了一系列关于重构的文章.在重构我们既有的代码时,往往会用到设计模式.在之前重构系列的博客中,我们在重构时用到了“工厂模式”.“策略模式”.“状态模式”等.当然在重构时,有的地 ...
- 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)
说到PopupWindow,我个人感觉是又爱又恨,没有深入使用之前总觉得这个东西应该很简单,很好用,但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题,但是即便是人家的api有问题, ...
- 重定向Http status code 303 和 302
http 302 http 303 Http 302 302是一个普通的重定向代码.直观的看来是,请求者(浏览器或者模拟http请求)发起一个请求,然后服务端重定向到另一个地址.而事实上,服务端仅仅是 ...
- es6学习笔记一数组(上)
最近公司没什么事情,我们老大让我看看es6,小颖就练习了下数组的各个方法,今天先给大家分享一部分.嘻嘻,希望对大家有所帮助. every方法: 概述: every() 方法测试数组的所有元素是否 ...
- SSH(Struts2+Spring+Hibernate)框架搭建流程
添加支持 我先介绍的是MyEclipse9的自带框架支持搭建过程:(完全的步骤 傻瓜式的学习..~) 首先我们来搭建一个Web项目: 一.Hibernate(数据层)的搭建: 相关描述 Ⅰ.服务器与数 ...
- linux终端指令总结
一直没机会进行linux指令的系统学习,但是工作中总能遇到通过指令操作文件或数据库的情况,总不能一味地依赖后端开发者的帮忙.上任领导说过,要是在同一个地方跌倒,那么你就是傻子.我可不想成为傻子,so, ...
- 游戏启示录 关于Update的相关问题
游戏启示录 关于Update的相关问题 这里说的Update是指的游戏的主循环.一般情况下.为了程序的方便控制我们一般只会有一个主循环.所有的游戏逻辑都会在这一个循环中完成.(额,其实这么做有点浪费. ...
- DataTable的orderby有关问题
在网上找了一个在后台重新对DataTable排序的方法(之所以不在数据库是因为我生成的是报表,写了存储过程用的表变量,order by也要用变量,死活拼不起来,sql能力没过关,动态sql也试了) s ...
- Day01 login module
知识点:模块导入 变量赋值的两种形式 格式化输出 for循环 if...else 嵌套 #!C:\Program Files\Python35/bin # -*- conding:utf-8 ...