您的位置:新葡亰496net > 网络数据库 > 数据库相关,mysql复制表以及复制数据库

数据库相关,mysql复制表以及复制数据库

发布时间:2019-06-16 03:55编辑:网络数据库浏览(168)

    (一)将旧表复制到新表

    本文给大家享受了几许种复制表结构、表数据的言传身教介绍,具体详细的情况请看下文吧。

    CREATE TABLE EMP1 AS SELECT * FROM EMP WHERE EMPNO=1

    0、复制表结构及数据到新表
    CREATE TABLE 新表 SELECT * FROM 旧表
    这种方法会将oldtable中享有的内容都拷贝过来,当然大家能够用delete from newtable;来删除。
    而是这种办法的叁个最不佳的地点正是新表中从不了旧表的primary key、Extra(auto_increment)等质量。须要和睦用"alter"加多,而且便于搞错。

    1、操作某数据库 use 数据库名称,然后能够操作该数据库下的某张表

    1、CREATE TABLE新表 SELECT* FROM旧表;

    1、复制表结构及数码到新表

    SELECT * INTO NEW_TABLE FROM EMP WHERE EMPNO=1   (IF NEW_TABLE IS EXIST ) 

     

    2、$res=mysql_query($sql); 该语句假若用在卷入的函数体里,
    则不用传入首个参数$conn来内定连接,那样本领利用到该函数体外面已开拓的连日;
    mysql_query() 向与钦赐的连年标记符关联的服务器中的当前移动
    数据库发送一条查询。尽管未有一点名 link_identifier,则采取上一
    个展开的一而再。要是未有展开的连天,本函数会尝试无参数调用
    mysql_connect() 函数来确立三个连连并采取之。查询结果会被缓存。

    该语句只是复制表结构以及数额,它不会复制与表关联的其他数据库对象,如索引,主键约束,外键约束,触发器等。

    CREATE TABLE 新表SELECT * FROM 旧表

     

     

    3,数据库查询
    清空数据表,并让自增的id从1开头 truncate table sharon

     

    这种方法会将oldtable中存有的从头到尾的经过都拷贝过来,当然大家能够用delete from newtable;来删除。

    1.create database name; //成立数据库 (create 内部命令)


    求差集
    SELECT hotelcode FROM 0hotelone WHERE hotelno =1 AND hotelcode NOT
    IN (SELECT hotelcode FROM 0hotel_freedom WHERE hno =1);
    轻便易行询问
    SELECT * FROM `0hotelone` WHERE hotelno=1 and hotelcode=3702;
    分组查询
    SELECT hotelcode , hno FROM `0hotel_freedom` WHERE hno=37 group by hotelcode;
    数据库操作语句
    查阅当前存在的数据库show databases;
    创建数据库create database 数据库名称;
    翻开数据库的始建语句:show create database 数据库名称(已创立的);
    剔除数据库Drop database 数据库名称;
    修改数据库新闻Alter database 数据库名称 修改命令;
    修改数据库名称:轻松的能够一贯退换目录名;
    将数据库内容总体导出,新建一个数据库将数据导入,删除旧数据库;
    开创八个新数据库,将就数据库内的表,都活动(重命名)到新数据库内,删除旧数据库。

    1. CREATE TABLE if not exists new_table

    2. SELECT col1, col2, col3

    3. FROM

    4. existing_table

    5. WHERE

    6. conditions;

    只是这种艺术的二个最不好的地方正是新表中并未有了旧表的primary key、Extra(auto_increment)等属性。须要自身用"alter"加多,而且轻巧搞错。

      mysql>create  database  ;

     

    创制表(创设前先选拔数据库)
    Create table tbl_name [列结构][表选项]
    先深入分析必要保留的实业数据有所怎么样属性,这个属性应该什么保存。

    2、MySQL 数据库不帮忙 SELECT ... INTO 语句,但支撑 INSERT INTO ... SELECT 

    2、只复制表结构到新表

    2.use databasename; //采纳数据库 (use内部命令)

     

    MyISAM与InnoDB是mysql前段时间可比常用的多个数据仓库储存款和储蓄引擎,MyISAM与InnoDB的主要性的分裂点在于质量和作业调整上。
    MyISAM:MyISAM是MySQL5.5在此以前版本暗中认可的数据仓库储存款和储蓄引擎。MYISAM提供便捷存款和储蓄和探求,以及全文字笔迹查验索才具,适合数据饭店等查询频仍的选择。但不援助工作、也不援助外键。MyISAM格式的二个要害缺陷正是无法在表损坏后出山小草数据。
    InnoDB:InnoDB是MySQL5.5本子的暗许数据仓库储存款和储蓄引擎,可是InnoDB已被Oracle收购,MySQL自行开垦的新存款和储蓄引擎Falcon将要MySQL6.0版本引入。InnoDB具备提交、回滚和崩溃苏醒才具的业务安全。不过比起MyISAM存款和储蓄引擎,InnoDB写的拍卖功效差那么一点并且会占领越来越多的磁盘空间以保存数据和目录。就算如此,但是InnoDB包涵了对事务管理和外来键的支撑,这两点都以MyISAM引擎所未有的。
    MyISAM适合:(1)做过多count 的乘除;(2)插入不频仍,查询特别频仍;(3)未有职业。
    InnoDB适合:(1)可信赖性须求相比高,恐怕必要作业;(2)表更新和查询都一定的反复,并且表锁定的机遇不小的图景。(4)质量较好的服务器,例如单独的数据库服务器,像Ali云的关系型数据库LX570DS就推荐使用InnoDB引擎。

    其间在使用select  into 语句与insert into select 语句时,新表要超前创设,并且新表与旧表的字段属性要自始至终才方可。

    CREATE TABLE 新表SELECT * FROM 旧表WHERE 1=2

      mysql>use  ;

     

    查询wpsql库
    mysql> use wpsql;

    create table 新表 like 旧表;

    或CREATE TABLE 新表LIKE 旧表

    3.drop database name; //直接删除数据库,不升迁 (drop内部命令)

    1、只复制表结构到新表
    CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
    或CREATE TABLE 新表  LIKE 旧表

    列出近来库全部表名
    mysql> show tables;
    将wp_posts表修为InnoDB存款和储蓄引擎(也足以此命令将InnoDB换为MyISAM):
    mysql> ALTER TABLE wp_posts ENGINE=INNODB;

    新表创建之后技术够运用下边包车型客车多少个语句:

    3、复制旧表的数目到新表(要是五个表结构同样)

      mysql>drop  database  ;

    create table score_youxiu select * from score where grade >90;

     

    SELECT * INTO 新表   FROM  旧表;

    INSERT INTO 新表SELECT * FROM 旧表

    4.drop table name; // 直接删除表

    //复制表的有些剧情

    六、修改,删除主键
    修改在此之前先删除自增auto increment;
    删除主键 alter table table_name drop primary key;
    注:在大增主键从前,必须先把反复的id删除掉。
    修改主键 alter table table_test add primary key(id);

    INSERT INTO  新表  SELECT * FROM  旧表;

    4、复制旧表的多少到新表(假若多少个表结构差别)

      mysql>drop  table  ;

    create table score_youxiu select * from score where id%4=0;

    若以上不或然完成,重建一张新表,把旧表的中你需求的数据插入新表

    只复制希望的列插入到另四个已存在的表中:

    INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

    5.create table name; //创建表

    //应用:分表办法(按工作需求,取模(id%4),取偏移量)

    七、把那张表中的数额插入到另一张表中
    INSERT INTO `planpoint`.`0hotelone_img0` (no,hotelno,hotelcode,big,small,tag)
    SELECT no,hotelno,hotelcode,big,small,tag
    FROM `planpoint`.`0hotelone_img` order by no;

    INSERT INTO  新表  (column_name(s))  SELECT   column_name(s)  FROM  旧表;

    5、能够将表1结构复制到表2

      mysql>create  table  ;

     

    八、导入数据库表 (在cmd中程导弹入)
    如已有数据库则创造数据库(1)(2)可粗略
       (1)创建.sql文件
       (2)头阵生叁个库如auction.c:mysqlbin>mysqladmin -u root -p creat planpoint 会提醒输入密码,然后成功创造。
       (2)导入auction.sql文件
       c:mysqlbin>mysql -u root -p planpoint < auction.sql
       通过上述操作,就能够创制了二个数据库planpoint以及中间的一个表auction

    实例:INSERT INTO Websites (name, country) SELECT app_name, country FROM apps;

    SELECT * INTO 表2 FROM 表1 WHERE 1=2

          **前提是先mysql>use;


    ②、导出数据中的表结商谈数码(cmd中程导弹出)
    1.导出成套数据库
       mysqldump -u用户名 -p密码 数据库名 > 导出的文书名
       C:Usersjack> mysqldump -uroot -pmysql sva_rec > e:sva_rec.sql

     

    6、能够将表1剧情全方位复制到表2

    6.show databases;//展现全体数据库

     

       2.导出二个表,包罗表结谈判数据
       mysqldump -u用户名 -p密码 数据库名 表名> 导出的公文名
       C:Usersjack> mysqldump -uroot -pmysql sva_rec date_rec_drv> e:date_rec_drv.sql

    (二)复制同样表结构

    SELECT * INTO 表2 FROM 表1

      mysql>show  databases;

     

       3.导出一个数据库结构
       C:Usersjack> mysqldump -uroot -pmysql -d sva_rec > e:sva_rec.sql

     

    7、 show create table 旧表;

    7.show tables; //展现数据库中的表 (show内部命令)

     

      4.导出二个表,唯有表结构
       mysqldump -u用户名 -p 密码 -d数据库名 表名> 导出的文件名
       C:Usersjack> mysqldump -uroot -pmysql -d sva_rec date_rec_drv> e:date_rec_drv.sql

    对于mysql的复制一样表结构形式,有create table as 和create table like 二种

    那般会将旧表的创制命令列出。我们只必要将该命令拷贝出来,更换table的名字,就足以创造八个全然同样的表

      mysql>show  tables;

    2、复制旧表的多寡到新表(尽管八个表结构同样)
    INSERT INTO 新表 SELECT * FROM 旧表

     

    create table 新表 like 旧表;

    8、mysqldump

          **超前是先mysql>use;

     

    create table 新表 as select * from 旧表 limit 0;

    用mysqldump将表dump出来,改名字后再导回去只怕直接在命令行中运营

    8.describe tablename; //显示表的详细描述

     

    两个的界别:

    9、复制旧数据库到新数据库(复制整体表结构并且复制整体表数据)

      mysql>describe ;


     

    #mysql -u root -ppassword
    >CREATE DATABASE new_db;
    #mysqldump old_db -u root -ppassword--skip-extended-insert --add-drop-table | mysql new_db -u root -ppassword

    9.select version(),current_date; //彰显当前mysql版本和目后天子

     

    as用来创建同样表结构并复制源表数据

    10、表不在同一数据库中(如,db1 table1, db2 table2)
    sql: insert into db1.table1 select * from db2.table2 (完全复制)
    insert into db1.table1 select distinct * from db2.table2(不复制重复纪录)
    insert into tdb1.able1 select top 5 * from db2.table2 (前五条纪录)以上内容便是本文的满贯讲述,希望大家欢快。

      mysql>select  version(), current_date;

     

    like用来创立完整表结构和一切目录

    你或然感兴趣的稿子:

    • MYSQL METADATA LOCK(MDL LOCK)MDL锁难题深入分析
    • mysql中复制表结构的主意小结
    • MySQL复制表结构和剧情到另一张表中的SQL语句
    • MySQL修改表结构操作命令总结
    • Navicat for MySQL导出表结构脚本的差不离方法
    • MySQL优化之表结构优化的5大提出(数据类型采用讲的很好)
    • mysql修改表结构格局实例详解
    • MySQL中期维修改表结构时供给专注的局地地点
    • MySQL数据源表结构图示
    • MySQL表结构更动你不可不知的Metadata Lock详解

      mysql>select  version(),

    3、复制旧表的数据到新表(假设两个表结构分歧样)
    INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

    oracle扶助as,也是唯有表结构没有索引
    oracle不支持like。

          ->current_date;

    insert into ss (id,stu_id) select id,stu_id from score;

    (三)MySQL复制表到另二个数据库

      **select 内部命令 

    insert into score3 (id,stu_id,c_name) select id,stu_id,c_name from score;

    访问分化数据库中的表:数据库名.表名 ,采取点 的样式。

    10.mysql>flush privileges ; //刷新数据库

     

    一时,您要将表复制到其余数据库。 在这种地方下,可应用以下语句:

    11.mysql兑现修改用户密码:


    1. CREATE TABLE destination_db.new_table

    2. LIKE source_db.existing_table;

    3.  

    4. INSERT destination_db.new_table

    5. SELECT *

    6. FROM source_db.existing_table;

     11.1 update //修改

     

    SQL

           shell>mysql -u root -p

     

    具体流程:

    数据库相关,mysql复制表以及复制数据库。     mysql> update mysql.user set password=PASSWORD(’新密码’) where User='root';

    4、能够将表1构造复制到表2
    SELECT * INTO 表2 FROM 表1 WHERE 1=2

    1. CREATE DATABASE IF NOT EXISTS testdb;

         mysql> flush privileges;

     

    SQL

         mysql> quit


    其次,通过将其社团从示例数据库(yiibaidb)中的offices表复制出来,在testdb中开创了offices表。

     11.2 mysqladmin//修改用户密码

     

    1. CREATE TABLE testdb.offices LIKE yiibaidb.offices;

         shell>mysqladmin -u root password new_password

     

    SQL

     11.3 自身测试未经过

    5、能够将表1剧情全方位复制到表2
    SELECT * INTO 表2 FROM 表1

    其三,大家将数据从yiibaidb.offices表复制到testdb.offices表中。

         shell>mysql -u root -p

     

    1. INSERT testdb.offices

    2. SELECT *

    3. FROM yiibaidb.offices;

        mysql>SET PASSWORD FOR root=PASSWORD("root");


     

    12.创建帐号

     

    (四)MySQL数据库导入导出

      mysql> grant all(delete,updatae,create,drop,insert) privileges on *.* to @localhost identified  by  ;

     

    1、使用mysqldump工具将数据库导出并转储到sql文件:mysqldump -u 用户名 -p 数据库名 > 导出的文件名  mysqldump -h IP -u 用户名 -p 数据库名 > 导出的文本名

    2 :(导出某张表的表结构不含数据)
    mysqldump -h localhost -u root -p -d test pollution > G:arcgisworkspacezypdoctest.sql
    3:(导出某张表的表结构和数码,不加-d)
    mysqldump -h 127.0.0.1 -u root -p test pollution > G:arcgisworkspacezypdoctest.sql
    mysqldump-u root -p yiibaidb >d:database_bakyiibaidb.sql
    其间>表示导出。
    2、导入sql文件
    在MySQL中新建数据库,那时是空数据库,如新建一个名称为news的靶子数据库
    create database if not exists news;
    use news;
    导入文本:
    source 路线 导入的文本名; 
    source d:mysql.sql;

     

    要复制一个MySQL数据库,您须要进行以下步骤:

    • 首先,使用CREATE DATABASE话语创制四个新的数据库。
    • 其次,使用mysqldump工具导出要复制的数据库的具有数据库对象和数量。
    • 其三,将SQL转储文件导入新的数据库。

    用作三个示范,假如要把yiibaidb数据库复制到yiibaidb_backup数据库:

    步骤1, 创建yiibaidb_backup数据库:

    首先,登陆到MySQL数据库服务器:

    C:UsersAdministrator> mysql -u root -p
    Enter password: **********
    

    Shell

    然后,使用CREATE DATABASE语句如下:

    1. CREATE DATABASE yiibaidb_backup;

    SQL

    第三,使用SHOW DATABASES指令验证:

    1. SHOW DATABASES

    SQL

     

    步骤2

     

    使用mysqldump工具将数据库对象和数量转储到SQL文件中。

    如果要将数据库对象和数据库转储到位于D:database_bak文本夹的SQL文件中,这里是以下命令:

    1. C:UsersAdministrator> mysqldump -u root -p yiibaidb > d:database_bakyiibaidb.sql

    2. Enter password: **********

    SQL

    多数,此命令提醒mysqldump接纳全部密码的root用户帐户登陆到MySQL服务器,并将数据库对象和yiibaidb数据库的数量导出到d:database_bakyiibaidb.sql。 请注意,运算符(>)表示导出。

    步骤2

    d:database_bakyiibaidb.sql文本导入到yiibaidb_backup数据库。

    C:UsersAdministrator> mysql -u root -p yiibaidb_backup < d:database_bakyiibaidb.sql
    Enter password: **********
    

    Shell

    请注意,运算符(<)表示导入。

    要证实导入,可以利用SHOW TABLES命令飞快检查。

    mysql> SHOW TABLES FROM yiibaidb_backup;
    

    13.重命名表:

    6、show create table 旧表;
    那般会将旧表的创建命令列出。我们只供给将该命令拷贝出来,改换table的名字,就足以创建五个完全同样的表

     

      mysql > alter table   rename  ; //把表t1重命名称为t2

     

    14.备份数据库


     14.1 导出总体数据库

     

              mysqldump -u 用户名 -p 数据库名 > 导出的文本名

     

            mysqldump -u root -p asb >d:asb.sql

    7、mysqldump
    用mysqldump将表dump出来,改名字后再导回去也许直接在指令行中运营

     

     

     14.2 导出三个表


        mysqldump -u 用户名 -p 数据库名 表名> 导出的文本名

     

    mysqldump -u root -p asb yg>d:yg.sql

     

     

    8、复制旧数据库到新数据库(复制全体表结构并且复制整体表数据)

     14.3 导出三个数据库结构

    #mysql -u root -ppassword
    >CREATE DATABASE new_db;
    #mysqldump old_db -u root -ppassword--skip-extended-insert --add-drop-table | mysql new_db -u root -ppassword

    mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

     

    // (-d 未有数量 --add-drop-table 在各类create语句此前扩展三个drop table)


      mysqldump mysqladmin外部命令

     

     

     

     14.4 导入数据库

    9、表不在同一数据库中(如,db1 table1,  db2 table2)
    sql: insert into db1.table1 select * from db2.table2 (完全复制)
         insert into db1.table1 select distinct * from db2.table2(不复制重复纪录)
         insert into tdb1.able1 select top 5 * from   db2.table2 (前五条纪录) 

      /*用source 命令

     

      */进入mysql数据库调控台,先创设数据库,use数据库


      mysql -u root -p

     

      mysql>create  ;

      mysql>use

      mydql>source d:.sql;

     

     14.5 导入表

     // 进入数据库,实行导入操作

          mysql>use;

          mysql>source d:.sql;

    15.将表中著录清空:

      mysql>delete  from ;

    15.1将表中著录清空:

      mysql>Truncate  tablename;

    16.展现表中的笔录:

      mysql>select  *  from ;

    17.三个建库和建表以及插入数据的实例

      Drop  database  if  exists  school;  //假设存在SCHOOL则删除

      create  database  school;  //建立库SCHOOL

      use  school;  //打开库SCHOOL

      create  table  teacher  //建立表TEACHER

      (

      id  int(3)  auto_increment  not  null  primary  key,

      name  char(10)  not null,

      address  varchar(50)  default  '深圳',

      year  date

      );  //建表甘休

      //以下为插入字段

      insert into teacher values('','glchengang','深圳第一中学','1979-10-10');

      insert into teacher values('','jack','尼科西亚一中','一九七四-12-23');

    **注:在建表中

    (1) 将ID设为长度为3的数字字段:int(3),并让它每一种记录自动加一: auto_increment,

    并无法为空:not null,而且让它成为主字段primary key

    (2) 将NAME设为长度为10的字符字段

    (3) 将ADDRESS设为长度50的字符字段,而且缺省值为阿布扎比。varchar和char有哪些分别

    啊,唯有等随后的文章再说了。

    (4) 将YEAPRADO设为日期字段。

    倘若你在mysql提醒符键入上面的命令也得以,但不低价调试。 你可以将以上命令

    形容写入三个文件文件中假设为school.sql,然后复制到c:下,并在DOS状态进入目录

    mysqlin,然后键入以下命令:

    mysql -uroot -p密码 < c:school.sql

    万10%功,空出一行无别的彰显;如有错误,会有指示。(以上命令已经调节和测试,你

    设若将//的笺注去掉就能够使用)。

    将文件数据转到数据库中

     文本数据应符合的格式:字段数据里面用tab键隔离,null值用来取代。例:

    3 rose 费城二中 一九八〇-10-10

    4 mike 费城一中 1973-12-23

     数据传入命令load data local infile "文件名" into table 表名;

    瞩目:你最佳将文件复制到mysqlin目录下,并且要先用use命令选表所在的库。

    18.revoke all on database from user

    //移除user用户在database数据库上的全部权限 (本身测试未经过)

     

    19.连接mysql。

    格式: mysql -h主机地址 -u用户名 -p用户密码

    20.登入数据库

      mysql-uroot-p;

      mysql-uroot-pnewpassword;

      mysqlmydb-uroot-p;

      mysql mydb -uroot -pnewpassword;

      mydb数据库名

    21.刚安装好的MySql包涵三个含空密码的root帐户和多个无名氏帐户,那是异常的大的安全隐患,对于部分注重的利用我们应将安全性尽或然升高,   在那边应把佚名帐户删除、root帐户设置密码,可用如下命令实行:

      mysql>use mysql;

     mysql>delete from User where User="";

     mysql>update User set Password=PASSWORD('newpassword') where User='root';

    22.新添用户

      格式:grant select on 数据库.* to 用户名@登入主机 identified by "密码"

    例1、扩张一个用户test1密码为abc,让她得以在其余主机上登入,并对负有数据库有询问、插入、修改、删除的权力。首先用以root用户连入MySQL,然后键入以下命令:

    mysql>grant select,insert,update,delete on *.* to [email protected]"%" Identified by "abc";

    但例1增添的用户是那个生命垂危的,你想如有些人知晓test1的密码,那么她就能够在internet上的其余一台微型Computer上登陆你的MySQL数据库并对您的数目可感到所欲为了,消除办法见例2。

    例2、扩展八个用户test2密码为abc,让他只好够在localhost上登陆,并得以对数据库mydb进行询问、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),那样用户即利用知道test2的密码,他也无能为力从internet上一贯访问数据库,只能通过MySQL主机上的web页来访问。

    mysql>grant select,insert,update,delete on mydb.* to [email protected] identified by "abc";

    借使您不想test2有密码,能够再打八个发令将密码消掉。

    mysql>grant select,insert,update,delete on mydb.* to [email protected] identified by "";

    下边大家来看望MySQL中关于数据库方面包车型地铁操作。注意:你必须首首先登场入到MySQL中,以下操作都以在MySQL的提醒符下举行的,而且每一个命令以根据地停止。 

    在拓张开荒和实际使用中,用户不该只用root用户张开连续数据库,即使使用root用户展开测试时很方便,但会给系统带来主要安全隐患,也不便于管理技艺的巩固。我们给一个应用中应用的用户赋予最相宜的数据库权限。如一个只举行多少插入的用户不应赋予其除去数据的权杖。MySql的用户管理是透过User表来落到实处的,增多新用户常用的艺术有多少个,一是在User表插入相应的数码行,同不经常候安装相应的权杖;二是通过GRANT命令创制具有某种权力的用户。当中GRANT的常用用法如下:

      mysql>grant all on mydb.* to [email protected] identified by "password";

      mysql>grant usage on *.* to [email protected] identified by "password";

      mysql>grant select,insert,update on mydb.* to [email protected] identified by "password";

      mysql>grant update,delete on mydb.TestTable to [email protected] identified by "password";

    23.对常用权限的批注:

       23.1 全局管理权限: 

      FILE:在MySQL服务器上读写文件。 

      PROCESS:展现或杀死属于别的用户的劳动线程。 

      RELOAD:重载访问调整表,刷新日志等。 

      SHUTDOWN:关闭MySQL服务。

     23.2 数据库/数据表/数据列权限: 

      Alter:修改已存在的数据表(举个例子扩充/删除列)和目录。 

      Create:建设构造新的数据库或数据表。 

      Delete:删除表的笔录。 

      Drop:删除数据表或数据库。 

      INDEX:塑造或删除索引。 

      Insert:增加表的笔录。 

      Select:呈现/搜索表的笔录。 

      Update:修改表中已存在的笔录。

     23.3 特其他权杖: 

      ALL:允许做别的事(和root同样)。 

      USAGE:只允许登入--别的什么也不允许做。

     

    末段交给在RedHat9.0下的MySql操作演示:

    选拔数据库的root用户登陆

      [[email protected]]$mysql -uroot -p

      Enterpassword:MyPassword

      mysql>create database mydb;

      QueryOK,1rowaffected(0.02sec)

      mysql>use mydb;

      Databasechanged

      mysql>create table TestTable(Idintaut_increment primary key,

      UserNamevarchar(16) not null,

      Address varchar(255));

      QueryOK,0rowsaffected(0.02sec)

      mysql>grant all on mydb.* to [email protected] identified by "test";

      QueryOK,0rowsaffected(0.01sec)

      mysql>quit

      Bye

      [[email protected]]$mysqlmydb -utest -ptest

    中间test.sql是用vi编辑好的SQL脚本,其剧情为:

      Insert into TestTable(UserName,Address) values('Tom','shanghai');

      Insert into TestTable(UserName,Address) values('John','beijing');

      select * from TestTable;

    运行已经编写制定好的SQL脚本能够用source filename或.filename。

    如上只是对菜鸟的简便演习,要改成叁个数据库好手,当以劳累地追求学问,不断地考虑、尝试、再想想。

    24.MySql常用命令总计 

     24.1 使用SHOW语句搜索在服务器上脚下设有怎么着数据库: 

      mysql>SHOW DATABASES; 

     24.2 创设叁个多少库 

      mysql>Create  DATABASE  ;

     24.3 选用你所开创的数量库 

      mysql>USE ;(按回车键出现Databasechanged时证实际操作作成功!) 

     24.4 查看今后的数据库中留存什么样表 

      mysql>SHOW TABLES; 

     24.5 成立四个数据库表 

      mysql>Create  TABLE(name VARCHAR(20),sex CHAR(1)); 

     24.6 突显表的组织: 

      mysql>DESCRIBE ;

     24.7 往表中进入记录 

      mysql>insert  into values("hyq","M"); 

     24.8 用文件格局将数据装入数据库表中(例如D:/mysql.txt) 

      mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE; 

     24.9 导入.sql文件命令(举例D:/mysql.sql) 

      mysql>use  database; 

      mysql>source  d:/mysql.sql; 

     24.10 删除表 

      mysql>drop  TABLE  ; 

     24.11 清空表 

      mysql>delete  from  ; 

     24.12 更新表中数据 

      mysql>update  set  sex="f"  where  name='hyq';

     

     

    1. --通过伪列rowid查找重复数据

     

    select a.* from t_user a where a.rowid!= 

      (select max(rowid) as rid from t_user where a.grpid =grpid and a.uname=uname);

     

    delete from t_user a where a.rowid!= 

      (select max(rowid) as rid from t_user where a.grpid =grpid and a.uname=uname);

     

    1. 当表中有双重数据(全部字段一样)时,去重:

    select distinct * from  ;

     

    1. 依照字段查询表中再一次的数量(单一字段):

        select * fromwhere 字段名 in (select字段名   from  group by 字段名 having  count(字段名) > 1);

     

    28: 删除表中多余的重复记录,重复记录是依靠单个字段(peopleId)来决断,只留有rowid最小的记录
           delete from where  字段名  in (select  字段名   from    group   by  字段名   having   count(字段名) > 1)
    and rowid not in (select min(rowid) from      group by字段名   having count(字段名)>1);

    29:根据字段查表里面重复的多字段数据,并展现重复次数:

        Select 字段名1,字段名2,Count(*) From 表名 Group By 字段名1,字段名2 Having Count(*) > 1

    1. 钦赐查询表中前N行数据:

        select * fromlimit  N;

    31.内定查询表中第N行后的M行数据:

        select * from limit N,M;

    1. 复制表结构及数量到新表
      CREATE TABLE 新表 SELECT * FROM 旧表;

    2. 只复制表结构到新表
      CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
      或CREATE TABLE 新表  LIKE 旧表;

    3. 1、复制表结构及数码到新表
      CREATE TABLE 新表 SELECT * FROM 旧表
      这种方法会将oldtable中享有的情节都拷贝过来,当然大家能够用delete from newtable;来删除。
      然则这种措施的叁个最不好的地点就是新表中绝非了旧表的primary key、Extra(auto_increment)等质量。须要和睦用"alter"增多,而且轻便搞错。

    2、只复制表结构到新表
    CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
    或CREATE TABLE 新表  LIKE 旧表

    3、复制旧表的数目到新表(要是七个表结构同样)
    INSERT INTO 新表 SELECT * FROM 旧表

    4、复制旧表的数量到新表(若是多个表结构不等同)
    INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

    5、能够将表1结构复制到表2
    SELECT * INTO 表2 FROM 表1 WHERE 1=2

    6、能够将表1内容全方位复制到表2
    SELECT * INTO 表2 FROM 表1

    7、show create table 旧表;
    诸如此类会将旧表的创办命令列出。大家只需求将该命令拷贝出来,改变table的名字,就能够建设构造多个一模二样的表

    8、mysqldump
    用mysqldump将表dump出来,改名字后再导回去也许间接在命令行中运维

    1. 把日子更新成为当下系统时间

    Update set =now();

     

    TABLE EMP1 AS SELECT * FROM EMP WHERE EMPNO=1 SELECT * INTO NEW...

    本文由新葡亰496net发布于网络数据库,转载请注明出处:数据库相关,mysql复制表以及复制数据库

    关键词: