博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库——JDBC
阅读量:4968 次
发布时间:2019-06-12

本文共 3454 字,大约阅读时间需要 11 分钟。

数据库——JDBC

  数据库优点:降低存储数据的冗余度;

        更高的数据一致性;

        存储的数据可以共享;

        可以建立数据库所遵循的标准;

        便于维护数据完整性;

        能够实现数据的安全性;

  建立数据库:

  数据库的存储形式:

    关系型数据库存储形式:

      关系型数据模型与层次和王庄模型的呆板结构完全不同。访问层次状数据库的应用程序基于该数据库已定义好的实现,数据库结构必须硬编码到应用程序的编程语言中。如果数据库发生变化,应用程序就必须变化。

      关系型数据库是独立于应用程序的。更改数据库设计,而不会影响应用程序成为可能,因为关系模型用组成相关数据的表的行和列这种结构,来替换父子框架。使用关系模型,我们可以客服早起模型的缺陷,在表之间定义复杂的关系。

    关系型数据库的基本概念:

      主键:在关系型数据库表中,用一个唯一的标示来标示每一行,这个标示符就是主键(Primary Key);

      外键:在关系型数据库中,外键(Forergn Key)就是用来表达表与表之间的关联关系; 

 

 

                      

      表与表之间三种关系类型:一对一:当两个表中第一个表中的一行只与第二个表中的一行相关,同时第二个表中的一行也只与第一个表中的一行相关,称之为两个表之间的一对一关系;

                      通常一对一关系是比较少见的关系类型。很多数据库也很少包含一对一关系。

                      

                  一对多关系:一对多关系与一对一关系的不同之处在于,第一个表中的行可以与第二个表中的一到多个行相关联,但是第二标中的一行只能与第一个表中的一行相关联。通常把一对多关系中:“多边”的表称为从表,把“一边”的表称为主表,一对多挂你选是我们在数据库中最长见到的一种关系类型。

                      

 

                  多对多关系:多对多关系实质两个表中,第一个表的一行可以与第二个表中的一到多个行相关联,同时,第二个表中的一行可以与第一个表中的一到多个行相关联。在大多数关系型数据库管理系统中,多对多关系通过在关系的两个表间增加第三个表来实现。把第三个表称之为连接表(Junction Table),连接表充当支持多对多关系的两个表之间的桥梁,多对多关系是逻辑而不是物理实现的。

                      

      DB——表(table)“一张表一个实体”

                                  例:

 

卡号 密码 余额
xxx xxx xxx
xxx xxx xxx
xxx xxx xxx

      DB:表查询数据库:show databases

        1.创建数据库:create database + 库名

        2.使用库:use + 库名

        3.删除库:drop database + 库名

    SQL:

      SQL的非过程性质:主要关心的是操作的结果,而由宿主语言决定如何处理操作。

      SQL语句:数据定义语言(DDL)

           数据查询语言(DQL)

           数据操作语言(DML)

           数据控制语言(DCL)

    管理数据库:

      在创建数据库时,数据库名在服务器中必须是唯一的,并且符合标示符规则;

     硬规则标示符规则:

      1.第一个字母必须是:Unicode标准3.0锁定义的字母;下划线(_)、at符号(@)或者数字符号(#): 例: t_

      2.后续字符可以是:Unicode标准3.0锁定义的字母;下划线(_)、at符号(@)或者数字符号(#):  例:f_

      3.标示符不嗯给你使所用RDBMS的保留字;

      4.不允许嵌入空格或其它特殊字符;

     潜规则:见名知意;

         连接数据库:新的数据库创建完毕后,为了在该数据库上执行SQL语句,需要连接到该数据上,连接到数据库用的语句:  USE  数据库名;

               在MySQL中,默认情况下,所有数据库均为不活动状态。使用上面的命令,可以激活并使用某个数据库。其后,就可以针对该数据库执行SQL语句;

         删除数据库:删除数据库的方法为:  DROP DATABASE  数据库名

     数据类型:

      整数数据类型:TINYINT/SMALLINT/MEDIUMINT/INT/BIGINT

      浮点数据类型:FLOAT/DOUBLE/DECIMAL(M,D)/NUMERIC  (注:M为总位数,D为小数位,M必须大于D)

      字符串数据类型:CHAR(N)/VARCHAR(N)

      二进制数据类型:TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB

      逻辑数据类型:BOOLEAN

      日期数据类型:YEAR/DATE/TIMESAMP/DATATIME

    管理表:

     创建表:基础SQL语法:CREATE TABLE<表名>(<列名><列的数据类型>[<列的约束>]);表名在一个数据库中必须是唯一的,并且符合标示符规则。列名在一个表内必须是唯一的,并且符合标示符规则;

        例:CREATE TABLE Friend (Name VARCHAR(50),PhoneNo VARCHAR(15));

         CREATE TABLE(表名前面加)t _ student“表名前面加t_”(f_name varchar(255),f_age int,f_gender tinyint);

     删除表:基础SQL语法:DROP TABLE<表名>;通过外键约束连接在一起的表不能被删除。在删除表之前,必须先删除约束。在删除表时,必须是表的所偶这或者对该表有管理员权限。

     复制表:在MySQL中,创建一个名为My_Friends的新表,该表是复制了Friend表的数据和结构(列、数据类型):CREATE TABLE My_Friends SELECT * FROM Friend;

         复制表的同时标的约束并不能复制,所以推荐使用CREATE TALE语句创建基本的列和数据类型,然后使用ALTER TABLE命令添加所有其它约束。

         如果只是复制表结构,不复制数据,只需要在WHERE子句中添加一个永远不等于true的条件即可:CREATE TABLE My_Friends SELECT * FkROM Friend WHERE 1=0;

     修改表:

      添加新列:ALTER TABLE Friend ADD Address VARCHAR(50);

      更改列:ALTER TABLE Friend CHANGE Phone Phone VARCHAR(11) DEFAULT( ' 不知道电话号码 ' );

      删除列:ALTER TABLE Friend DROP COLUMN PhoneNo;

 

    小结:DDL:创建:CREATE TABLE 表名(

              列名1  类型  约束,

              列名2  类型  约束,

              ...)

           删除:DROP TABLE 表名;

           修改表:ALTER TABLE 表名:增加列:add 新列名  类型  约束;

                          更改列:CHANGE  原列名  新列名  类型  约束;

            删除列:DROP COLUMN  列名;

 

posted on
2017-01-04 22:39 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/scxu28/p/6250496.html

你可能感兴趣的文章
Python入门:字符串的分片与索引、字符串的方法
查看>>
Linux基础命令之文件过滤及内容编辑处理(二)
查看>>
一个简单的小小记账本程序(java)
查看>>
无缝滚动js (手写通俗易懂)
查看>>
色彩對比分析
查看>>
五. 面向对象高级特性7. 泛型通配符和类型参数的范围
查看>>
hadoop开发库webhdfs使用介绍
查看>>
document对象(二)
查看>>
Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)
查看>>
PHP——0127加登录页面,加查询,加方法,加提示框
查看>>
日期工具类
查看>>
this
查看>>
自由群,外代数和泛包络代数
查看>>
Centos 7 下部署Django + uWSGI + Nginx
查看>>
MVC系列学习(三)-EF的延迟加载
查看>>
C++函数调用方式约定stdcall,cdecl,pascal,naked,thiscall,fastcall
查看>>
HDU 2846(Trie树)
查看>>
接口测试必备技能之入门到上手
查看>>
js排序算法02——插入排序
查看>>
数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)...
查看>>