Day06-mysql

 

数据库

进入数据库 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 【路径】 需要手动创建好一个数据库 然后导入到这个数据库。

posted @ 2019-08-18 22:59  呆code  阅读(196)  评论(0编辑  收藏  举报