MySQL流程操作:
登录:(快捷键Windows+R)
mysql -u (用户名称)-p(密码)
创建数据库:
create database + 数据库名称;(以;作为结束标记)
选择一个数据库:
use + 数据库名称;(此时若显示"Database changed"即为成功)
创建表:
create table +表的名称(属性1 类型 完整性约束条件【可无】,属性2 类型 …,属性n 类型);
----> 完整性约束条件的说明:
primary key:(不为空 不能重复 且只有一个)表示当前属性为该表的主键 可区分不同的行记录。
foreign key:修饰的属性为该表的外键,表之间关联使用的键。
not null:表示属性不为空。
unique:表示属性值唯一。
auto-increment:(MySQL的特色)表示属性自增,自增类型为整形。
default :给属性设定默认值。
----> 表的说明:
行:元组
列:属性
阈值:属性的取值范围
----> 创建表的原则----范式,一般范式有以下几种:
第一范式:1NF 每列保持原子性
第二范式:2NF非主属性完全依赖于主键
第三范式:3NF属性不依赖与其他非主属性(一般都是第三范式)
BC范式:一个表只能有一个候选键(即不重复的属性)
第四范式
修改表的名称:
alter table 旧表名称 rename 新表名称;
查看表的详细结构:
show create table +表的名称;
查看表的结构:
desc+表的名称;
只修改表的属性的数据类型:
alter table 表名 modify+ 属性名+新类型;
同时修改表的属性名和数据类型:
alter table +表名 change +旧属性名+新属性名+新数据类型;
增加字段:
alter table +表名 add+ 属性名 +数据类型 +(完整性约束条件)+first/after某个属性名;
删除字段:
alter table 表名+drop 属性名;
修改字段位置:
alter table 表名 modify 属性名 类型 first/after +某个属性名;
删除表的外键约束:
alter table 表名 drop foreign key 属性名;
删除表:
drop table 表名;(单表)
先删子表,再删父表(联表)
插入数据:
insert into 表名 values(,,,),(,,,);
若数据为字符类型则需要用‘ ’,插入完可通过 select* from表名;查看表。
更新数据:
update 表名 set 属性1=…,属性2=… where+条件;
查询数据:
select+(*:代表查询全部)(还可+某个属性)
—>where +条件;(不能与group by同时使用 得用having+筛选条件)
where后的条件的几种关键字:
关键字in:表示范围(与between and 关键字用法所表示的含义一样);
关键字like:当条件为完整字符串时则等价于‘=’(‘_’只表示一个字符‘%’表示字符串)
关键字空值:属性名+is null;
关键字and和or;
关键字limit off,len:off表示从第几位开始;len表示共几位
—>group by+属性:表示按某个属性分组
—>order by +属性:表示按照某个属性排序(其中+ASC 是正常默认排序+DESC是相反顺序排序)
连接查询:
外连接查询(可查出相同字段相等时的数据):select 属性1,2…from 表1,2…where+两表连接条件;
内连接查询(字段相同时取值不等):select 属性1,2…from 表1,2…left join(左连接)/right join(右连接查询)on +连接条件;
复合连接查询:select 属性1,2,…from 表1,2…where +条件 and+条件;
子查询:
select 属性 from 表 where 属性+关键字(select 属性 from 某个表);
关键字:in,exists,any,all
常用函数:
count(属性名)表示计数;sum()表示总和;avg()表示平均;max()表示最大值;min()表示最小值;cast函数:用于数据类型的转换一般用法是:cast(字段名+as+转换类型);dec函数:dec(总位数,小数点后保留位数)
删除语句:
delete from 表名 where +条件;
查询表的详细结构(也可以查看表的字段名、字段的数据类型、完整性约束条件、表的默认存储引擎和字符编码、数据库的默认编码等信息):
show create table +表名;
改变编码形式:
法1:(最方便)使用char 或者varchar换成nchar或nvarchar;
法2:建表时在属性类型后边加一个character set utf8;
法3:建完表后执行语句:alter table 表名modify…character set utf8;
前三种方法都是只改变一个属性的编码形式;
法4:(改变整张表的编码形式用于建表时)create table 表名()charset=utf8;
存储引擎engine(表的类型):
InnoDB:.ibd表的数据结构和表的索引;.frm表的结构;
myIsam:.frm表的结构;.myd表的数据;.myi表的索引;
memory:存储内存中的一种类型;