数据库
1.创建数据库 demo
create database demo default character
set utf8 collate utf8_general_ci;
2.删除数据库 demo
drop database demo;
3.查看数据库
show databases;
4.选中数据库
use demo;
表
表:类
表的一行数据:对象
public class User{
private int id;
private String name;
private int age;
}
1.创建一张表
create table user(
id int auto_increment primary key,
name varchar(10) not null default "张三",
age int
);
2.删除一张表
drop table user;
3.查看表名
show tables;
4.查看表结构
desc user;
5.插入user表中 插入一条记录 name=”张三” age=22
insert into user(name,age) values("张三",22);
6.查询数据
select * from user;
7.修改 把张三的年纪改成3
update user set age=3 where name="张三";
8.删除
delete from user where id=6;
表结构
对表结构进行操作:
1.新增一个字段sex varchar(2)
alter table user add sex varchar(2);
2.删除一个字段sex
alter table user drop sex;
3.修改一个字段sex varchar(2) — gender varchar(5)
alter table user change sex gender varchar(5);
索引:
1.添加索引
alter table user add index in_name(name);
create index in_name on user(name);
2.删除索引
alter table user drop index in_name;
drop index in_name on user;
外键
将表中的一个字段设置为外键(从表),与其他表的主键建立
约束关系(主表),此外键被主表中的主键所约束
1.给表中的字段设置外键
alter table user add company_id int;
alter table user add foreign key(company_id) references company(id);
一旦两张表建立了主外键约束关系,那么他们就有了一对多关系
有外键的表是从表,约束此外键的主键所在的表是主表。
主表是一,从表是多。
多对多关系:
通过建立第三张表来实现两张表的多对多关系
事务:将多条SQL作为一个整体,要么全部执行,要么一条都不执行
1.原子性
2.一致性
3.隔离性
4.持久性
use house;
create table sys_user(
uid int auto_increment primary key,
uName varchar(20),
uPassWord varchar(20)
);
create table hos_district(
did int auto_increment primary key,
dName varchar(20)
);
create table hos_street(
sid int auto_increment primary key,
sName varchar(20),
sDid int
);
create table hos_type(
hTid int auto_increment primary key,
htName varchar(20)
);
create table hos_house(
hMid int auto_increment primary key,
udi int,
sid int,
hTid int,
price decimal(10,3),
topic varchar(20),
contents varchar(60)
);
查询:连接:
1.内连接
select * from mess inner join user where mess.user_id = `user`.id;
2.外连接:
左连接:左表所有和右表满足条件的数据
select * from mess left join user on `user`.id = 1;
右连接:右表所有和左表满足条件的数据
select * from mess right join user on `user`.id = 1;
事务
事务:防止数据错误。
update zhangsan set count = count - 500;
update lisi set count = count + 500;
1.原子性 2.一致性 3.隔离性 4.持久性
针对不同的用户,选择性的显示一些数据
员工不能看到薪资,管理层可以看到
视图
为不同的用户创建不同的视图,视图允许不同的用户以不同的方式
查看同一张的数据,视图是一张虚拟的表,数据库中所占的空间是
很小
创建视图:
create view view_common as select name,age from info;
create view view_all as select * from info;
使用视图:和查询表是一样的
select * from view_common;
select * from view_all;
删除视图:和删除表是一样的
drop view view_common;
drop view view_all;
触发器的分类:
1.前触发器:在更新或者插入前进行操作
2.后触发器:在更新或者插入,删除运行后操作
3.删除前触发器:在删除之前进行操作
4.instedof触发器:对复杂的视图执行插入,更新或者删除操作
创建触发器:
create trigger t_afterinsert_on_tb1
after insert on tb1
for each row
begin
insert into tb2(id) values(new.id);
end;
create trigger t_afterdelete_on_tb1
after delete on tb1
for each row
begin
delete from tb2 where tb2.id = old.id;
end;
如何使用存储过程:
1.创建存储过程
create procedure spl(in p int)
begin
declare v1 int;
set v1 = p;
insert into tb1(id) values(v1);
end;
2.调用存储过程