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