一、数据库简单介绍
1、 按照数据库的发展时间顺序,主要出现了以下类型数据库系统:
网状型数据库
层次型数据库
关系型数据库
面向对象数据库
上面4中数据库系统中,关系型数据库使用最为广泛。面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005、Oracle10g等都开始增加面向对象的特性。
二、常用基本SQL语句/语法
标准的SQL语句通常划分为以下类型:
DQL:主要由于select关键字完成,查询语句是SQL语句中最复杂,功能最丰富的语句。
DML:(Data Munipulation Language,数据操作语言)语句,这组DML语句修改后数据将保持较好的一致性;操作表的语句,如插入、修改、删除等;
DDL:(Data Definition Language,数据定义语言)语句,创建库,表,修改库,表,删除数据库,表,操作数据对象的语言,有create、alter、drop。
DCL:(Data Control Language,数据控制语言)语句,主要有grant、revoke语句。
事务控制语句:主要有commit、rollback和savepoint三个关键字完成。
# 数据库
创建 create database 数据库名 character set 编码 collate 校对规则
删除 drop database 数据库名
修改 alter database 数据库名 character set 编码 collate 校对规则
查看 查看所有:show databases;
查看数据库:show create database 数据库名;
# 数据库表
##创建:
create table 表名(
字段 类型(长度) 约束,
字段 类型(长度) 约束
);
类型
字符相关:varchar()/char() :varchar 长度可变;char:长度不可变(效率高)
数值: int bigint(long) double float
bit: (boolean)
日期: date, time, datatime, timestamp(默认取当前系统时间)
BLOB, text
约束(单表)
主键:(默认唯一非空)
primary key, 自动增长 auto_increment(MySQL)
唯一:代表值唯一的 unique
非空:not null
##删除:
drop table 表名;
Drop与truncate的区别
drop table users;
drop删除表
会删除表结构,表对象将不存在数据中;数据也不会存在;表内的对象也不存在,如:索引、视图、约束;
truncate删除表
truncate都被当成DDL出来,truncate的作用就是删除该表里的全部数据,保留表结构。相当于DDL中的delete语句,
但是truncate比delete语句的速度要快得多。但是truncate不能带条件删除指定数据,只会删除所有的数据。如果删除的表有外键,删除的速度类似于delete。但新版本的MySQL中truncate的速度比delete速度快。
##修改:
alter table 表名 add 新字段 添加字段
添加单列 alter table user add tel varchar(11) default ‘02012345678’;
添加多列
alter table user
add (
photo blob,
birthday date
);
alter table 表名 modify 字段 修改类型, 约束
修改tel列
alter table user modify tel varchar(15) default ‘02087654321’;
修改tel列的位置,在第一列显示
alter table user modify tel varchar(15) default '02087654321' first;
修改tel列的位置,在指定列之后显示
alter table user modify tel varchar(15) default '02087654321' after age;
注意:alter modify不支持一次修改多个列,但是Oracle支持多列修改
但是MySQL可以通过多个modify的方式完成:
alter table user
modify tel varchar(15) default '02087654321' first,
modify name varchar(20) after tel;
alter table 表名 change 修改字段名称
##字段重命名
alter table users change name u_name varchar(10);
alter table users change sex u_sex varchar(10) after u_name;
如果需要改变列名建议使用change,如果需要改变数据类型和显示位置可以使用modify
alter table 表名 drop 删除字段
alter table user drop photo;
##表重命名
alter table user rename to users;
##查看:
所有查:show tables;
描述:desc 表名
show create table 表名
#操作数据(CRUD)
##插入数据:
insert into 表名 (字段1,....) values (值1, ....);
insert into 表名 values (值,....);
##修改数据:
update 表名 set 字段=值,... [where]
##删除数据:
delete from 表名 [where]
truncate 表名
区别: truncate删除整个表,创建一个新表;delete 一条条删除
##查询:
select * from 表名 [where]