MySQL的基本操作
一. 数据库操作
crete database 数据库名字; //创建数据库
show databases; //查询数据库类
alter database [default] character set 编码方式;
//修改数据库编码
show create database 数据库名;
//查询某个数据库
drop database 数据库名字; //删除数据库
alter table 表名 engine=MyISAM; //修改引擎
二.数据库组成
show engines; //查看mysql支持的引擎 engines引擎
show variables like 'storage_engine'; //查看引擎
int() //整数类型
double() float() //浮点类型
double(a,b) //浮点表示精度
year() time() date() //日期与时间类型
char() varchar() //字符串类型 char长度不变 varchar可变
text() //存储大文本,文本类型
enum('男','女') //枚举类型 只能单选
属性名 set('值1','值2') //集合类型 值可以零个往上
bit() //二进制类型
三.创建数据表
use 数据库名; //进入当前数据库
show tables; //显示当前数据库内容
create [temporary] table 表名
(字段名+类型+[not null]+[default 默认值]+[auto_increment]
+[unique key|primary key]+[comment'字符串']+[外键定义]);
uSex enum('男','女') default '男'; //枚举单选
// comment'字符串' 注释
//[unique key|primary key] 唯一约束 和 主键约束
//[auto_increment]设置字段为自增,只有整数类型可以设置,1开始
//[not null] 非空 {
//[constraint 外键名(FK_aa) foreign key (外键字段名) references 另一个表名 另一个主键 ]--------->外键
//创建一个约束 constraint 名为。。 啥键 给谁}
//[check] 该字段的输入值范围
四.表格的操作
alter table 表名 dorp foreign key 外键名;
//删除外键,可以类似
character set utf8 not null; //设置字段格式
[no update{ cascade|set null|no action|restrict}]
[no delete{ cascade|set null|no action|restrict}]
// cascade 指定级联更新
// set null 更新或删除后 级联对应记录为空
// no action 不进行任何操作,不让删除
// restrict 拒绝主表更行或者修改外键的关联列
五.表格的修改
describe 表名; //查看表结构
alter table 源表名 rename [to] 新表名;
//修改表名
drop table 表名;
//删除表
alter table 表名 change 原字段名 新字段名 新数据类型;
//修改字段
alter table 表名 modify 字段名 新数据类型;
//只修改字段类型
alter table 表名 modify 字段名1 数据类型 first|after 字段2
//将字段1排列在字段2后
alter table 表名 add 字段名 数据类型 ~~~~;
//添加一个字段
alter table 表名 drop 字段名;
//删除一个字段
alter table 表名 engine=存储引擎;
//修改引擎
六.表的复制
新建表 select * from 源表 //将一表复制到另一表
create table 新建表 select * from 源表 where false; 、
//第一种法:将表的结构复制到另一表
create table tempuser like user; # 法二:复制user表的结构到tempuser表
create table 新建表 as(select 字段名1,字段名2 from 源表);
//复制user表中uname 和upsd两列到newuser表
create table newuser as(select uname,upsd from user); #复制两列数据
desc newuser;
drop table newuser,tempuser; //同时删除两表
r as(select uname,upsd from user); #复制两列数据
desc newuser;
drop table newuser,tempuser; //同时删除两表