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实例教程>(科学出版社) 数据库的基本概念 数据是载荷信息的物理符号,是数据库中存储的基本对象. 信息可以通过手势,眼神表达,但是表达信息的最佳方式还是数据. 数据有 ...
随机推荐
- margin 还能够被缩回
<p><strong>话:</strong>的肥沃和收获而被估价的.才干也是土地,只是它生产的不是粮食,而是真理.假设仅仅能滋生瞑想和幻想的话,即使再大的才干也仅仅 ...
- js中escape的用法----前端页面简单加密
escape() 方法,它用于转义不能用明文正确发送的任何字符.比如,电话号码中的空格将被转换成字符 %20,从而能够在 URL 中传递这些字符. http://localhost:8080/a?na ...
- 0当执行游戏xc000007b错误的解决方法
如图所示,这个错误是让很多玩家担心. 出现这个错误,可能是硬件的问题,也可能是软件的问题. 可是.因为硬件引起该问题的概率非常小,而且除了更换硬件之外没有更好的解决方法,因此本文将具体介绍怎样通过软件 ...
- Robotium原则的实施源代码分析
从前面的章节<Robotium源代码分析之Instrumentation进阶>中我们了解到了Robotium所基于的Instrumentation的一些进阶基础.比方它注入事件的原理等,但 ...
- Python 的PyCurl模块使用
PycURl是一个C语言写的libcurl的python绑定库.libcurl 是一个自由的,并且容易使用的用在客户端的 URL 传输库.它的功能很强大,PycURL 是一个非常快速(参考多并发操作) ...
- Codeforces Round #248 (Div. 1)——Nanami's Digital Board
题目连接 题意: 给n*m的0/1矩阵,q次操作,每次有两种:1)将x,y位置值翻转 2)计算以(x,y)为边界的矩形的面积最大值 (1 ≤ n, m, q ≤ 1000) 分析: 考虑以(x,y)为 ...
- Java泛型中extends和super的理解(转)
E – Element (在集合中使用,因为集合中存放的是元素) T – Type(Java 类) K – Key(键) V – Value(值) N – Number(数值类型) ? – 表示不确定 ...
- 输入框 js正则推断输入
1.文本框仅仅能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onaf ...
- 矩形类定义【C++】
Description 定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数.输入坐标的函数,以及计算并输出矩形面积的函数.要求使用提示中给出的测试函数并不得改动. Inp ...
- ubuntu下一个jboss-seam-2.2.2.Final/examples/build.xml:754: warning: 'includeantruntime' was not set
[javac] /home/huihui/app/jboss-seam-2.2.2.Final/examples/build.xml:754: warning: 'includeantruntime' ...