对于初次接触到数据库的,我们第一步学习的应该了解什么是数据库,怎么样创建数据库,然后学习数据库最近基本的语法规则,增、删、改、查。
一、数据哭概述
数据库概念:(Database)是按照数据结构来组织、存储、管理数据的仓库,随着技术信息技术的市场的发展,数据库不在仅仅用来存储和管理数据,而提供用户所需的各种数据管理的方式。
数据库的特点:
*数据结构化
*数据的共享性高,冗余度低,易扩充
*数据的独立性高
*数据由DBMS统一管理和控制
数据库管理系统:
*数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS.
*用户通过DBMS访问数据库中的数据,数据库管理员通过DBMS进行数据库维护工作。它可使多个应用程序和用户用不同的方式同时或不同时刻去建立、修改和查询数据库
*DBMS提供数据定义语言DDL(Data Definition Language)与数据库操作语言DML(Data Manipulation Language),提供用户定义数据库的模式结构与权限约束,实现数据的追加、删除等操作。
*常见的关系型数据库管理系统:Oracle,DB2, SQLServer, MySql, SQLite等
*DBMS必须提供以下数据控功能:
~数据的安全性(Security)保护
~数据的完整性(Integrity)检查
~并发(Concurrency)控制
~数据控恢复(Recovery)
结构化查询语言SQL
*结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系型数据库系统
*结构化查询语言是高级的非过程化编程语言,允许用户在高级数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的数据库系统可以使用xingtong 的数据结构化查询语言作为数据输入与管理的接口
*结构化查询语言SQL遵循ANSI SQL 标准
*SQL语言包含4个部分
1、数据定义语言(DDL)
例如:CREATE 、ALTER等语句
2、数据操作语言(DML)
例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句
3、数据查询语言(DQL)
例如:SELECT语句
4、数据控制语言(DCL)
例如:GRANT、REVOKE 、 COMMIT、 ROLLBACK等语句
SQLite数据库
*官方网站:www.sqlite.org
*SQLite是款轻型关系数据管理系统,设计目标是嵌入式环境,目前已经在很多嵌入式产品中得到使用
*SQLite占用资源非常低,在嵌入式设备中,可能只要几百k的内存,支持目前主流的操作系统,同时能够跟很多程序语言相结合,如Tcl、C#、java 等,比起Mysql、PostgreSQL这两款开源数据库管理系统,它的处理速度更快
*SQLite第一个Alpha版本诞生于2000年5月,目前较新的版本是SQLite3
*SQLite有很多优秀的图形化管理工具,如:SQLite developer,,sqliteadminstrator,sqlite database browser。这些工具都已经内置了SQLite3数据库,无需进行数据库连接配置,可直接使用。使用这些图形化管理工具,你可以更直观而且可以不用写 sql句。但建议初学者还是写sql语句。
基本sql语法
- 数据类型和约束
数据类型
- 大多数数据库表的字段都制定了相关的数据类型,相当于java 语言编程中变量的数据类型。SQLite采用动态数据类型,可以对字段不制定任何数据类型, SQLite会根据存入值自动判断。
- SQLite具有以下常用的数据类型
-
- NULL: 空值相当于java中的null
- INTEGER:带符号的整形,相当于java中的int 型
- REAL:浮点数字,相当于java中float/double型
- TEXT/VARCHAR: 字符串文本,相当于java中String型
- BLOB:二进制对象,相当于java中byte数组 (blob通常用来存储一些声音,图片等等)
- 约束
- 数据库表中存储数据时,有一些数据明显的约束条件
- 比如一家公司的关于员工的时间表,其中字段可能有如下约束:
- 年龄 - 至少大于20岁
- 国籍 - 默认中国
- 姓名 - 不能为空
- 员工号 - 唯一
- CREATE TABLE 创建表时,应该将每个字段的约束条件进行说明(如果有的话),以后往表里输入数据的时候 系统会自动检查是否满足约束条件,如果不满足会报错
- SQLite有如下的约束
- NOT NULL - 非空
- UNIQUE - 唯一
- PRIMARY KEY - 主键
- FOREIGN KEY - 外键
- CHECK - 条件检查
- DEFAULT - 默认
- 语法
- create table tabname(col1 type1[not null] [primary key],col2 type2[not null],..)
create 关键字 创建表 ,tabname 表名,大括号里表示要添加的字段,由字段名,字段类型,用逗号分隔,中括号表示约束,约束按需求添加约束。
-
- insert into tabale1(field1,field2...)values(value1,value2...)
insert into 关键字表示插入,table1表示数据库表的名称,括号里field1,field2字段要和后面的values的value1,value2 一一对应。
在java里一张表,代表着一个对象,表里的一条数据代表着一个实例,数据里的一个字段代表一个属性。
-
- select * from table1 where 范围
select 关键字 查询,*代表药查询的所有字段,where 查询的条件,如果没
有where就查询出所有的字段。
-
- update table1 set field1 = value1 where 范围
update 关键字 修改 ,set 把field1字段的值改为value1 ,where是咬过滤的条件。
-
- delete from table1 where 范围
delete 关键字 删除,where删除的条件,如何没有where就把这个表给清空了。
以上在Mac终端上运行基本的sql语句。
Mac 不需要安装sqlite,系统自带了。