day03_mySQL_总结
day03_mySQL_总结。
数据库概述 概念 数据库 (DataBase : DB )数据库是是按照数据结构来组织、存储和管理数据的仓库。—->存储和管理数据的仓库.
数据库管理系统(Database Management System:DBMS)是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。
我们一般说的数据库,就是指的 DBMS : 数据库服务器
db 技术发展层次数据库和网状数据库技术阶段: 使用指针来表示数据之间的联系
关系数据库技术阶段: 经典的里程碑阶段。代表 DBMS:Oracle、DB2、MySQL、SQL Server、SyBase 等。
后关系数据库技术阶段: 关系型数据库存在数据模型,性能,拓展伸缩性的缺点,出现了:
ORDBMS:面向对象数据库技术。 NoSQL :结构化数据库技术。随着大数据的不断发展,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速,出色的 NoSQL 数据库.
常见的 NoSQL 数据库分为四大类
键值存储数据库:Oracle BDB,Redis,BeansDB 列式储数数据库:HBase,Cassandra,Riak 文档型数据库:MongoDB,CouchDB 图形数据库:Neo4J,InfoGrid,Infinite Graph 常见数据库分析 数据库系统 所属公司 特点 Oracle Oracle 运行稳定,可移植性高,功能齐全,性能超群!适用于大型企业领域。 DB2 IBM 速度快、可靠性好,适于海量数据,恢复性极强。适用于大中型企业领域。 SQL Server MS 全面,效率高,界面友好,操作容易,但是不跨平台。适用于于中小型企业领域。 MySQL AB -> SUN -> Oracle 开源,体积小,速度快。适用于于中小型企业领域。 SQL结构化查询语言 (Structured Query Language)。是关系型数据库标准语言。
特点简单,灵活,功能强大。
分类包含 6 个部分
1. 数据查询语言(DQL)其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字 SELECT 是 DQL(也是所有 SQL)用得最多的动词,其他 DQL 常用的保留字有 WHERE,ORDER BY,GROUP BY 和 HAVING。这些 DQL 保留字常与其他类型的 SQL 语句一起使用。
2. 数据操作语言(DML)其语句包括动词 INSERT,UPDATE 和 DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
3. 事务处理语言(TPL)它的语句能确保被 DML 语句影响的表的所有行及时得以更新。TPL 语句包括 BEGIN TRANSACTION,COMMIT 和 ROLLBACK。
4. 数据控制语言(DCL)它的语句通过 GRANT 或 REVOKE 获得许可,确定单个用户和用户组对数据库对象的访问。某些 RDBMS 可用 GRANT 或 REVOKE 控制对表单个列的访问。
5. 数据定义语言(DDL)其语句包括动词 CREATE 和 DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL 包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
6. 指针控制语言(CCL)它的语句,像 DECLARE CURSOR,FETCH INTO 和 UPDATE WHERE CURRENT 用于对一个或多个表单独行的操作。
书写规则 在 MySQL 数据库中,SQL 语句大小写不敏感 SQL 语句可单行或多行书写 在 SQL 语句中,关键字不能跨多行或缩写 为了提高可读性,一般关键字大写,其他小写 空格和缩进使程序易读 表我们说 MySQL 是一种关系型数据库。关系数据库最重要的概念就是表. 表具有固定的列数和任意的行数,在数学上称为“关系”。
二维表是同类实体的各种属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一条记录;
表中的列表示属性,称为 Field,相当于通常记录中的一个数据项,也叫列、字段。
MySQL 启动和使用 开启服务打开数据库连接之前:一定要保证 MySQL 服务已经开启了.
开启一个服务
net start MySQL(window 服务名)
关闭一个服务
net stop MySQL
查看已经开启的服务, 运行services.msc
连接库 方式1进入 MySQL, 在命令行中输入密码
方式2在命令行中
mysql -u账户 -p密码 -h数据库服务器安装的主机 -P数据库端口
比如:
mysql -uroot -padmin -h127.0.0.1 -P3306
若连接的数据库服务器在本机上,并且端口是3306。则可以简写
mysql -uroot -padmin操作库
创建库
CREATE DATABASE jdbcdemo;
查看库
SHOW DATABASES;
使用库
USE jdbcdemo;
删除库
DROP DATABASE jdbcdemo;数据库引擎 MyISAM:拥有较高的插入,查询速度,但不支持事务,不支持外键。 InnoDB: 支持事务,支持外键,支持行级锁定,性能较低。
所有的引擎
MySQL 列常用类型 整数 MySQL 列类型 Java 数据类型 INT int/Integer BIGINT long/Long
MySQL 以一个可选的显示宽度指示器的形式对 SQL 标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。
例如,指定一个字段的类型为 INT(6),就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够自动地用空格填充。
需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。一般不用指定位宽。
FLOAT[(s,p)]:DOUBLE[(s,p)] :小数类型,可存放实型和整型 ,精度 (p) 和范围 (s) , 比如:
money double(5,2): 整数和小数一共占5为.其中小数占2位.都不够精确。
定点数据类型: DECIMAL,高精度类型,金额货币优先选择。
MySQL 列类型 Java 数据类型 FLOAT float/Float DOUBLE double/Double DECIMAL BigDecimal 字符类型 char(size) : 定长字符,0 - 255 字节,size 指 N 个字符数,若插入字符数超过设定长度,会被截取并警告。 varchar(size) : 变长字符,0 - 255 字节,从 MySQL5 开始支持 65535 个字节,若插入字符数超过设定长度,会被截取并警告。一般存储大量的字符串,比如文章的纯文本,可以选用 TEXT 系列类型。
注意:在 MySQL 中,字符使用单引号引起来。 相当于 Java 中字符串 (String, StringBuilder / StringBuffer)
时间类型日期和时间类型为 DATETIME、DATE、TIMESTAMP、TIME和YEAR。
注意:在 MySQL 中,日期时间值使用单引号引起来。 相当于 Java 中 Date,Calender。
二进制类型BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB:存放图形、声音和影像,二进制对象,0 - 4GB。
开发中,我们一般存储二进制文件保存路径。
BIT:我们一般存储0或1,存储是Java中的boolean/Boolean类型的值。
操作表 表的命名若在建表中使用到了数据库的关键字.比如新建一张订单表: (order) ,但是「order」是数据库中的关键字(排序使用).那么就是用t_order, 若一定要使用使用「order」这个单词.此时使用反引号「`」括起来,`order`.
一般,起表名为:t_名字。
表的约束 非空约束:NOT NULL,不允许某列的内容为空。 设置列的默认值:DEFAULT。 唯一约束:UNIQUE,在该表中,该列的内容必须唯一。 主键约束:PRIMARY KEY, 非空且唯一。 主键自增长:AUTO_INCREMENT,从 1 开始,步长为 1。 外键约束:FOREIGN KEY,A 表中的外键列. A 表中的外键列的值必须参照于 B 表中的某一列 (B 表主键) 主键设计单字段主键,单列作为主键,建议使用。
复合主键,使用多列充当主键,不建议。
主键分为两种:
自然主键:使用有业务含义的列作为主键(不推荐使用); 代理主键:使用没有业务含义的列作为主键(推荐使用); 操作创建表
CREATE TABLE t_student( id INT(10), name VARCHAR(10), email VARCHAR(20), age INT(10) );
查看表结构
DESC table_name;
查看表的详细定义
SHOW CREATE TABLE table_name;
删除表
DROP TABLE table_name;操作数据 (DML) 插入语句
一次插入操作只插入一行
插入完整数据记录
INSERT INTO 表名(列名1, 列名2, 列名3....) VALUES(值1, 值2, 值3....)
插入数据记录一部分
INSERT INTO 表名(列名1, 列名2, 列名3....) VALUES(值1, null, 值3....)
插入多条数据记录(MySQL特有)
INSERT INTO 表名(列名1, 列名2, 列名3....) VALUES(值1, 值2, 值3....),(值11, 值22, 值33....),(值111, 值222, 值333....)
插入查询结果(测试用)
INSERT INTO 表名(列名1, 列名2, 列名3....) SELECT 列名1, 列名2, 列名3.... FROM 表名2修改语句
UPDATE 表名 SET 要修改的列 1= 改后的值 1 [, 列2= 值2] … [WHERE condition];
如果省略了 where 子句,则全表的数据都会被修改。注意 : 没有FROM
删除语句DELETE FROM 表名 [WHERE condition];
如果省略了 where 子句,则全表的数据都会被修改
清空表: 删除表的数据DELETE 删减表: 将表回复到初始状态: TRUNCATE 查询数据 (DQL) 一般查询语法
SELECT [列名1, 列名2, 列名3....] FROM 表名 [WHERE 条件1 条件2 ....]
说明
SELECT 选择查询列表 FROM 提供数据源(表、视图或其他的数据源)如果为「*」和创建表时的顺序一致。可以自己调整顺序,在 select 后边加上要查询的列名。
建议查询的时候,最好是将要查询的列显示出来,即使是查全部列
查询中运算和别名和 CONCAT对 NUMBER 型数据可以使用算数操作符创建表达式(+ - * /)
对 DATE 型数据可以使用部分算数操作符创建表达式 (+ -)
SELECT 列1 as 别名 FROM 表名
其中:as 可以省略
作用:
1. 改变列的标题头;
2. 用于表示计算结果的含义;
3. 作为列的别名;
4. 如果别名中使用特殊字符,或者是强制大小写敏感,或有空格时,都需加单引号;
为方便用户浏览查询的结果数据,有时需要设置显示格式,可以使用 CONCAT 函数来连接字符串。
SELECT productName, salePrice, CONCAT(productName, '商品的零售价为:',salePrice) FROM t_product;过滤查询
使用 WHERE 子句限定返回的记录
SELECT 列的列表 FROM 表名 WHERE 条件;
WHERE 子句在 FROM 子句后
select 和 where 的执行顺序1、先执行 FROM,先找到数据
2、再 WHERE, 筛选出符合条件的数据
3、才执行 SELECT
所以不能在 WHERE 中使用别名
运算符 运算符 含义 = 等于 > 大于 >= 大于或等于 < 小于 <= 小于或等于 !=(<>) 不等于 AND(&&) 如果组合的条件都是 TRUE, 返回 TRUE OR(||) 如果组合的条件之一是 TRUE, 返回 TRUE NOT(!) 如果下面的条件是 FALSE, 返回 TRUE` BETWEEN显示某一值域范围的记录,这个操作符最常见的使用在数字类型数据的范围上,但对于字符类型数据和日期类型数据同样可用。
WHERE 列名 BETWEEN 最小值 AND 最大值:闭区间。IN
判断列的值是否在指定的集合中。
WHERE 列名 IN (值1,值2....);IS NULL
判断列的值是否为空。
WHERE 列名 IS NULL;LIKE
执行通配查询,查询条件可包含文字字符或数字
通配符 含义 % 可表示零或多个字符 _ 可表示一个字符如
SELECT id, productName FROM product WHERE productName LIKE '%罗技M9_';
上一篇: ASP.Net简单更新方法举例
下一篇: 学习.net与ajax的详细案例总结