必杀技———SQL基础整理系列(一)

  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查询语句,敬请关注!

时间: 2024-10-11 11:33:21

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

SQL基础整理

SQL 是用于访问和处理数据库的标准的计算机语言. 什么是 SQL? SQL 指结构化查询语言 SQL 使我们有能力访问数据库 SQL 是一种 ANSI 的标准计算机语言 编者注:ANSI,美国国家标准化组织  SQL 能做什么? SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 S

11、SQL基础整理(变量)

变量 定义变量:declare  @hello  varchar(20) 赋值:set  @hello = ‘你好’ select(结果框显示)/print(消息框显示) @hello *三行必须同时运行 declare @hello varchar(20) set @hello = '销售部' select *from bumen where name = @hello 当放到select 和from中间时,可以当做赋值语句,不执行查询功能(赋值为查询到的最后一行数据) declare @he

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

字符串函数 ASCII 返回字符串首字母的ascii编码 select ASCII('name') select ASCII(name) from xuesheng select *from xuesheng where ASCII(name)>=200 CHAR --将ascii代码转换成对应的字符 select CHAR(13)--回车键 CHARINDEX 在一个表达式中搜索另一个表达式,并返回其起始位置(如果没找到,返回’0’) select CHARINDEX('efg','abcde

8、SQL基础整理(约束)

约束 主键约束 防止在新增数据时出错,有约束性,起唯一标志的作用,在新增条目的时候防止不慎添加重复内容(不允许有null值) 1.  右键—设计—设置主键 2.在创建表格时设置 code int primary key, 3.可以设置自增长的功能 code int primary key identity(1,1) 4.在自增长的环境下删掉其中一行,其他行不受影响 5.可以加快查询的速度,减慢新增和修改的速度 外键约束 设计—关系—添加—表和列规范—需要有联系的两个列 主键需要先设置,然后在主键

SQL脚本整理系列一 表分区

表分区的目的: 1.把历史数据放到另外一个表里面 可以提高查询效率 当然如果经常查询历史数据和新数据的合并结果集这样做就大大的不好了 2.通过把一个表放到不同的文件,不同的文件再存储到不同的磁盘列阵中,可以提高IO速度   CPU比硬盘快多了 3.提高可用性,一个磁盘坏了,另外一个磁盘上面的文件还能用 这个对我意义不大 4.便于备份 只需要做一个分区的备份就可以了,比如云服务端,数据量比较大的就4个表单,把这四个表放在一个文件里面这样每天备份基本不花什么时间,还原也比较方便,这4个表的数据丢了意

15、SQL基础整理(视图)

视图 即虚拟表 系统-右键-新建视图 编辑前200行 select *from studentscore 代码创建法: create view studentscore as select student.sno,sname,ssex,sbirthday,class,cno,degree from student join score on student.Sno=score.sno 删除视图: drop view studentscore 修改视图: alter view cts as sel

7、SQL基础整理(子查询)

子查询 (用来进行两表等之间的查询) ***括号里面的查询只能显示一个列的信息 select *from haha where age in ( select MAX(age) from haha where bumen = '销售部' )and bumen in ( select bumen from haha group by bumen having COUNT(*)>5 ) --练习:按年龄从小到大排序后第..人的信息 select top 3 *from haha where code

6、SQL基础整理(日期时间数据类型,转换函数)

日期时间数据类型 *系统常量: @@DATEFIRST(返回当前时间) DATEADD 增加时间 语法:DATEADD (datepart , number , date ) select DATEADD(YEAR,2,'2013-11-2') DATEDIFF 两个日期之间的距离 select DATEDIFF(YEAR,'2011-7-18','2014-11-2') DATENAME 返回某个时间值里面想要得到某块类型的数 select DATENAME(YEAR,'2011-7-8')

12、SQL基础整理(运算符与优先级)

运算符 + - * / %(取余),赋值运算符 = declare @jia int set @jia = 1+1 print @jia declare @jia int set @jia = 10%3 print @jia 比较运算符> ,<, >=, <=,<>(不等于),!=, !<, !>   ?逻辑运算符and, or, all(条件全部满足), any(任何一个条件满足), between(范围), in(任何一个条件满足), like, not