数据库
常见的数据库有哪些?
1.SQL
2.Oracle
3.DB2
…
什么是数据库?
数据库(DATABASE)是用于储存和管理数据的仓库.
数据库的特点
1.持久化存储数据
2.方便对数据进行储存和管理
3.使用了统一的方式操作数据库-----SQL.
SQL语言
概念:结构化查询语言
通用语法:
1.SQL可以单行或多行书写以分号结尾
2.用空格来增强可读性
3.SQL不区分大小写,但建议使用大写
分类:
1.DDL
数据定义语言
用来定义数据库对象:库,表,列等
关键字:create(创建),drop(删除),alter(改),show(查)
2.DML
数据操作语言
对数据库表中的数据进行增删改操作
关键字:insert(增),delete(删),alter(改)
3.DQL
数据查询语言
对数据库表中的数据进行查询
关键字:select(查)where(筛选)等
4.DCL
数据控制语言
用来定义数据库访问权限和安全级别以及创建用户
关键字:grant,revoke
1.DDL
数据库(DATABASE)
1.创建
默认创建: create database 数据库名;
如果不存在再创建: create database 数据库名 if not exists;
标准创建: create database 数据库名 character set 字符集(utf8);
2.删除
默认删除: drop database 数据库名;
如果存在就删除: drop database 数据库名 if exists;
3.修改
修改字符集: alter database 数据库名 character set 字符集(utf8);
4.查询
查询全部数据库: show databases;
查看数据库字符集: show create database 数据库名;
5.使用
使用数据库: use 数据库名;使用数据库
查询正在使用的数据库: select database();
表(table)
1.创建
创建表: create table 表名(列名1 数据类型1,列名2 数据类型2,列名3 数据类型3);
复制表: create table 新表名 like 被复制表名; 复制表
2.删除
删除表: drop table 表名;
若存再删除: drop table 表名 if exists;
3.修改
修改表名: alter table 表名 rename 新表名;
修改表的字符集: alter table 表名 character set 字符集(utf8);
添加新的一列: alter table 表名 add 新列名 新数据类型;
修改列名及数据类型: alter table 表名 change 列名 新列名 新数据类型;
修改数据类型: alter table 表名 modify 列名 新数据类型;
4.查询
查看数据库中的所有表: show tables;
查询这个表的列及数据结构: desc 表名;
2.DML
1.增加
insert into 表名 (列名1,列名2...列名n)values(值1,值2...值n);
直接添加: insert in 表名 values(值1,值2...值3);
多条数据添加: insert in 表名 values(值1,值2...值3),(值1,值2...值3),(值1,值2...值3);
2.删除
如果不加条件将删除表中全部内容: delete from 表名 [where条件];
删除表中所有的数据: truncate table 表名;
3.修改
如果不加条件将修改表中全部内容: updata 表名 set 列名1=值1,列名2=值2[where];
4.约束
<1> not null 非空
添加非空约束1: create table 表名(列名1 数据类型1,列名2 数据类型2,列名3 数据类型3 not null);
添加非空约束2: alter table 表名 modify 列名 数据类型 not null;
删除非空约束: alter table 表名 modify 列名 数据类型;
<2> unique 唯一
添加唯一约束1: create table 表名(列名1 数据类型1,列名2 数据类型2,列名3 数据类型3 unique);
添加唯一约束2: alter table 表名 modify 列名 数据类型 unique;
删除唯一约束: alter table 表名 drop index 列名 数据类型;
<3> primary key 主键约束(非空+唯一)
添加主键约束1: create table 表名(列名1 数据类型1,列名2 数据类型2,列名3 数据类型3 primary key);
添加主键约束2: alter table 表名 modify 列名 数据类型 primary key;
删除主键约束:alter table 表名 drop 列名 数据类型;(其实只删除了唯一,要想删除非空需要用modify再删一次)
自增
添加主键约束1: create table 表名(列名1 数据类型1,列名2 数据类型2,列名3 数据类型3 primary key auto_increment); 一般和主键一起使用
添加主键约束2: alter table 表名 modify 列名 数据类型 primary key auto_increment;一般和主键一起使用
删除自增: alter table 表名 modify 列名 数据类型primary key;
<4> foreign key 外键约束
创建时定义: create table 表名(列1 数据类型1,constraint [外键名称:自己随便起] foreign key 外键列 references 主表名称 主表列名 } );
alter table 表名 add constraint [外键名称:自己随便起] foreign key 外键列 references 主表名称 主表列名 ;
3.DQL
1.查询
查询表中制定列的数据: selsct 列1.列2 from 表名;
查询表中全部数据: select*from 表名;
2. 聚合函数
count()计算个数,一般为主键:如count(*)
sum()求和
avg()求平均值
max()求最大值
min()求最小值
3.筛选
select *from 表名 where 筛选条件; 分组前筛选
where后面不能跟聚合函数
4.分组
select*from 表名 group by 按列1分组;
select*from 表名 group by 按列1分组 having 筛选条件; 分组后筛选
having后可以跟聚合函数
5.排序
select*from 表名 order by 列1 asc升序/desc降序;
6.分页
select*from 表名 limit 起始页数=(目标页数-1)*每页行数,每页几行
4.DCL
数据控制语言
用来定义数据库访问权限和安全级别以及创建用户
关键字:grant,revoke