关系型数据库:反映了实体和实体之间的关系
DDL: 数据库定义语言 create alter drop
DML:数据库操纵语言 insert delete update
DCL:数据库控制语言 grant if
DQL:数据库查询语言 select 2.3.SQL的特点
非过程性的语言:一条语句就会有一个运行的结果. 2.4.使用SQL 2.4.1使用SQL操作数据库(对数据库的CRUD的操作)
*创建数据库:
create datebase 库名 [character set 字符集 collate 字符集校对];
*查看数据库:
查看数据库服务器中所有的数据库:
show databases
查看某个数据库的定义信息:
show create database 数据库名
查看当前正在使用的数据库信息
select database()
*删除数据库
drop database 数据库名;
*修改数据库
修改数据库修改的是数据库的字符集和校对规则
*切换数据库
use 库名;
2.4.2使用SQL操作数据库中的表
2.4.2.1创建表
*语法:
* create table 表名 (
字段名 类型(长度) 约束,
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);
*数据类型:
* Java类型: MySQL:
byte/short/int/long tinyint/smallint/int/bigint
String char/varchar
* 区别?char是固定长度的字符串,varchar可变长度的字符串.
* char(8) 和 varchar(8)
* 如果插入一个字符串hello 插入到char 那么 插入hello .插入到varchar中 插入hello
float float
double double
BigDemal decimal
boolean bit
Date date/time/datetime/timestamp
* datetime和timestamp都是既有日期又有时间的日期类型
* 区别? datetime需要使用外部传入的日期.如果没传这个值就是Null.
timestamp会使用系统当前的时间作为这个值的默认值.
文本文件 text
二级制文件 BLOB
***** Oralce使用CLOB/BLOB ***** MYSQL中除了字符串类型需要设置长度其他的类型都有默认长度.
*约束:
单表约束:
主键约束:primary key(默认唯一非空)
唯一约束:unique
非空约束:not null
注意:varchar的长度最好是8的整数倍(最小
2.4.2.2 表的查看
*查看数据库中所有表
show tables;
*查看表结构
desc 表名;
2.4.2.3表的删除
drop table 表名;
2.4.2.4表的修改 *修改表添加列: alter table 表名 add 列名 类型(长度) 约束;
alter table employee add image varchar(50); *修改表删除列: alter table 表名 drop 列名;
alter table employee drop job; *修改表的列的类型长度及约束: alter table 表名 modify 列名 类型(长度) 约束;
alter table employee modify image varchar(80) not null; *修改表的列名 alter table 表名 change 旧列名 新列名 类型(长度) 约束;
alter table employee change image eimage varchar(60); *修改表名 rename table 旧表名 to 新表名;
rename table employee to user; *修改表的字符集: alter table 表名character set 字符集;
alter table user character set gbk;