MySQL数据库基础操作
3.3.1创建和查看数据表
一、查看数据表
1.use onlinedb; -------------将数据库设为当前数据库 2.show tables; ---------------查看数据库中的表 3.create table users( uID int(11) PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID' uName varchar(30) NOT NULL, uPwd varchar(30) NOT NULL, uSex ENUM('男','女')DEFAUTE'男');----------创建数据库表 4.describe onlinedb users; -----------------查看表结构(describe 也可以是desc); 5.show create table 表名;------------不仅可以查看表的详细定义还可以查看默认储存引擎和和字符编码
3.3.2修改表
一、修改表名
1.alter table 原表名 rename [to] 新表名;
二、修改字段
1.alter table 表名 change 原字段名 新字段名 新数据类型; 2alter table 表名 modify 字段名 新数据类型;
三、修改字段排列顺序
1.alter table 表名 modify 字段名1数据类型 first\after 字段名2;
四、添加字段
1.alter table 表名 add 字段名 数据类型;
五、删除字段
1.alter table 表名 drop 字段名;
六、修改表的存储引擎
1.alter table 表名 enging=存储引擎名
3.3.3复制表
一、复制表结构和数据到新表
1.creater table 新表名select * from 源表名;
二、只复制表结构到新表
1.create table 新表名 select *from 源表名 where false; 2.cerate table 新表名 like 源表名;
三、复制表部分字段及数据到新表
1.create table 新表名 as(select 字段1,字段2,等等 from 源表名);
四、删除表
1.drop table 表名;
3.4.1表约束
一、primary key约束(主键约束,定义表中构成主键的一列或多列,且每个表只能由一个主键约束)
1.create 数据类型 primary key; ----------主键约束 eg(1):create table goods( gdID int primary key, gdName varchar(30) not null, gdPrice decimal(8,2)); eg(2):create table scarunfo ( gdID int, uID int, scNum int default 1 primary key(gdID,uID));---------------定义复合主键
二、not null 约束(非空约束,强制字段值不能为null,他不等同于0或空字符,不能跟任何值比较,只能起约束作用)
1.属性名 数据类型 not null,
eg: alter table Goods add gdCode varchar(30) not null after gbID;
三、default 约束(默认值约束,用于指定字段默认值,即记录表时,若字段未填入,则系统会将自动默认值填如)
1.属性名 数据类型 default 默认值
eg:alter table SCar modify scNum int default 1;--------------修改默认值是1
四、unique约束(唯一性约束,是指数据表中一列或一组列中只包含唯一值)
1.属性名 数据类型 unique
eg: create table users( uID int(11) primary key auto_increment comment '用户ID', uName varchar(30) not null unique,-----------定义为唯一约束 uPwd varchar(30) not null, uSex enum('男','女')default'男');
五、foreing key约束(外键约束,约束的实现不只在单表中进行,而是在表中的数据与另一个表中数据之间进行)
1.创建外键约束
1.constraing 外键名 foreing key(外键字段名) references 主表名(主键字段名) eg1: create table GoodsType ( tID int primary key,----------------标识该字段为主键 tName varchar(30) not null); eg2: create table goods ( gdID int primary key auto_increment,----------标识该字段为主键且自增 tID int not null, gdCode varchar(30) not null unique, gdName varchar(30) not null, gdPrice decimal(8,2), constraint FK_tID foreign key (tID) references GoodsType (tID));
2.外键约束的级联更新或删除;
conatraint 外键名 foreing key(外键字段名) references 主表名 (主键字段名) [on update { cascade | set null | no action | reserict } ] [on delect { cascade | set null | no action | reserict } ] eg: create table goods ( gdID int primary key auto_increment,---------------标识该字段为主键且自增 tID int not null, gdCode varchar(30) not null unique, gdName varchar(30) not null, gdPrice decimal(8,2), constraint FK_tID foreign key (tID) references GoodsType (tID) on update cascade on delete cascade);
3.外键约束的删除
Alter table 表名 drop foreign key 外键名; eg: alter table goods drop foreign key FK_tID;
3.5.1 插入数据
1.数据插入
insert into 表名[(字段列表)] values (值列表); eg: insert into GoodsType values(6,'运动'); eg:insert into user (uname,upwd) values ('张小山','123');
2.使用replace语句插入单条数据
replace into 表名[(字段列表)] values (值列表); eg :replace into user (uid,uname,upwd) values ('3','乐天天','111');
3.使用insert into语句插入多条数据
insert into 表名[(字段列表)] values(值列表1)[(值列表2),(值列表3),......(值列表n)]; eg : insert into user (uname,usex,upwd) values('郑霞','女','asd')('李竞','男','555')('朱小兰','女','123');
4.使用replace into语句插入多条数据
eg : replace into user (uname,usex,upwd) values(5,'郑立','男','qaz')(6,'李竞','男','666')(8,'朱小兰','女','456');
5.插入其它表的数据
insert into 目标数据表(字段列表1) select 字段列表2 from 源数据表 where 条件表达式; eg: insert into users(uname,upwd,usex) select uname,upwd,usex from user where uid>5;
6.insert 语句的其他语法格式
insert into 表名 set 字段名1 = 值1[,字段名2 = 值2,.......]; eg :insert into users set uname = '曲甜甜',upwd = '666',usex = '女';
3.5.2修改数据
update 表名 set 字段名1 = 值1,字段名2 =取值2,......,字段名n = 取值n;[where 条件表达式]; eg :update users set upwd = '888' where uname = '朱小兰';
3.5.3删除数据
1.使用delect语句删除数据
delect from 表名 [where 条件表达式]; eg :delect from users where uid = 4;
2.使用truncate 语句删除数据
truncate [table] 表名 eg: truncate user; 表对象名+_+列对象名+_