第9章 mysql
mysql介绍数据库系统:
数据库:文件夹
数据表:文件
表记录:一条数据
数据库管理软件
mysql: 开源
oracle
sqlserver
mysql :
服务端: mysqld
客户端: cmdphppython
数据库操作:
show databases; 显示所有数据库名称
create database database_name ;创建一个数据库
show create database database_name; 查看数据库的创建信息
use database_name; 切换数据库
alter database db_name 修改数据库的字符集
drop database db_name; 删除数据库
数据表操作:
1创建表:
create table table_name (
filed 字段类型 [完整性约束],
filed 字段类型 [完整性约束],
filed 字段类型 [完整性约束],
);
2 查看表
desc table_name;查看表结构
show tables; 是该数据库下所有的表名
show create table table_name ; 查看数据库的表创建信息
3 修改表:
>
>
>
> 4 删除表
drop table tab_name;
表记录操作:
1 增加记录:
insert tab_name (field1,field2....) values (values1,values2....) ,
(values1,values2....),
... ;
inserttab_name set field=value, field=value,..... ;
2 修改记录
update tab_name set field=value where 子句
3 删除表记录:
delete fromtab_namewhere 子句
清空表记录: 1delete from tab_name
2truncate tab_name (数据量大时推荐使用)
4 查询表记录(******)
select* from tab_name : 显示所有的记录的所有字段信息
select filed,filed2,..... from tab_name
where 子句
group by 分组 key:分组条件
having 子句: 过滤
order by
limit
查询 每一个省份的平均工资
select city,avg(salary) from emp group by city;
查询 平均工资大于8000的省份的名称
select city,avg(salary) from emp group by city having avg(salary) > 8000
多表查询:
内连接查询:
select * from emp inner join dep on emp.dep_id=dep.id;
左外连接查询:
select * from emp left join dep on emp.dep_id=dep.id;
完整性约束:
主键约束:
primary key :非空(not null )且 唯一 (unique)
外键约束(关联字段):
表关系:
表与表的关系(两张表)
一对多
将关联字段设置在多的表中
CREATE TABLEemp(
> name VARCHAR (20),
dep_id INT ,
FOREIGN KEY (dep_id) REFERENCES dep(id)
)
多对多
借助第三张表实现的
CREATETABLESTUDENT2TEACHER(
> studnet_id INT ,
teacher_id INT ,
FOREIGN KEY (studnet_id)REFERENCES student(id),
FOREIGN KEY (teacher_id)REFERENCES teacher(id),
)
一对一
将关联字段设为Unique
CREATE TABLEauthor(
> name VARCHAR (20),
authorDetial_id INT unique,
FOREIGN KEY (dep_id) REFERENCES dep(id)
)
页:
[1]