SQL入门学习0-数据库与SQL
1.1 DBMS
DatabaseManagermentSystem
数据库管理系统
DBMS种类
- 层次型数据库(HDB)
最古老的数据库之一,把数据通过层次结构的方式表现。 - 关系型数据库(RDB)
和EXCEL工作表一样,同样采用行列为二维表结构来管理数据。 - 面向对象数据库
- XML数据库
- 键值存储系统
代表性的5种DBMS:
- Oracle Database 甲骨文公司的RDBMS
- SQL Server 微软公司的
- DB2 IBM公司的
- PostgreSQL 开源的
- MySQL 开源的
数据库代表性特点
- 多人共享数据
- 提供进行大量数据的操作
- 应对突发事故
1.2 数据库结构
- RDBMS 通常使用客户端/服务器这样的系统结构。
- 通过从客户端向服务器端发送SQL语句来实现数据库的读写操作。
- 数据库表, 由表示数据项目的列(字段)和表示一条数据的行(记录)所组成。以记录为单位进行数据读写
法则1-1
关系数据库以行为单位读写
SQL语句及其种类
SQL用关键字、表明、列名等组合而形成的一个语句(SQL语句)来描述操作的内容。
分类:
DDL
DDL(数据定义语言)
用来创建或者删除存储数据用的数据库以及数据库中的表的对象。
- CREATE 创建
- DROP 删除
- ALTER 修改数据库和表对象的结构DML
DML(数据操作语言)
用来查询或者变更表中的记录。
- SELECT 查询表中数据
- INSERT 向表中插入
- UPDATE 变更
- DELETE 删除表中的数据DCL
DCL(数据控制语言)用来确认或者取消对数据库中的数据进行变更。还可以对RDBMS的用户是否有权限操作数据库中的对象进行设定。
- COMMIT 确认数据库中的数据进行变更
- ROLLBACK 取消对数据库中的数据进行的变更
- GRANT 赋予用户操作权限
- REVOKE 取消用户的操作权限。
用到的语句,90%都是DML。
SQL的基本书写规则
- 语句要以分号
;
结尾 - SQL语句不区分大小写
但是为了方便理解,使用以下规则:
- 关键字大写
- 表名的首个字大写
- 其余小写
**注意,插入到表中的数据,是区分大小写的。**
例如数据Computer、和COMPUTER不一样。
- 固定的书写方式
- 字符串 使用单引号引住
例如'abc'
- 日期 同样使用单引号括起来,有特有的格式。
1.4 表的创建
- 表通过
CREATE TABLE
语句进行创建而成。 - 表和列的命名要使用有意义的文字。
- 指定列的数据类型
- 可以在表中设置约束
怎样使用SQLShell 进行SQL语句输入:
打开SQL Shell,然后默认输入5次空格键,再输入密码,就能够进入。
提示postgres=#
代表打开成功
语法1-1 创建数据库的CREATE TABLE语句
CREATE DATABASE <数据库名称>
创建数据库后, 就要创建表:
语法1-2 创建表的CREATE TABLE语句
CREATE TABLE <表名>
(<列名1><数据类型><该列所需约束>,
<列名2><数据类型><该列所需约束>,
<列名3><数据类型><该列所需约束>,
...
<该表的约束1>,<改表的约束2>, ......);
例:
命名规则
- 数据库、表、和列的名称。只能使用半角英文字母、数字、下划线(_)。
- 名字必须以英文字母开头。
- 不能创建名称相同的列
数据类型的指定
数据类型包括,数字型、字符型、日期型等。以下分类:
- INTEGER型
用来存储整数的列的数据类型,不能存储小数。 - CHAR型
用来存储字符串的列的数据类型。可以指定存储字符串的最大长度。
例:CHAR(10)
字符串以定长字符串的形式存储在指定为CHAR型的列中。定长字符串就是当列中存储的字符串达不到最大长度时会以半角空格进行补足。 - VARCHAR型
与CHAR类型一样,也是用于存储字符串列的数据类型。同样能够指定字符串最大长度。
与CHAR区别是变长字符串未达到最大长度,不会用空格进行补足。 - DATA型
用来指定存储日期(年月日)的类型数据类型。
约束的设置
NOT NULL 不能输入空白。
PRIMARY KEY (shoin_id)
将 shohin_id
列设定为主键约束的。
1-5 表的删除和更新
- 使用DROP TABLE 语句来删除表
- 使用ALTER TABLE 语句来向表中添加列或从表中删除列。
删除表DROP
语法:
DROP TABLE <表名>;
要注意,删除的表,是无法恢复的。
表定义的更新 ALTER TABLE语句
增加列的ALTER TABLE语句
ALTER TABLE <表名> ADD COLUMN <列的定义>;
例如:
ALTER TABLE Shohin ADD COLUMN shohin_mei_kana VARCHAR(100);
删除列 ALTER TABLE语句
语法:
ALTER TABLE <表名> DROP COLUMN <列名>;
例子:
ALTER TABLE Shohin DROP COLUMN shohin_mei_kana ;
注意,从表中删除之后的列 ,就无法恢复了。
插入数据
开头的BEGIN TRANSACTION ;
和结尾的 COMMIT
然后中间的每一条记录,都是一行记录为单位。
例如:
BEGIN TRANSACTION;
INSERT INTO Shohin VALUES('0001','T虚衫','衣服',1000,500,'2009-09-20');
INSERT INTO Shohin VALUES('0002','牛仔衫','衣服',1000,500,'2009-09-22');
INSERT INTO Shohin VALUES('0003','透视装','衣服',1000,500,'2009-09-21');
COMMIT;
重命名语句
很多的数据库都提供了可以修改表明的指令。
例如
ALTER TABLE Sohin RENAME TO Shohin;
SQL入门学习0-数据库与SQL的更多相关文章
- SQL Server 学习系列之四(SQL 内幕)
SQL Server 学习系列之四(SQL 内幕) SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL ...
- SQList3 and SQL入门学习笔记
SQL 这是一个标准的计算机语言进行访问和操作数据库. 什么是 SQL? · SQL 指结构化查询语言 · SQL 使我们有能力訪问数据库 · SQL 是一种 AN ...
- 搜索表字段包含某字符串的SQL和监控Oracle数据库的SQL。
1.第一个SQL 背景:需要找到SQL Server数据库中,包含某个字符串的表,输出表和包含该字符串的列. )='=' --这里填要搜索的字符串 DECLARE @sql NVARCHAR(MAX) ...
- SQL Serever学习13——数据库编程语言
编程基础 注释 注释命名来对一些语句进行说明,便于日后维护或者其他用户理解,注释不会执行. 单行注释 SELECT GETDATE() --查询当前日期 多行注释 /* 注释有助于 理解操作的内容 查 ...
- SQL入门学习3-数据更新
4-1 数据的插入(INSERT语句的使用方法) 使用INSERT语句可以向表中插入数据(行).原则上,INSERT语句背刺执行一行数据插入. CREATE TABLE 和INSERT 语句,都可以设 ...
- SQL基础学习_01_数据库和表
SQL语句及其种类 1. SQL语句分为三类: DDL(Data Definition Language): CREATE.DROP.ALTER; DML(Data Manipulat ...
- SQL Serever学习17——数据库的分析和设计
数据库的分析和设计 设计数据库确定一个合适的数据模型,满足3个要求: 符合用户需求,包含用户所需的所有数据 能被数据库管理系统实现,如sqlserver,oracle,db2 具有比较高质量,容易理解 ...
- SQL Serever学习12——数据库的备份和还原
公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低. 数据的导出和导入 数据转换服务 数据转换服务DTS( ...
- SQL SERVER学习1——数据库概念
<SQL Server实例教程>(科学出版社) 数据库的基本概念 数据是载荷信息的物理符号,是数据库中存储的基本对象. 信息可以通过手势,眼神表达,但是表达信息的最佳方式还是数据. 数据有 ...
随机推荐
- uIP中国的协议文件:Ch01
uIP0.9 参考 by Doxygen 1.3.3 Tue Oct 7 15:51:00 2003 译: fishOnFly(鱼在飞) uIP-refman中文pdf下载 第1章 uIP TCP/ ...
- SAP ABAP计划 SY-REPID与SY-CPROG差异
首先,它的两个解释 sy-repid is the name of the current program. "当前程序的程序名 ...
- 【JUnit4.10来源分析】0导航
JUnit靠GOF 中的一个Erich Gamma和 Kent Beck 单元测试框架编写一个开源,yqj2065分析JUnit的主要目的是源 中学习对设计模式的运用. JUnit也是一个学习Java ...
- Python多线程的threading Event
Python threading模块提供Event对象用于线程间通信.它提供了一组.拆除.等待用于线程间通信的其他方法. event它是沟通中最简单的一个过程之中,一个线程产生一个信号,号.Pytho ...
- MFC漆摘要-截图,获得DIB/DDB图形Pixel
1. 当前Screen进行Copy屏幕,获得BITMAP 当前屏幕Copy.须要获取当前屏幕的HDC, 一种是直接从屏幕DC抓原始图. 一种是然后使用兼容MemDC进行抓图,然后能够附加图 ...
- sql时间比较
- 无法识别的属性“targetFramework”。请注意,属性名是大写和小写。错误的解决方案
"/CRM"应用server错. 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查以下的特定错误具体信息并适当地改动配置文件. 分析器错误消息: 无法识别的属性 ...
- REST API 基于ACCESS TOKEN
REST API 基于ACCESS TOKEN 的权限解决方案 REST 设计原则是statelessness的,而且但客户端是APP时,从APP发起的请求,不是基于bowers,无法带相同的se ...
- Shrio登陆验证实例详细解读(转)
摘要:本文采用了Spring+SpringMVC+Mybatis+Shiro+Msql来写了一个登陆验证的实例,下面来看看过程吧!整个工程基于Mavevn来创建,运行环境为JDK1.6+WIN7+to ...
- enumerateObjectsUsingBlock、enumerateObjectsWithOptions、enumerateObjectsAtIndexes、makeObjectsPerfor使用
OC至 NSArray它提供了一个方便的遍历block,以下具体说明 第一.enumerateObjectsUsingBlock NSArray *array=@[@"aa",@& ...