一、SQL
1.解释
用于访问和处理数据库的标准的计算机语言。数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。
2.功能
命令 | 功能 | 示例 |
SELECT WHERE | 面向数据库执行查询 | SELECT * FROM Websites WHERE country='CN'; |
从数据库取回数据 | ||
INSERT INTO | 在数据库中插入新的记录 | INSERT INTO table_name VALUES (value1,value2,value3,...); |
UPDATE | 更新数据库中的数据 | UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value; |
DELETE | 从数据库删除记录 | DELETE FROM table_name WHERE some_column=some_value; |
CREATE DATABASE | 创建新数据库 | CREATE DATABASE dbname; |
CREATE TABLE | 在数据库中创建新表 | CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), .... ); |
在数据库中创建存储过程 | ||
CREATE VIEW | 在数据库中创建视图 | CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition |
设置表、存储过程和视图的权限 |
二、SQLite
1.解释
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。
2.特点
不需要一个单独的服务器进程或操作的系统(无服务器的)。 |
SQLite 不需要配置,这意味着不需要安装或管理。 |
一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。 |
SQLite 是非常小的,是轻量级的,完全配置时小于 400KB,省略可选功能配置时小于250KB。 |
SQLite 是自给自足的,这意味着不需要任何外部的依赖。 |
SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。 |
SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。 |
SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。 |
SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。 |
3.局限性
特性 | 描述 |
RIGHT OUTER JOIN | 只实现了 LEFT OUTER JOIN。 |
FULL OUTER JOIN | 只实现了 LEFT OUTER JOIN。 |
ALTER TABLE | 支持 RENAME TABLE 和 ALTER TABLE 的 ADD COLUMN variants 命令, 不支持 DROP COLUMN、ALTER COLUMN、ADD CONSTRAINT。 |
Trigger 支持 | 支持 FOR EACH ROW 触发器,但不支持 FOR EACH STATEMENT 触发器。 |
VIEWs | 在 SQLite 中,视图是只读的。您不可以在视图上执行 DELETE、INSERT 或 UPDATE 语句。 |
GRANT 和 REVOKE | 可以应用的唯一的访问权限是底层操作系统的正常文件访问权限。 |
4.命令
命令 | 描述 |
SELECT | 从一个或多个表中检索某些记录。 |
CREATE | 创建一个新的表,一个表的视图,或者数据库中的其他对象。 |
ALTER | 修改数据库中的某个已有的数据库对象,比如一个表。 |
DROP | 删除整个表,或者表的视图,或者数据库中的其他对象。 |
INSERT | 创建一条记录。 |
UPDATE | 修改记录。 |
DELETE | 删除记录。 |
5.存储类
存储类 | 描述 |
NULL | 值是一个 NULL 值。 |
INTEGER | 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。 |
REAL | 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。 |
TEXT | 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。 |
BLOB | 值是一个 blob 数据,完全根据它的输入存储。 |
6.命令示例
(1)创建表CREATE TABLE
CREATE TABLE database_name.table_name( column1 datatype PRIMARY KEY(one or more columns), column2 datatype, column3 datatype, ..... columnN datatype, ); 示例: CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL ); 它创建了一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL。
(2)删除表DROP TABLE
DROP TABLE database_name.table_name; 示例: DROP TABLE COMPANY;
(3)表中添加行INSERT INTO
指定列添加: INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN); 示例: INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); 所有列添加: INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN); 示例: INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );
(4)获取数据SELECT
获取指定字段: SELECT column1, column2, columnN FROM table_name; 获取所有字段: SELECT * FROM table_name; 因为所有的点命令只在 SQLite 提示符中可用,所以当您进行带有 SQLite 的编程时, 您要使用下面的带有 sqlite_master 表的 SELECT 语句来列出所有在数据库中创建的表: SELECT tbl_name FROM sqlite_master WHERE type = 'table'; 示例: SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'COMPANY';
(5)WHERE/AND/OR
SELECT column1, column2, columnN FROM table_name WHERE [condition] 示例: SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000; SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
(6)UPDATE
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition]; 示例: UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6;
(7)DELETE
DELETE FROM table_name WHERE [condition]; 示例: DELETE FROM COMPANY WHERE ID = 7;
三、MySQL
1.解释
MySQL 是最流行的关系型数据库管理系统。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
2.特点
MySQL 是开源的。 |
MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。 |
MySQL 使用标准的 SQL 数据语言形式。 |
MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。 |
MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。 |
MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。 |
MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。 |
3.安装
(1)在windows上安装MySQL
下载地址:https://downloads.mysql.com/archives/community/
选择离线安装:需要安装.NET 4.5.2
解压到C:\hh_wksp
C:\hh_wksp\mysql-5.7.19-winx64\mysql-5.7.19-winx64目录下配置MySQL 的配置文件my.ini:
以管理员身份打开 cmd 命令行工具,切换目录:
初始化数据库:
问题1:需要安装2013版本的vcredist_x64.exe
问题2:my.ini另存为ANSI格式
执行完成后,会输出 root 用户的初始默认密码,如:!b1?Hk%>F-lr
安装成功:
启动MySQL:
登录MySQL:
修改登录密码:root
环境变量设置:
右键单击我的电脑->属性->高级系统设置(高级)->环境变量
点击系统变量下的新建按钮
输入变量名:MYSQL_HOME
输入变量值:C:\hh_wksp\mysql-5.7.19-winx64\mysql-5.7.19-winx64
选择系统变量中的Path
点击编辑按钮
在变量值中添加变量值:;%MYSQL_HOME%\bin
注意是在原有变量值后面加上这个变量,用;隔开,不能删除原来的变量值
(2)创建数据库RUNOOB(注意结尾分号)
(3)查询数据库(注意结尾s;)
(4)选择数据库(注意结尾分号)
(5)删除数据库(注意结尾分号)