数据库增删改查基本操作

一、增加(create add insert )
1,create操作库
create database 库名 新建库
create database 库名 character set 编码表

2,create 操作表结构
新建表:
create table 表名(
id int primary key auto_increment,
name varchar(20),
………….
);
primary key 主键约束(该列唯一值)
auto_increment 主键表自动拉长
add 加多字段 alter table 表名 add 列名 数据类型 约束

3,insert 操作表数据内容
insert into 表名(列名1,列名2,列名3)values(值1,值2,值3)
insert into 表名 (列名) values (值)
insert into 表名 values (全列值)
insert into 表名 (列名1,列名,列名) values (值1,值2,值3),(值1,值2,值3)

二、删除(drop delete truncate)
1,操作库
drop database 数据库名

2,操作表结构
drop table 表名 (删除的是整个表)
alter table 表名 drop 列名 删除列
3,操作表数据
delete from 表名 where 条件
delete from 表名 (未有where条件,删的是表中有着记录,逐行删除)
truncate table 表名 (先删除表,再次创下设表,等于删除全体表)

start transaction 开启事务 实践delete删除,rollback 事务回滚可找回
start transaction 开启事务 推行truncate删除,rollback 事务回滚不可找回

三、修改 (alter modify change rename
update)
1,操作库
use 库名:更改库

2,alter 修改表的构造
modify 修改约束类型 alter table 表名 modify tel varchar(50)
change 修改列名 alter table 表名 change 旧列名 新列名 数据类型 约束
rename 修改表名 alter table 旧表名 to 新表名
alter database 数据库名称 character set 编码表

3,update 操作表格数据
update 表名 set 列1 = 值1, 列2 = 值2 where 条件
where 条件:
id=6
id<>6 id 不等于6
id<=6
&& || ! and、or、not
id in(1,3,4,5)
is null为空,is not null 不为空
ifnull(值1,0);若为空,设置值为0;

四、查询(select show )
1,操作库
show databases
show create database 库名: 查看库编码表
select database(); 查看正在使用的库

2,操作表结构
show tables; 查询表
desc 表名; 查看表结构
show create table 表名; 查看表的编码

3,操作表数据
select 列名1,列名2 from 表名 查询钦赐列的数量
select * from 表名 查询全部列的数额

关键字:
as:重命名
like: 模糊查询 like%、%like%、like__

格式:
select 列名 as 别名 ,列名 as 别名… from 表名 where 条件1 group by 列名
having 条件2 order by 排序
表达: 条件1 会西施行过滤 -> 举办分组 -> 条件2 实行过滤

次第表达:select …要显得的内容.. from …表名.. where 条件…. group by
…分组的列 …having …分组后的规格… order by …排序?
select …5… from …1.. where …2.. group by ..3…having ..4… order by
…6.

询问排重:
select distinct 列名 from 表名 where 条件

 

五、聚合函数:
count 计算个数、sum 求和、 avg 平均值、max、 min

分组处理:group by

排序: order by 列名 asc|desc

六、多表设计
1、一对多
诸如 一个机关有多人,一位唯有二个机构
外键约束格式:
alter table 从表名称 add foreign key (外键列的称号) references
主表名称(主键)
创建表时候,直接创设主键约束
dept_id int,
foreign key (dept_id) references dept(id)
2、多对多
例如:贰个类型被三个程序猿写,一个技术员写四个门类
3、一对一
比方 壹位独有一份个人档案,叁个档案对应壹个人

七、数据备份及回复:
1,备份
mysqldump -u 客商名 -p 数据库名 > 磁盘SQL文件路线
mysqldump uroot -p zhangwu> G:\mybases2.sql
Enter password:123

2,恢复
主意一:创造数据库,导入数据
create database db1:
use db1;
source G://mybases2.sql

格局二:创立数据库,命令行中输入
create database db2:
退出数据库,在dos下输入
mysql -uroot -p db2 < G://mybases2.sql
Enter password:123

八、范式:
第一范式:1NF:数据库表的每一列都以不可分割的原子数据项
率先范式每一列不可再拆分,称为原子性。

其次范式:2NF:第二范式正是在首先范式的根底上具有列完全重视于主键列
其次范式的表征:
1) 一张表只描述一件工作。
2) 表中的每一列都统统信赖于主键

其三范式:3NF:全部列不借助于于别的非主键列,也正是在满意2NF的功底上,任何非主键列不得传递注重于主键。
所谓传递依赖,指的是假使存在”A → B →
C”的主宰涉及,则C传递正视于A。因而,满足第三范式的数据库表应该不设有如下重视关系:主键列
→ 非主键列x → 非主键列y。

演示:学生新闻表
学号 姓名 年龄 所在大学 高校地方

满足第二范式,不知足第三范式
存在传递的决定涉及:
学号?所在大学 ? 大学地方

拆分成两张表
学号 姓名 年龄 所在高校的数码(外键)
高校编号 所在高校 大学地点

三大范式小结:
范式 特点
1NF 原子性:表中每列不可再拆分。
2NF
不发生部分依赖,一张表只描述一件业务。白哦中的每一列是一心信赖于主键的。
3NF
不发出传递依赖,表中每一列都直接注重于主键。实际不是由此任何列直接信赖于主键。

相关文章