中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

SQL简单基础(1)

 山东大明消毒科技有限公司

下载贤集网APP入驻自媒体

对于SQL不再做过多的介绍,毕竟作为一个初学者对于SQL(结构化查询语言)也好,关系型数据库也好理解都并不是很深,只知道一些基本的概念。

  本系列旨在介绍一些简单开发中用得上的SQL语句以及其使用方法,数据库广泛地使用在各种各样的应用开发中,数据库设计、原理和SQL语言也成了开发者们不得不掌握的一门技能之一,一下便开始简单介绍SQL语言的使用方法。

数据库的大小写:我上网找了很多资料,许多人说数据库是不区分大小写的,也有的人说目前常用的Oracle数据库和mysql数据库在运行时会自动将语句转变为大写形式执行,如果在大数据的应用领域上这一层转换会影响性能,所以书写SQL查询语句时应该养成习惯:关键字尽量使用大写,属性的名称可以使用小写。(博主使用SQL_server学习时发现SQL_server的关键字和属性名称是不区分大小写的)

数据库中的常用数据类型:CHAR(n)、VARCHAR(n)、INT、NUMBER、FLOAT、DECIMAL(p,s)、DATE、DATESTAMP(n)

INT:整数类型(4字节),适用于SQL_server、My_SQL

FLOAT:浮点数类型(4字节),适用于SQL_server、My_SQL

NUMBER(精度p,位数s):数值型,精度p表示总有效数字位数,位数s表示小数点后有效数字位数,适用于Qracle数据库

DECIMAL(精度p,位数s):数值型,精度p表示总有效数字位数,位数s表示小数点后有效数字位数,适用于Oracle、SQL_server、My_SQL数据库(其中在Oracle数据库中底层也是由NUMBER类型实现的,为了数据库可转移性推出的数据类型)

CHAR(长度n):固定长度字符串,该类型长度固定位n字节(My_SQL在某些版本用字符作单位,不必考虑汉子占用字节比较多的问题)

VARCHAR(长度n):可变长度字符串,该类型长度可变,最大为n字节(My_SQL在某些版本用字符作单位,不必考虑汉子占用字节比较多的问题;Oracle中有VARCHAR2使用字符作单位,不必考虑汉子占用字节比较多问题)

DATE:显示时间(年月日)

DATESTEMP:显示时间(年月日 时分秒)

NULL:表示未知,既不表示0也不表示不存在而是表示存在值但是未知。(某些约束中会禁止使用NULL)

SQL(Structured Query Language)即我们所说的结构化查询语言,可以用来对数据库及其内部的基本表进行增、删、查、改的工作一下先简单介绍SQL语句对数据库和表能完成的基本操作:

##创建数据库<br> CREATE DATABASE 数据库名 ON(

NAME = 逻辑数据库名,

FILENAME = '路径名.mdf'

SIZE = 文件大小

##删除数据库

DROP DATABASE 数据库名

复制代码

##创建索引<br> CREATE INDEX 索引名

ON 表名(属性名)

##删除索引<br> DROP INDEX 索引名 ##Oracle中

ALTER TABLE 表名 DROP INDEX 索引名 ##My_SQL中

DROP INDEX 表名.索引名 ##SQL_server中

复制代码

##修改表属性,添加列

ALTER TABLE 表名

MODIFY COLUMN 属性名 数据类型 约束 ##Oracle、My_SQl

ADD COLUMN 属性名 数据类型 约束 ##SQL_server

##修改表属性,删除列

ALTER TABLE 表名

DROP COLUMN 属性名

##修改表属性,修改已有列

ALTER TABLE 表名

ALTER COLUMN 属性名 数据类型 约束

复制代码

对表的基本操作:

##创建表

CREATE TABLE 表名(

属性1 数据类型 约束,

属性2 数据类型 约束,

属性3 数据类型 约束,

......

##删除表

TURNCATE TABLE 表名 ##只删除表的数据,保留表

DROP TABLE 表名 ##删除表的数据以及表本身

复制代码

##往表中插入行 (手动添加数据)

INSERT INTO 表名(属性1,属性2,属性3......)

VALUES(值 1,值2,值3......)

##往表中插入行(SELECT投影的数据插入)

INSERT INTO 表名(属性1,属性2,属性3......)

SELECT语句

复制代码

##修改行的内容

UPDATE 表名

SET 属性1=值1,属性2=值2,属性3=值3...

WHERE语句

复制代码

创建临时表只需要在表名前面加#号即可(临时表会在每次关闭数据库时清楚)

创建视图:将SELECT的查询结果创建为视图(视图是一种虚表,由查找语句得到的结果组成的虚表。视图并不存储数据,只是一个结果集)

CREATE VIEW 视图名 AS

SELECT语句

复制代码

设置主键:

PRIMARY KEY 属性名 ##设置唯一的主键

CONSTRAINT 主键名 PRIMARY KEY (属性1,属性2...) ##设置联合主键

复制代码

设置外键:

FOREIGN KEY (表内属性名) REFERENCES 表名(表外属性名)

复制代码

约束:约束包括空值约束、主键约束、外键约束、缺省值约束、CHECK值约束(是表的列对行的约束)。一般在创建或修改表时填在数据类型后的约束位置,一列可添加多个约束。

空值约束:NULL和NOT NULL 指是否允许填入空值

主键约束:设定某一行属性为主键

外键约束:设定某一行属性为外键

缺省值约束:为某一行设定缺省值

DEFAULT 默认值

[time] DATE DEFAULT GETDATE() ##表示为time这个列添加一个缺省值为当前系统时间(GETDATE()是SQL内置的函数之一,讲查找时会讲)

CHECK值约束:指定某一行的属性的数据应该满足某些条件

CHECK 某属性满足的条件

ALTER TABLE t ADD CHECK (t_id>100 AND t_id<999 AND t_price>0) ##表示添加多个CHECK约束,使t_id在100到999之间取值;t_price取值至少比0大

复制代码

## 总结:

  关于表中列属性的操作和数据库的操作基本是相同的,而且SQL查询语言实在是一种十分接近人类思维逻辑的语言,只要知道几个关键词的用法(CREATE、DROP、ALTER、ADD、INSERT INTO、SET等),按照需要将属性、约束等填进去基本就是对的了,大部分的修改、添加、删除、查询命令都可以直接按照平时说话的逻辑组合。像我这等初学者也可以很快地掌握。

  这一篇主要介绍了SQL语句和数据库、表的增、删、改内容,目前比较流行的关系型数据库(如MySQL、Oracle、SQL_server、DB2)各自的查询语言标准大体上是相同的,但是某些数据库中有语法上的区别,这里不一一列出,在自己做实验、练习、开发中自然会遇到,到时候最好的解决方法就是谷歌。而且数据库是一门计算机科学,背后可以深挖的技术细节有很多,对于普通的学生和开发者基本不会考虑得到,只要知道最常用的语法和功能即可,遇到疑难杂症的最好办法依然是找谷歌。另外本篇中可能会暗藏不少错误,希望路过的同学能帮忙指正,共同学习。


最新回复

还没有人回复哦,抢沙发吧~

发布回复

为您推荐

热门交流