MySql数据库与JDBC编程
JDBC -- Java Database Connectivity,即Java数据库连接,通过使用JDBC就可以使用同一种API访问不同的数据库
SQL语句基础(SQL结构化查询语言)
能完成的任务:
在数据库中检索信息
对数据库信息进行更新
改变数据库的结构
更改系统的安全设置
增加或收回用户对数据库和表的许可权限
SQL语句类型:
查询语句:由select关键字完成
DML:数据操作语言语句:由insert update delete三个语句
DDL:数据定义语言:create alter drop truncate
DCL:数据控制语言:grant revoke
事物控制语言:commit rollback savepoint
基本命令:
create database [if not exists] 数据库名
drop database 数据库名
use 数据库名----进入指定数据库
show tables ---进入数据库后查询数据库包含的表
desc 表名 --- 查看指定数据表的表结构
create table [模式名] 表名(列定义,列定义);
使用子查询建表:
create table [模式名]表名(列定义)as subquery
eg. create table hehe
as
select * from user_info ; ( 执行这条语句后,hehe表和user_info表完全一样)
修改表结构的语法:
alter table 表名
add
{
列定义
};
add增加列定义,modify 修改列定义, drop 删除列定义, rename 重命名表名, change 修改列名
删除表
drop table 表名;
rruncate 表名;一次性删除全部记录
数据库约束
NOT NULL:非空约束,确保指定列不能为空,只能作为列级约束
建表时为指定列指定非空约束
使用alter table 修改表时增加,删除非空约束
null 删除非空约束,not null 指定非空约束
UNIQUE:唯一约束,保证指定列或指定列组合不允许出现重复值,数据库中null != null (表级约束和列级约束)
建表时加入 unique 列级约束
unique(列名)表级约束
constraint 约束名 unique(列名,列名,,,)
修改表结构时:通过add关键字增加唯一约束,add unique(列名, 列名,,,)
modify修改表时增加唯一约束
修改表结构时:drop index 约束名,删除约束
PRIMARY KEY:主键约束,相当于非空约束+唯一约束(可以使用列级语法和表级语法)
建表时创建主键约束,使用列级约束语法 加上primary key
建表时创建主键约束,使用表级约束语法 constraint 主键约束名 primary key (列名) ---主键约束名对mysql无效
建表时创建主键约束,多列作为主键只能使用表级语法 primary key(多个列名)
删除主键约束,在alter table 表名 后 drop primary key;
可以通过 add primary key(表名,表名,。,)和modify 实现
指定某列具有自增;auto_increament
FOREIGN KEY:外键约束主要用于保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段,或者两个表的两个字段之间的参照关系
当主表记录被从表参照时,主表记录不允许被删除,必须先把从表里参照该记录的所有记录删除完后才能删除主表的记录,或者级联删除从表中的所有参照该记录的从表记录
从表外键参照只能是从表主键列或者唯一键列(从表外键列的值必须在主表被参照列的值的范围内
外键通常用于定义两个实体间一对多,或一对一的关联关系:例子--一个老师对应多个学生,但每个学生只有一个老师,学生添加外键
外键的建立一样可以使用列级约束语法和表级语法(对单独的数据列建立外键,列级语法就可以,如果要对多列组合创建外键或指定外键名,必须要使用表级约束语法)
建表时 references 主表名(列名);(mysql中无效)(列级约束语法)
建表时 foreign key (列名从表的) references 主表名(列名);
constraint 外间名 foreign key (列名从表) references 主表名(列名);
建立多列组合的外键约束
foreigne key (从表列名 , 列名)references 主表名(列名,列名)
删除外键约束:在修改表,drop foreign key 外键名;
增加外键约束:在修改表,add foreign key(列名,列名,,) references 主表名(列名,列名,,,);
自关联外键约束的添加:参照自身 建表时 foreigne key (列名) references 本表名(列名);
当要删除主表记录时,从表记录也会删除,在建立外键约束时添加 on delete cascade \ on delete set null 第一种级联删除从表,第二种是删除主表时从表参照主表的记录设为null
CHECK:建表时指定check约束 check(逻辑表达式)
索引
好处加速查询速度--类似书籍目录
坏处数据库变化时需要数据库系统维护索引有一定的系统开销,索引信息占据一定的磁盘空间
创建索引:create index index_name
on table_name(column,,);
删除索引:drop index 索引名 on 表名
视图:一个或多个数据表中的逻辑显示
好处:限制对数据的访问,查询变简单,提供对相同数据的不同显示
实质是一条被命名的SQL语句
语法:create or replace view 视图名
as
subquery
[with check option]指定不允许修改该视图的数据
删除:drop view 视图名
MySql数据库与JDBC编程的更多相关文章
- 第十三章.MySQL数据库与JDBC编程(下)
JDBC的典型用法: JDBC4.2常用接口和类简介: DriverManager:用于管理JDBC驱动的服务类,程序中使用该类的主要功能是获取Connection对象,该类包含如下方法: publi ...
- MySql数据库与JDBC编程二
DML语法语句:主要操作数据表中的数据,完成插入新数据,修改已有数据,删除不要的数据的任务 1,insert into 语句 用于向指定表插入数据,一次只能插入一条记录:insert into tab ...
- MySql数据库与JDBC编程三
多表连接查询(两种规范 SQL92和SQL99) SQL92规范: 等值连接,非等值连接,外连接,广义笛卡儿积连接 多个表都放在from后,,连接条件放在where后,条件要求两列值相等,则为等值连接 ...
- mysql数据库和JDBC学习
数据库概念: 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. ---------数据库服务器,mysql(管理) 数据库服务器---->N多库-- ...
- MySQL 数据库应用程序编程
普通用户使用客户端应用程序(Client Application)和服务器程序(Server Application)通信以取得服务, 而服务器程序通常要和数据库服务器通信以取得数据存取服务, 这时就 ...
- jmeter测试mysql数据库之JDBC请求
所有jmeter基本组件功能本文不做介绍.jmeter要链接mysql数据库,首先得下载mysql jdbc驱动包(注:驱动包的版本一定要与你数据库的版本匹配,驱动版本低于mysql版本有可能会导致连 ...
- Java基础之MySQL数据库与JDBC
一.数据库 DBMS 数据库管理系统 是由多个程序构成的专门用来管理大量数据的计算机系统 Server 提供数据存储.检索.计算等服务的网络程序+系统服务 Notifier ...
- 数据库:JDBC编程
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于运行SQL语句的Java API.能够为多种关系数据库提供统一訪问.它由一组用Java语言编写的类和接口 ...
- android连接Mysql数据库之JDBC方式
一.创建一个数据库和若干表,并导入相关信息.这里以我之前使用的一个图书系统的数据库为例子. 首先假设已经安装并配置好Mysql.(建议大家安装WAMP,也就是安装完这个,就相当于安装了Mysql,PH ...
随机推荐
- Gamma Correction of OIIO
\apiitem{"oiio:ColorSpace" : string} The name of the color space of the color channels. ...
- RabbitMq初探——Hello World
HelloWorld 前言 这里我们弱化broker内部构造.将整体分为三部分. P:producer.生产者. C:Consumer.消费者. queue:队列. 后面的代码都依赖于 the php ...
- Java面向对象之异常(throw与throws)
一.基础概念 1.throw和throws的区别: 位置不同:throws用在函数上,后面跟的是异常类,可以跟多个. throw用在函数内,后面跟的是异常对象. 功能不同:throws用来声明异常,让 ...
- php对象在内存中存在形式
1,php中基本数据类型存在于栈区,对象这种数据类型存在于堆区: 比如如下代码,两个指针指向同一个对象,其输出相同 <?php /** * Created by PhpStorm. * User ...
- ListView ,GridView 通用适配器
前言 接近半年的时间没有写博客了,今年公司的项目有点多,比较忙,没时间写,这是其一.其次是,这半年来,有时间的时候,我都会看看自己以前写的博客,也许是以前刚刚写博客,经验不足,感觉写出来的博客质量很不 ...
- NSCharacterSet 关于字符串编码
此文转自:http://nshipster.cn/nscharacterset/ 只为个人为了查找问题方便才复制过来的....... 正如之前提前过的,基础类库(Foundation)拥有最好的.功能 ...
- maven初步了解
目标:创建一个父maven项目,有两个子项目分别为serverCenter,dbConnector. 建议:全程不要导入Jar包,全部使用maven依赖的方式导入包. 1.创建maven项目 这个创建 ...
- 基于Java软引用机制最大使用JVM堆内存并杜绝OutOfMemory
题记:说好的坚持一周两篇文章在无数琐事和自己的懒惰下没有做好,在此表达一下对自己的不满并对有严格执行力的人深表敬意!!!! -------------------------------------- ...
- Maven依赖的JAR包下载慢?赶紧看过来
相信许多JAVA开发者在日常工作中时常会碰到这种情况,那就是编译Maven工程时,工程所依赖的jar包文件下载非常慢,甚至经常出现下载不成功的问题,今天,小编就给大家讲讲如何提升Maven依赖包的下载 ...
- 斐讯K2P配置文件破解笔记
手上有一个斐讯K2P路由器,刷机前我想把原机带的固件备份出来.搜到恩山A大开启telnet.固件备份的教程,里面提到了配置文件破解的方法,心血来潮试了一下,发现算出的密码不能解密,一直报"b ...