Day06-mysql

2022-10-17,

 

数据库

进入数据库 mysql -u用户名 -p密码

数据库层次

  • 数据库的创建

create database 数据库的名 character set 字符集 collate 校对规则

  • 数据库的删除

drop database 数据库名

  • 数据库的修改

alter database 数据库 character set 字符集(utf8)

  • 数据库的查询

show databases; show create database 数据库的名字 select database();

  • 数据库的切换

use 数据库的名字

表层次

  • 表的创建:

create table 表名( ​列名 列的类型 列的约束, 列名 列的类型 列的约束 )

列的约束:

primary key: 主键约束:唯一不为空

primary(sid,age)联合主键:只生效一个

unique: 唯一约束:值可为空,可以加多个null, 一个表可以多个unique .

​not null: 非空约束

​自动增长: auto_increment

default:‘默认语句’   。 这里的语句会自动执行,无需数据填写

也可以写上null 。

  • 表的删除

drop table 表名

  • 表的修改

alter table 表名 (add, modify, change , drop) ​rename table 旧表名 to 新表名 ​

alter table 原表名 rename 新的表名

alter table 表名 character set 字符集

  • 查询表结构

show tables; 查询出所有的表

show create table 表名 : 表的创建语句, 表的定义 desc 表名  表的结构

 外键:

商品表和分类表数据通过外键category_cid相连。

外键作用进行多表数据关联。 多表关系中是存在主表从表的

 主表数据来源表/主键id所在表

例如分类表----是分类名称数据的来源表主键cid所在表

从表数据引用/外键所在表

例如商品表---引用了分类表数据外键category_cid所在表

外键特点

从表外键指向主表主键

从表外键的数据类型和长度必须和主表主键数据类型和长度 一致

声明外键约束:是为从表添加

格式:

alter table 从表 add  [constraint  外键名称]  foreign key (从表外键字段名) references 主表 (主表的主键);

 

1、 从表外键的数据类型和长度必须和主表主键数据类型和长度 一致

 

2、从表和主表为空或者数据必须完整

 

l删除外键约束:(了解,开发慎用) 

 

alter table 从表 drop foreign key 外键名称

添加多对多外键实例:

create table actor(
    aid int primary key,
    name varchar(30)
);
create table role(
    rid int primary key,
    name varchar(30)
);
create table actor_role(
arid int primary key ,
aid int,
rid int
)
alter table actor_role add foreign key(aid) references actor(aid);
alter table actor_role add foreign key (rid) references role(rid);

 

添加一对多外键实例:

create table province(
    id int primary key,
    name varchar(20),
    description varchar(20)
);
create table city(
    id int primary key,
    pid int ,
    name varchar(20),
    description varchar(20)
);
drop table city ;
alter table city add foreign key (pid) references province(id) ;

 

 

 

 

 

 

  • 表中数据的操作

插入: insert into 表名(列名,列名) values(值1,值2);

​删除: delete from 表名 [where 条件] ​

修改: update 表名 set 列名='值' ,列名='值' [where 条件]; ​

查询: select [distinct] * [列名1,列名2] from 表名 [where 条件]

  • 其他

as关键字: 别名 where条件后面:

关系运算符: > >= < <= != <> --

判断某一列是否为空: is null is not null

​in 在某范围内 ​between...and ​

逻辑运算符: and or not ​

模糊查询: like ​_ : 代表单个字符 ​%: 代表的是多个字符 ​

分组: group by ​ 分组之后条件过滤: having

​聚合函数: sum() ,avg() , count() ,max(), min() 排序: order by (asc 升序, desc 降序) ​

 

数据库的备份:

导出: mysqldump -uroot -p密码 目标库>f://aa.sql [导出文件路径]  会自动创建

导入:mysql -uroot -p密码 目标库<f:/sss.sql 【路径】 需要手动创建好一个数据库 然后导入到这个数据库。

《Day06-mysql.doc》

下载本文的Word格式文档,以方便收藏与打印。