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 【路径】 需要手动创建好一个数据库 然后导入到这个数据库。
上一篇: 高级查询(一)
推荐阅读