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 ...
随机推荐
- 跨DLL操作fopen的返回值导致出错
在设置成/MD或/MDd不会导致出错 设置成/MT或/MTd的情况下会导致出错 看了CRT的实现,估计是因为fopen创建了CriticalSection来保护文件,但是在/MT的情况下,一个DLL里 ...
- CSS:如何清除a标签之间的默认留白间距
即使我们使用了类似 *{margin: 0;padding: 0;} 这样的代码重置了浏览器默认样式,也会发现类似<a>标签这种inline-block元素,它们之间也还存在着间距. de ...
- 初学python - 使用pip安装扩展库
cmd pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyMySQL - 使用清华镜像下载PyMySQL pip python包管理工 ...
- 6.iptables常用规则
开启ip段192.168.1.0/24端的80口 开启ip段211.123.16.123/24端ip段的80口 # iptables -I INPUT -p tcp --dport 80 -j DRO ...
- tcp/ip学习笔记(1)-基本概念
为什么会有tcp/ip 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样.计 ...
- jquery源码解析:pushStack,end,ready,eq详解
上一篇主要讲解了jQuery原型中最重要的方法init.接下来再讲一些比较常用的原型方法和属性 core_slice = [].slice, jQuery.fn = jQuery.prototype ...
- java类型与jdbc类型对应表
java.sql.Types 值 Java 类型 IBM DB2 Oracle Sybase SQL Informix IBM Content Manager BIGINT java.lang ...
- PyQt5(5)——加载资源文件
在实际中我们需要美化界面,就需要许多的自定义图片. 但是我们发现直接导入图像使用,等程序运行时会报错.???? 这就需要建立资源文件并且加载它们,程序就可以顺利运行了. 设计界面是如何加载资源文件呢? ...
- luogu4074 [WC2013]糖果公园(树上带修莫队)
link 题目大意:给一个树,树上每个点都有一种颜色,每个颜色都有一个收益 每次修改一个点上的颜色 或询问一条链上所有颜色第i次遇到颜色j可以获得w[i]*v[j]的价值,求链上价值和 题解:树上带修 ...
- js实现checkbox全选,全部选和反选效果
效果: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...