Mysql 数据库之高级操作

一箫一剑平生意,负尽狂名十五年。这篇文章主要讲述Mysql 数据库之高级操作相关的知识,希望能为你提供帮助。
数据表高级操作准备工作:

create database CLASS;
use CLASS;

create table TEST (id int not null,name char(20)not null,cardid varchar(18) not null unique key,primary key (id));

insert into TEST(id,name,cardid) values (1,zhangsan,123123);

insert into TEST(id,name,cardid) values (2,lisi,1231231);

insert into TEST(id,name,cardid) values (3,wangwu,12312312);
select * from TEST;

1.克隆表,将数据表的数据记录生成到新的表中
方法一:
create table test01 like ky08; #通过like方法,复制ky08表结构生成test01 表
insert into test01 select * from ky08;

方法二:
create table test02 (select * from ky08) ;

show create table test02\\G#获取数据表的表结构、索引等信息
select * from test02;

CREATE TABLE 新表 (SELECT * FROM 旧表)
这种方法会将oldtable中所有的内容都拷贝过来不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。



2.清空表,删除表内的所有数据
delete from test01;
#delete清空表后,返回的结果内有删除的记录条目; delete工作时是一行一行的删除记
录数据的; 如果表中有自增长字段,使用delete from删除所有记录后,再次新添加的记
录会从原来最大的记录id 后面继续自增写入记录。

truncate table test01;
#truncate清空表后,没有返回被删除的条目: truncate 工作时是将表结构按原样重新
建立,因此在速度上truncate会比delete清空表快; 使用truncate table清空表内数
据后,id会从1开始重新记录。


【Mysql 数据库之高级操作】
3.创建临时表
?      ?临时表创建成功之后,使用show tables命令是看不到创建的临时表的,临时表会在连接退出后被销毁。??
    ??如果在退出连接之前,也可以可执行增删改查等操作,比如使用drop table语句手动直接删除临时表。??
create temporary table 表名(字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);

例:
create temporary table test03(id int(4) zerofill primary key auto_increment,name varchar(10) not null,cardid int (18) not null unique key,hobby varchar (50));

insert into test03 values (1,zhangsan,123456,running);

select * from test03;
show tables;

quit
select * from test03;



4.创建外键约束,保证数据的完整性和一致性 。
???外键的定义???:如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。??
主键表和外键表的理解:
(1)以公共关键字作主键的表为主键表(父表、主表)
(2)以公共关键字作外键的表为外键表(从表、外表)

注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具
备相同的数据类型、字符长度和约束。

#创建主表profession
create table profession (pid int(4) , proname varchar (50)) ;

#创建从表student
create table student (id int(4) primary key auto_increment,name varchar(10),age int(3) ,proid int(4));

#为主表profession 添加一个主键约束。主键名建议以“PK_”开头。
alter table profession add constraint PK_pid primary key (pid) ;

#为从表student 表添加外键,并将student 表的proid 字段和profession 表的pid 字段建立外键关联。外键名建议以“FK_”开头。
alter table student add constraint FK_pro foreign key (proid) references profession (pid) ;

desc student;


创建外键约束后操作示例:
例:添加数据记录
insert into TEST05 values (1,zhangsan,20,1);
insert into TEST04 values (1,sleep);
insert into TEST05 values (1,zhangsan,20,1);

例:删除表格
drop table TEST04;
drop table TEST05;
drop table TEST04;



#查看和删除外键约束:
show create table student ;
desc student;
alter table student drop foreign key FK_pro;
alter table student drop key FK_pro;

mysql中6种常见的约束:
主键约束(primary key)
外键约束( foreign key)
非空约束(not null )
唯一性约束(unique [

    推荐阅读