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实例教程>(科学出版社) 数据库的基本概念 数据是载荷信息的物理符号,是数据库中存储的基本对象. 信息可以通过手势,眼神表达,但是表达信息的最佳方式还是数据. 数据有 ...
随机推荐
- 全栈project师的毁与誉
全栈(Full Stack)project师.也能够叫全端project师,不管是前端知识,还是后端架构你都要了解.甚至有些调皮的程序猿这样理解全栈project师:全栈project师 = 屌丝战斗 ...
- 10gocm->session5->数据库管理实验
Oracle数据库管理实验 一 传输表空间 二 创建分区表和分区索引 三 FGA细粒度审计 四 监控索引使用情况 五 创建含特殊字段类型的表 六 Flashback闪回技术 一 传输表空间,将ocmd ...
- 阐述php(四) 流量控制
一个.选择结构 1. 单路分支 <? php if(条件){ 运行一条语句; } ?> 2. 双路分支 <?php if(条件) 运行一条语句; }else 运行一条语句; } ?& ...
- ThinkPHP实现用户登录
ThinkPHP实现用户登录 ? //默认url入口 ? class IndexAction extends Action{ function index() { //检查用户是否登录 if(isse ...
- WebPack实例与前端性能优化
[前端构建]WebPack实例与前端性能优化 计划把微信的文章也搬一份上来. 这篇主要介绍一下我在玩Webpack过程中的心得.通过实例介绍WebPack的安装,插件使用及加载策略.感受构建工具给 ...
- BrowserSync使用
在Gulp中使用BrowserSync 2016-02-24 23:47 by 那时候的我, 116 阅读, 0 评论, 收藏, 编辑 博客已迁移至http://lwzhang.github.io. ...
- 第4周 页面限制8060 bytes
原文:第4周 页面限制8060 bytes 恭喜您!在你面前就只剩下几页了,然后你就可以完成第1个月的SQL Server性能调优培训了.今天我将讲下页的一些限制,还有为什么你会喜欢这些限制,同时也会 ...
- mac_Mac环境下怎样编写HTML代码?
在Mac环境下,使用默认的文本编辑器编写的HTML的源代码, 使用不同的浏览器打开后,依旧还是显示源代码 推荐使用UltraEdit,问题就迎刃而解了
- Cocos2d-x项目总结中的一些遇到的问题
这几天在用Cocos2D-X尝试着做一个小游戏,当然不是创新,仅仅是单纯的模仿,就是为了将自己这段时间学到的技术应用于实践中. 在这个过程中.遇到了一些问题,在此特做一些总结,以免以后遇到类似的问题. ...
- SQL server 表数据改变触发发送邮件
今天遇到一个问题,原有生产系统正在健康运行,现需要监控一张数据表,当增加数据的时候,给管理员发送邮件. 领到这个需求后,有同事提供方案:写触发器触发外部应用程序.这是个大胆的想法啊,从来没写过这样的触 ...