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 视图名