对于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语句对数据库和表能完成的基本操作:

    • ##创建数据库 CREATE DATABASE 数据库名 ON(
       NAME = 逻辑数据库名,
       FILENAME = '路径名.mdf'
       SIZE = 文件大小
       )
      ##删除数据库
       DROP DATABASE 数据库名
    • ##创建索引 CREATE INDEX 索引名
       ON 表名(属性名)
      ##删除索引 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......)
       ,值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 某属性满足的条件
    •   )   ##表示添加多个CHECK约束,使t_id在100到999之间取值;t_price取值至少比0大

## 总结:

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

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

SQL简单基础(1)的更多相关文章

  1. SQL简单基础(2)

    查询功能是SQL语句最重要的功能,查询操作也是数据库系统最常用的操作.学习SQL查询语句,首先要弄清楚的是查询语句用到的关键字以及查询语句的执行顺序.SQL语言的一个特点在于,它是一种声明式语句,执行 ...

  2. .NET面试题解析(11)-SQL语言基础及数据库基本原理

      系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...

  3. 【SQL Server】SQL Server基础之存储过程

    SQL Server基础之存储过程  阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...

  4. SQL Tuning 基础概述10 - 体会索引的常见执行计划

    在<SQL Tuning 基础概述05 - Oracle 索引类型及介绍>的1.5小节,提到了几种"索引的常见执行计划": INDEX FULL SCAN:索引的全扫描 ...

  5. SQL语法基础之高级应用

    SQL语法基础之高级应用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.存储过程与函数 1>.CREATE PROCEDURE 用来创建存储过程 mysql> ? ...

  6. SQL语法基础之CREATE语句

    SQL语法基础之CREATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.使用“?”来查看MySQL命令的帮助信息 mysql> ? CR ...

  7. Sql注入基础原理介绍

    说明:文章所有内容均截选自实验楼教程[Sql注入基础原理介绍]~ 实验原理 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击, ...

  8. SQL夯实基础(九)MySQL联接查询算法

    书接上文<SQL夯实基础(八):联接运算符算法归类>. 这里先解释下EXPLAIN 结果中,第一行出现的表就是驱动表(Important!). 对驱动表可以直接排序,对非驱动表(的字段排序 ...

  9. 【PL/SQL编程基础】

    [PL/SQL编程基础]语法: declare 声明部分,例如定义变量.常量.游标 begin 程序编写,SQL语句 exception 处理异常 end: / 正斜杠表示执行程序快范例 -- Cre ...

随机推荐

  1. 非科班双非本科投的337家Java后台(励志)

    考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰” 前言 文章出自h ...

  2. [译]用R语言做挖掘数据《二》

    数据探索 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: ...

  3. JAVA字符编码测试

    几点注意: 1,ASCII码和ISO-8859-1都是单字节编码,ASCII码能表示128个字符,ISO-8859-1总共能表示256个字符.都不能表示中文,如果中文字符或其它不在IOS-8859码值 ...

  4. eclipse的debug技巧之一

    如下图,断点设置的地方会在i==0时就停住,假如我们想在i等于某个值的时候才停住,那么可以添加“过滤条件” 具体操作是在debug模式下,右键breakpoints标签下我们所设置的断点,点击右键菜单 ...

  5. python Django 路由之正则表达式

    一.路由系统,URL 1. url(r'^index',views.index) #默认的                  url(r'^home',views.Home.as_view()) # ...

  6. tensorboard实现tensorflow可视化

    1.工程目录 2.data.input_data.py的导入 在tensorflow更新之后可以进行直接的input_data的导入 # from tensorflow.examples.tutori ...

  7. web 开发人员必须学习的 3 门语言

    web 开发人员必须学习的 3 门语言:html  css  js HTML 定义了网页的内容 CSS 描述了网页的布局 JavaScript 网页的行为

  8. 普通平衡树Tyvj1728、luogu P3369 (treap)

    您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(若有多个相同的数,因输出最小的排名) 查询排名为x的 ...

  9. Sql语句常用关键字

    --语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据 --数 ...

  10. PHP读取Excel类文件

    想要使用PHP读取Excel文件必然要用到PHPExcel开源类库,网上资源应该挺多的.但是每一种的操作必然都是不同的,可原理应该都是大同小异. 这个文件夹里包含的就是PHPExcel类文件,在外面还 ...