澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

MySQL数据库的简单操作,mysql命令集锦

2019-11-04 作者:数据库网络   |   浏览(85)

接连命令:<a href="" class='replace_word' title="MySQL知识库" target='_blank' style='color:#df3434; font-weight:bold;'>MySQL</a> -h[主机地址] -u[用户名] -p[客商密码]
创建<a href="" class='replace_word' title="MySQL知识库" target='_blank' style='color:#df3434; font-weight:bold;'>数据库</a>:create database [库名]
来得全部数据库: show databases;
展开数据库:use [库名]
现阶段筛选的库状态:SELECT DATABASE();
开创数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......);
展现数据表字段:describe 表名;
方今库数据表结构:show tables;
改过表格 
ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE
证实:扩充叁个栏位(未有删除有些栏位的语法。
ALTER TABLE [表名] ADD PRIMARY KEY ([字段名])
证实:修正表得的概念把某部栏位设为主键。
ALTER TABLE [表名] DROP PRIMARY KEY ([字段名])
表明:把主键的定义删除。
展现当前表字段:show columns from tablename;
删库:drop database [库名];
删表:drop table [表名];
数量操作
添加:INSERT INTO [表名] VALUES('','',......顺序排列的数目);
查询: SELECT * FROM [表名] WHERE ([条件]);
确立目录:CREATE INDEX [目录文件名] ON [表名] ([字段名]);
删除:DELETE FROM [表名] WHERE ([条件]);
修改:UPDATE [表名] SET [改良内容如name = 'Mary'] WHERE [条件];

用命令创造MySQL数据库

[一]JDBC驱动分类:

导入外界数据文本:
1.试行外界的sql脚本
最近数据库上施行:mysql < input.sql
钦定数据库上实行:mysql [表名] < input.sql
2.数额传入命令 load data local infile "[文件名]" into table [表名];
备份数据库:(dos下)
mysqldump --opt school>school.bbb

情况变量设置:

    1:JDBC--ODBC 桥驱动。

晋升:常用MySQL命令以";"停止,有少许非同一般命令不能够加";"结束,如备份数据库
黄金时代. 增加和删除改查操作

本身的微Computer->属性->高端->情形变量

            在前后相继支付中不用此驱动类型,因为操作质量太低。

=================================================================================

采取PATH,在其前边增加: 你的mysql文件夹路线/bin (如:D:Program FilesMySQLMySQL Server 5.0bin )

    2:纯JDBC链接(JDBC本地驱动;本地协议纯JDBC驱动卡塔 尔(阿拉伯语:قطر‎。

  1. 增:
    insert into 表名 values(0,'<a href="" class='replace_word' title="软件测量试验知识库" target='_blank' style='color:#df3434; font-weight:bold;'>测试</a>');
    注:如上说话,表结构中有全自动拉长的列,也亟须为其钦赐三个值,日常为0
    insert into 表名(id,name) values(0,'尹当')--同上
    2.删数据:
    delete from 表名;
    delete from 表名 where id=1;
    删去结构:
    删数据库:drop database 数据库名;
    删除表:drop table 表名;
    剔除表中的列:alter table 表名 drop column 列名;
  2. 改:
    改革全部:updata 表名 set 列名='新的值,非数字加单引号' ;
    带条件的改进:updata 表名 set 列名='新的值,非数字加单引号' where id=6;
    4.查:
    询问全部的数量:select *from 表名;
    带条件的询问:
    select *from 表名 where 列名=条件值;
    Select * from 表名 where 列名 not like(like) '字符值'
    分页查询:select *from 表名 limit 每页数量 offset 偏移量;

PATH=.......;D:Program FilesMySQLMySQL Server 5.0bin (注意为增添,不是覆盖)

    3:JDBC互连网驱动。

二.操作命令

 

    4:数据库的操作进度:

=================================================================================

 命令行连接

        〈1〉张开数据库的劳务                    〈2〉连接数据库,连接的时候以发表都要输入客商名和密码。

  1. 翻开数据库音信:show databases;
    2.查看表音信:show tables;
    3.查看表的组织:desc 表名
  2. 新建数据库:create database 数据库名;
    5.操作钦定数据库:use 数据库名;
    6.新建数据表(先use 操作库);
    create table 表名(规范为tbl_表名)
    (
    id int auto_increment primary key,( auto_increment为自动拉长)
    name varchar(20) primary key
    )ENGINE=InnoDB DEFAULT CHA福睿斯SET=gbk//扶植专门的学业和设置表的编码
    6.2增加主外键:
    alter table 外表名 add constraint FK_名称 foreign key(外列) references 主表名(主列)
    如现存两表 主表tbl_order 子表tbl_orderdetail 现子表tbl_orderdetail的oid列援用了主表tbl_order的oid列
    则下令如下:
    alter table tbl_orderdetail add constraint FK_oid foreign key(oid) references tbl_order(oid)
    7.导出表,备份到多少个文书中,如.txt,.doc
    cmd命令窗口:mysqldump -u 顾客名 -p 要求备份的数据库名 >备份的公文的保留路线和文件名
    注:如钦命的文本不设有,mysql会活动抬高三个文本,此命令不能够加分号最终(文件并未有备份建数据库操作卡塔尔国
    8.导入数据库备份文件:
    (1).在mysql命令窗口
    (2).新建叁个要导入的数据库(因为备份中未有备份建数据库操作)
    (3).use 当前库名
    (4).source 备份的公文的保留路线和文书名(此命令不能够加分号末了)

生机勃勃、MySQL连接当地数据库,顾客名称叫“root”,密码“123”(注意:“-p”和“123” 之间不能有空格卡塔尔国

        〈3〉操作数据库:创设表, 查询表, 跟新记录。   〈4〉数据库的操作:Statement,  PreparedStatement.

三:系统操作

C:>mysql -h localhost -u root -p123(注意-p与密码是紧跟的卡塔尔
二、MySQL连接远程数据库(192.168.0.201卡塔尔,端口“3306”,用户名叫“root”,密码“123”

        〈5〉数据库的查询:ResultSet                      〈6〉调用存款和储蓄进度:CallableStatement 

=================================================================================

C:>mysql -h 172.16.16.45 -P 3306 -u root -p123
三、MySQL连接本地数据库,顾客名称叫“root”,隐讳密码

        〈7〉关闭

  1. 开拓服务:net start mysql(mysql为布局时,可自定名称)
    2.休憩服务:net stop mysql
    3.从cmd 情势踏向mysql
    (1).mysql -u 顾客名 -p 回车>输入正确密码>步入招待
    (2).mysql -h IP(本机localhost) -u 顾客名 -p 回车>输入精确密码>步向应接
    3.退出:exit/quit;
    4.校正客商密码:mysqladmin -u 客户名 -p password 新密码
    5.拍卖汉语乱码:
    (1).在D:/MySQL /MySQL Server 5.0/data的操作数据为文件中查看是不是为以下:
    default-character-set=gbk
    default-collation=gbk_chinese_ci

C:>mysql -h localhost -u root -pEnter password:
四、MySQL 连接本地数据库,客户名字为“root”,钦定所连接的数据库为“test”

    5:JDBC操作步骤:家在数据库运维程序; 连接数据库; 使用语句实行数据库操作; 关闭数据库连接。

(2).查看安装文件暗中同意编码:D:/MySQL/MySQL Server 5.0>my>default-character-set=gbk

C:>mysql -h localhost -u root -p123 -D testmysql>select database(); ------------ | database() | ------------ | test       | ------------  

[二]MySQL存款和储蓄引擎和数据类型:

=================================================================================

 

    1:MySQL的两种关键囤积引擎:InnoDB, MyISAM, MEMOCRUISERY.

启动:net start mySql;
进入:mysql -u root -p/mysql -h localhost -u root -p databaseName;
列出数据库:show databases;
慎选数据库:use databaseName;
列出表格:show tables;
突显表格列的性质:show columns from tableName;
创建数据库:source fileName.txt;
相配字符:能够用通配符_代表任何二个字符,%代表任何字符串;
扩大三个字段:alter table tabelName add column 田野(field)Name dateType;
充实多少个字段:alter table tabelName add column 田野Name1 dateType,add columns 田野(field)Name2 dateType;
多行命令输入:注意无法将单词断开;当插入或改变数据时,不能够将字段的字符串张开到多行里,不然硬回车将被积攒到数码中;
追加二个大班帐户:grant all on *.* to user@localhost identified by "password";
每条语句输入达成后要在最终填加分号';',可能填加'/g'也足以;
查询时间:select now();
查询当前客户:select user();
查询数据库版本:select version();
查询当前应用的数据库:select database();

零、MYSQL进程序调控制

    2:MyISAM存储引擎的3种主要囤积格式:静态型,动态型和压缩型。

1、删除student_course数据库中的students数据表:
rm -f student_course/students.*

  mysql:
  show variables like 'port';
  show variables like "have_%";
  windows:
  http://www.jz123.cn/text/3035482.html
  net stop mysql
  net start mysql
  netstat -ano 找到占用3306的长河
  taskkill /F -PID 5004 杀掉进度
  到mysql安装目录的bin下实行mysqld运行。

    3:如何筛选仓库储存引擎:

2、备份数据库:(将数据库test备份)
mysqldump -u root -p test>c:/test.txt
备份表格:(备份test数据库下的mytable表格)
mysqldump -u root -p test mytable>c:/test.txt
将备份数据导入到数据库:(导回test数据库)
mysql -u root -p test

一、连接MYSQL

        〈1〉InnoDB:用于事务管理应用程序,具备相当多性格,包蕴ACID事务帮忙,扶助外键,同一时候帮忙崩溃修复工夫和产出调节。

3、创设有时表:(建构临时表zengchao)
create temporary table zengchao(name varchar(10));

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

        〈2〉MyISAM:首要用来处理非事务表,它提供神速存款和储蓄和探究,以致全文字笔迹考验索手艺

4、创设表是先判定表是还是不是存在
create table if not exists students(……);

  1、 连接到本机上的MYSQL。

        〈3〉MEMOENCOREY:MEMO福特ExplorerY存款和储蓄引擎提供“内部存款和储蓄器中”表,MEMOHighlanderY存款和储蓄引擎的享有数据都在内部存款和储蓄器中,数据的管理速度快,但安全性不高。

5、从已经部分表中复制表的构造
create table table2 select * from table1 where 1<>1;

  首先张开DOS窗口,然后步向目录mysqlbin,再键入命令mysql -u root  -p,回车的前边提示您输密码.注意用户名前能够有空格也得以未有空格,但是密码前必需未有空格,不然让您再一次输入密码.

    4: MySQL扶持的3种关键数据类型:数字类型, 字符串(字符卡塔 尔(英语:State of Qatar)类型, 日期和时间项目。

6、复制表
create table table2 select * from table1;

  要是刚安装好MYSQL,一级顾客root是不曾密码的,故直接回车就可以步向到MYSQL中了,MYSQL的提示符是: mysql>

[三]MySQL数据库操作 

7、对表重新命名
alter table table1 rename as table2;

  2、连接到长途主机上的MYSQL。若是远程主机的IP为:110.110.110.110,顾客名为root,密码为abcd123。则键入以下命  令:

    1: 创制数据库:create database 库名;  

8、改革列的品类
alter table table1 modify id int unsigned;//更改列id的品种为int unsigned
alter table table1 change id sid int unsigned;//改进列id的名称叫sid,并且把品质修改为int unsigned

  mysql -h110.110.110.110 -u root -p 123;(注:u与root之间能够绝不加空格,此外也风流洒脱致)

            创制数据库并分配顾客
            ①CREATE DATABASE 数据库名;
            ②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTE福特Explorer ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';
            ③SET PASSWORAV4D FOWrangler '数据库名'@'localhost' = OLD_PASSWORD('密码');
            依次实行3个指令完毕数据库创设。注意:汉语“密码”和“数据库”是户自身要求设置的。

9、创造索引
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
create unique index ind_id on table1 (id);//创立唯后生可畏性索引

  3、 退出MYSQL命令: exit (回车)

    2 :  建表必需全用小括号(以小括号开头,以小括号最终卡塔 尔(英语:State of Qatar),建表未完用逗号,建表截至后在小括号外用分号结束。

10、删除索引
drop index idx_id on table1;
alter table table1 drop index ind_id;

二、改进密码

            比如,创建一个名字为MyClass的表,

11、联合字符可能七个列(将列id与":"和列name和"="连接)
select concat(id,':',name,'=') from students;

  格式:mysqladmin -u用户名 -p旧密码 password 新密码。 例如

字段名 数字类型 数据宽度 是否为空 是否主键 自动增加 默认值
id int 4 primary key auto_increment  
name char 20      
sex int 4     0
degree double 16      

12、limit(选出10到20条)<第三个记录集的数码是0>
select * from students order by id limit 9,10;

  1、 给root加个密码ab12。首先在DOS下步向目录mysqlbin,然后键入以下命令

            mysql> create table MyClass(

13、MySQL不扶持的作用
专门的工作,视图,外键和引用完整性,存款和储蓄进度和触发器

  mysqladmin -u root -password ab12

            > id int(4) not null primary key auto_increment,
            > name char(20) not null,
            > sex int(4) not null default '0',
            > degree double(16,2));

14、MySQL会利用索引的操作符号
<,<=,>=,>,=,between,in,不带%或者_开头的like

  2、 再将root的密码改为djg345。

    3:删除:

15、使用索引的弱点
1)减慢增加和删除改数据的速度;
2卡塔尔国占用磁盘空间;
3卡塔尔扩展查询优化器的承当;
当查问优化器生成推行陈设时,会虚构索引,太多的索引会给查询优化器扩大职业量,招致力所不及选用最优的查询方案;

  mysqladmin -u root -p ab12 password ******

        〈1〉删除数据库: 必得先将数据库显示出来(show databases卡塔尔,然后再选关键删除的库(drop  database  库名卡塔尔国。

16、深入分析索引成效
措施:在相近的SQL语句前加上explain;
分析结果的意义:
1)table:表名;
2卡塔尔国type:连接的种类,(ALL/Range/Ref)。此中ref是最优异的;
3)possible_keys:查询能够接纳的索引名;
4卡塔尔国key:实际行使的目录;
5)key_len:索引中被选择一些的尺寸(字节卡塔尔国;
6卡塔 尔(英语:State of Qatar)ref:呈现列名字可能"const"(不清楚什么意思卡塔 尔(阿拉伯语:قطر‎;
7卡塔 尔(阿拉伯语:قطر‎rows:呈现MySQL以为在找到科学结果以前必得扫描的行数;
8)extra:MySQL的建议;

三、创立数据库

        〈2〉删除表: 必选先找到表所在的库(use 库名卡塔 尔(阿拉伯语:قطر‎,然后删除表(drop

17、使用异常的短的定长列
1卡塔尔尽大概选择极短的数据类型;
2卡塔 尔(英语:State of Qatar)尽也许选取定长数据类型;
a卡塔尔国用char取代varchar,固定长度的多寡管理比变长的快些;
b卡塔尔对于频仍修正的表,磁盘容易产生碎片,从而影响数据库的意气风发体化质量;
c卡塔尔万黄金时代现身数量表崩溃,使用一定长度数据行的表更便于重新协会。使用固定长度的数额行,各种记录的起来地点都是一定记录长度的翻番,能够十分轻便被检验到,然而利用可变长度的数据行就不分明了;
d卡塔 尔(英语:State of Qatar)对于MyISAM类型的数据表,尽管转变到固定长度的数据列能够加强质量,不过占用的上空也大;

  1、 CREATE DATABASE 数据库名;

  • table 表名)。

18、使用not null和enum
尽恐怕将列定义为not null,这样可使数据的出来更加快,所需的空中更加少,並且在查询时,MySQL不须要检查是还是不是存在特例,即null值,进而优化查询;
若是一列只包涵一定量数量的一定值,如性别,是或不是可行或然入学年份等,在这里种状态下应当考虑将其改造为enum列的值,MySQL管理的越来越快,因为具备的enum值在系统内都是以标记数值来代表的;

  2、 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTE大切诺基  ON 数据库名.* TO 用户名@localhost IDENTIFIED BY '密码';

               注意:对于叁个带分区的表,DROP TABLE会恒久性地收回表定义,撤销各分区,并注销储存在此些分区中的全体数据。DROP TABLE还有恐怕会裁撤与被废除的表有关联的分区定义(.par卡塔尔国文件。在剔除叁个不真实的表时将会时有发生错误,那时候应在剔除语句中加上 if exists 关键字,格式如:drop table if exists 数据表名。使用IF EXISTS用于幸免错误发生。当使用IF EXISTS时,对于每一个子虚乌有的表,会调换三个NOTE。

19、使用optimize table
对当时常改过的表,轻便发生碎片,使在查询数据库时必须读取越来越多的磁盘块,减少查询质量。具备可变长的表都存在磁盘碎片难题,那一个难题对blob数据类型更为优异,因为其尺寸变化相当大。能够通过行使optimize table来整合治理碎片,保险数据库质量不下跌,优化那三个受碎片影响的数据表。 optimize table能够用于MyISAM和BDB类型的数据表。实际上任何碎片收拾方法都以用mysqldump来转存数据表,然后利用转存后的公文相提并论复建数据表;

    or   mysql> grant all privileges on 数据库名.* to '数据库名'@'localhost' identified by 'passwd';

        〈3〉删除某选项:delete from user where 序号名 序号。

20、使用procedure analyse()
能够选拔procedure analyse()展现最棒类型的建议,使用很简短,在select语句前边加上procedure analyse()就能够了;举例:
select * from students procedure analyse();
select * from students procedure analyse(16,256);
第二条语句供给procedure analyse()不要建议含有多于拾七个值,大概含有多于256字节的enum类型,若无界定,输出大概会十分短;

  3、 SET PASSWORD FOR

    4:改正数据:但要求多少表中有个别记录时,就能够使用update语句,语句格式如:

21、使用查询缓存
1卡塔 尔(阿拉伯语:قطر‎查询缓存的干活措施:
先是次实行某条select语句时,服务器记住该查询的文书内容和查询结果,存款和储蓄在缓存中,下一次遇上这么些讲话时,间接从缓存中回到结果;当更新数据表后,该数据表的别的缓存查询都改成无效的,并且会被甩掉。
2卡塔尔国配置缓存参数:
变量:query_cache _type,查询缓存的操作方式。有3中情势,0:不缓存;1:缓存查询,除非与 select sql_no_cache开端;2:依照需求只缓存那一个以select sql_cache起先的询问; query_cache_size:设置查询缓存的最大结果集的轻重,比这几个值大的不会被缓存。

  '数据库名'@'localhost' = OLD_PASSWORD('密码');

            改善表名称:rename table 原表名 to 要改过的称号。

22、调解硬件
1卡塔 尔(英语:State of Qatar)在机器上装更加的多的内部存款和储蓄器;
2卡塔尔增加更加快的硬盘以减小I/O等待时间;
寻道时间是调控质量的重大体素,逐字地活动磁头是最慢的,少年老成旦磁头定位,从磁道读则相当慢;
3卡塔尔国在不一致的情理硬盘设备上重新分配磁盘活动;
若是恐怕,应将最繁忙的数据库贮存在不一致的情理设备上,那跟使用同样物理设备的不如分区是例外的,因为它们将争用相通的情理能源(磁头卡塔尔国。

  依次试行3个指令完毕数据库成立。注意:中文“密码”和“数据库”是户自身必要安装的。

            插入表内容的格式:insert into 数据表名 (字段1,字段2、、、字段n ) values (值1 ,值2、、、值n) ;

一、连接MYSQL。

四、创设数据表

            修改表部分剧情的格式:update 表名称 set 字段1=值1,字段2=值2、、、字段n=值n where 所位列数(例:id= 3)。

格式: mysql -h主机地址 -u客商名 -p客商密码

  mysql> USE 库名;

            与删除语句相仿,矫正也急需钦点更正法则,不然数据表中的记录将全方位被涂改,平时的条件都使用id表示。

1、例1:连接到本机上的MYSQL。

  mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

            呈几何拉长的方式复制数据库有些表中的剧情:insert into “表名(字段1,字段n、、、、字段n卡塔尔国”select 字段1,字段n、、、、、字段n  frong “表名“

首先在开发DOS窗口,然后步入目录 mysqlbin,再键入命令mysql -uroot -p,回车的前边提示您输密码,纵然刚安装好MYSQL,一流客户root是未曾密码的,故直接回车就可以步入到MYSQL中了,MYSQL的提拔符是:mysql>

五、导入.sql文件命令

    5:查询:轻松询问;约束查询(钦赐询问条件卡塔尔国;多表查询; 分组查询; 总计查询; 子查询;交、并、补查询。

2、例2:连接到长途主机上的MYSQL。若是远程主机的IP为:110.110.110.110,客商名称叫root,密码为abcd123。则键入以下命令:

  mysql> USE 数据库名;

           〈1〉查看库:首先入选库名(use 库名卡塔 尔(英语:State of Qatar),然后查看库中的表(show tables卡塔尔。

mysql -h110.110.110.110 -uroot -pabcd123

  mysql> SOURCE d:/mysql.sql;

           〈2〉查看表结构:查看完库中的表后,下一步即是查看表结构(desc

(注:u与root能够毫不加空格,别的也同等卡塔 尔(阿拉伯语:قطر‎

六、字符设置

  • 表名);

3、退出MYSQL命令: exit (回车)

1、纠正总体数据库的:

                     或直接用:show columns from 数据表名 from 数据库名;

二、改进密码。

my.cnf配置文件之中的[mysqld]上边增多:

                     或直接用:describe 数据表名。

格式:mysqladmin -u用户名 -p旧密码 password 新密码

default-character-set = utf8

           〈3〉 查询表中的部分数据,将select * from 表名中的“*”替换来要查询的项名称就可以,也正是简约询问。

1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令

2、查看字符集

           〈4〉 查询钦点数量(显示结果为含有钦命数量的某项全体内容卡塔 尔(阿拉伯语:قطر‎,则用 select * from 数据表名 where 字段=‘值’(要是是数字单引号腹背之毛,汉字必须有单引号);

mysqladmin -uroot -password ab12

SHOW VARIABLES LIKE 'character_set_%';

                     或用: select * from 数据表名 where 字段  in  ('值1','值2'、、、、卡塔 尔(英语:State of Qatar)。

注:因为在此以前时root没有密码,所以-p旧密码风姿浪漫项就足以省略了。

3、查看一个库的字符集:

           〈5〉 查询多项中装有同等查询条件的项,就要动用原则查询,使用模糊匹配,格式如:

2、例2:再将root的密码改为djg345。

show create database wzxa;

                  select * from user where name like '% 查询条件 %' or password like '% 查询条件 %'.

mysqladmin -uroot -pab12 password djg345

4、单独设置有个别数据库:
alter database testdb character set utf8;

           〈6〉 查询插入的表内容则用  select * from 表名(此格式不节制大小写)。

三、增添新客户。(注意:和方面分化,上面包车型大巴因为是MYSQL情况中的命令,所以前面都带叁个分号作为命令截至符卡塔 尔(阿拉伯语:قطر‎

5、查看mysql协助的编码:
show character set;

           〈7〉 使用主要字is null查询空值,is null 关键字能够用来判别字段的值是不是为空,如若为空则满足查询条件并将查询结果展现出来,格式如:select

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

6、也足以行使如下方法查看编码:

  • 询问字段 from 数据表名 where 要认清的字段 is null。

例1、增添多少个顾客test1密码为abc,让她能够在任何主机上登陆,并对负有数据库有查询、插入、改良、删除的权位。首先用以root客商连入MYSQL,然后键入以下命令:

SHOW STATUS

           〈8〉 对查询结果开展分组,则用:select 要询问的类, avg/sum(要查询的开始和结果名称;此语句开玩笑,但有此语句但是分组语句表述最大效果与利益卡塔 尔(英语:State of Qatar),typ from 表名称 grop by typ,

grant select,insert,update,delete on *.* to test1@/"%/" Identified by /"abc/";

mysql -uroot use YOUR DATABASE status

                    例:select bookname, avg/sum(price) , typ from 表名称 grop by typ;

但例1扩张的顾客是老大高危的,你想如某人明白test1的密码,那么她就足以在internet上的另外生机勃勃台微型机上登陆你的mysql数据库并对您的数量可以为所欲为了,化解办法见例2。

Server characterset: utf8

                    或使用:  select 字段1,字段2、、、字段n from 数据表名 grop by 字段m(字段m 为分组条件);

例 2、扩充三个客商test2密码为abc,让他只好够在localhost上登入,并能够对数据库mydb进行询问、插入、修正、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机卡塔 尔(阿拉伯语:قطر‎,那样顾客即利用知道test2的密码,他也回天无力从 internet上直接待上访问数据库,只好通过MYSQL主机上的web页来访问了。

Db characterset: utf8

                    或使用: select 字段1,字段2、、、字段n grop_concat(字段m) from 数据表名 grop by 字段m(字段m 为分组条件);

grant select,insert,update,delete on mydb.* to test2@localhost identified by /"abc/";

Client characterset: utf8

                    或应用: select 字段1,字段2、、、字段n from 数据表名 grop by 字段m1,字段m2......。(字段m1,字段m2 ...为分组条件)

若是您不想test2有密码,能够再打贰个命令将密码消掉。

Conn. characterset: utf8

           〈9〉 除去查询结果中另行的内容,则用 distinct  关键字,格式如:select distinct 字段 from 数据表名。

grant select,insert,update,delete on mydb.* to test2@localhost identified by /"/";

TCP port: 3306

           〈10〉假使要对查询的结果开展排序,暗中同意情形下 order by 为升序排列,即便要按降序排列能够动用desc 来兑现,格式如:

在上篇大家讲了登陆、扩大客户、密码改良等主题素材。下篇大家来会见MYSQL中有关数据库方面包车型地铁操作。注意:你必得首首先登场入到MYSQL中,以下操作都是在MYSQL的唤醒符下举行的,而且种种命令以分行甘休。

Uptime: 53 sec

                    select * from 数据表名 order by desc ;

后生可畏、操作技术

如果 client 为utf8 , 改为: set char set 'gbk';

           〈11〉 节制展现的结果数,则用 select * from 数据表名 order by desc limit  约束数(如 3卡塔尔;

1、假若你打命令时,回车的后边发掘忘记加分号,你绝不重打叁回命令,只要打个分行回车就足以了。也等于说你能够把二个全部的通令分成几行来打,完后用分号作了结标记就OK。

                    或用:select * from 数据表名 where id limit  开始地方,甘休地点(如 1,4,即从第2条记下最初,查询4个结实卡塔尔国;

2、你能够选用光标上下键调出早前的命令。但原先笔者用过的三个MYSQL旧版本不援助。小编现在用的是mysql- 3.23.27-beta-win。

--------------------------------------------------------------------分割线-------------------------------------------------------------------------

                    或用:select * from 数据表名 where id between 值1 and 值2。

二、呈现命令

前些天牵线一些常用的MYSQL命令

            〈12〉带 and 的多规格查询(唯有同一时间满足全体查询条件才会呈现结果卡塔尔国: select * from 数据表名 where 字段1 = '值1' and 字段2 = '值2' and 、、、字段n = '值n'.

1、展现数据库列表。

  注意:你必得首首先登场入到MYSQL中,以下操作都是在MYSQL的提醒符下实行的,并且每一种命令以分行截止。

            〈13〉带or 的多规格查询(只要满意当中的一个条件就能够被询问卡塔尔:select * from 数据表名 where 字段1 = '值1' or  字段2 =  '值2' or  、、、or 字段n = '值n'.

show databases;

  大器晚成、操作本事

            〈14〉使用聚合函数查询:

刚早先时才七个数据库:mysql和test。mysql库很要紧它里面有MYSQL的系列音信,大家改密码和新增加客户,实际上就是用那些库举行操作。

  1、假使您打命令时,回车的后边意识忘记加分号,你不要重打一次命令,只要打个分店回车就能够了。

                            count()函数(展现结果为表中具有记录总量卡塔 尔(阿拉伯语:قطر‎,格式为:select count(*) from 数据表名;

2、彰显库中的数据表:

  约等于说你能够把三个全部的下令分成几行来打,完后用分号作了结标记就OK。

                            sum()函数(彰显结果为有些字段取值的总额卡塔 尔(英语:State of Qatar),格式为:select sum(某字段) from 数据表名;

use mysql; //展开库,学过FOXBASE的终将不会目生吧

  2、你能够行使光标上下键调出以前的指令。

                            avg()函数(显示结果为有些字段值的平均值卡塔尔国,格式为:select  avg (某字段) from 数据表名;

show tables;

  二、常用命令

                            max()函数(显示结果为某些字段值的最大值卡塔尔国,格式为:select  max  (某字段) from 数据表名;

3、展现数据表的结构:

  1、展现当前数据库服务器中的数据库列表:

                            min()函数(突显结果为有个别字段值得最小值卡塔尔‘格式为:select  min  (某字段) from 数据表名。

describe 表名;

  mysql> SHOW DATABASES;

            〈15〉连接查询:

4、建库:

  2、创立数据库:

                         内连接(字段相等连接卡塔 尔(英语:State of Qatar)查询:select 字段1,字段2、、、字段n from 数据表名1,数据表名2、、、数据表名n where 数据表名1.准绳字段 = 数据表名n.条件字段 =、、、=数据表名n.条件字段(即三回九转字段卡塔尔。

create database 库名;

  mysql> CREATE DATABASE 库名;

                         外连接(表连接卡塔 尔(英语:State of Qatar)查询:左连接,右连接, 两侧连接(全连接卡塔 尔(英语:State of Qatar):

5、建表:

  3、构建数据表:

                              左外连接(left join ,将左表中的全体数据分别于右表中的每条数据开展一连组合重返的结果除内连接的多寡外,还包涵左表中不切合条件的数据,并在右表中的相应岗位加多null值卡塔 尔(阿拉伯语:قطر‎,格式如:select

use 库名;

  mysql> USE 库名;

  • 字段1、、、数据表名(左表卡塔 尔(阿拉伯语:قطر‎  . 某字段 from 数据表名(左表卡塔尔国  left join 数据表名2 on 数据表名(左表卡塔尔国 . 某字段 = 数据表名2 . 某字段;

create table 表名 (字段设定列表);

  mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

                             右外接连(right join, 将右 表中的全部数据分别于左表中的每条数据开展一而再组合再次回到的结果除内接二连三的数额外,还富含右 表中不相符条件的多少,并在左表中的相应地方增添null值卡塔尔,格式如:select 字段1、、、数据表名(右表卡塔尔国 . 某字段 from 数据表名(右表卡塔 尔(阿拉伯语:قطر‎   right join 数据表名(左表卡塔 尔(英语:State of Qatar)  on 数据表名(右表卡塔尔国  . 某字段 = 数据表名(左表卡塔 尔(英语:State of Qatar)  . 某字段;

6、删库和删表:

  4、删除数据库:

            〈16〉符合条件查询

drop database 库名;

  mysql> DROP DATABASE 库名;

            〈17〉子查询:带 in 关键字的子查询(唯有查询重返结果列满含壹个值时,相比运算符才适用卡塔 尔(英语:State of Qatar);

drop table 表名;

  5、删除数据表:

                                 带比较运算符的子查询(卡塔尔;

7、将表中著录清空:

  mysql> DROP TABLE 表名;

                                 带 exists 关键字的子查询(内层查询语句不回去查询结果,而是回到真假值,若再次来到值为true时,外岑语句将打开查询卡塔尔国;

delete from 表名;

  6、将表中著录清空:

                                 带 any 关键字的子查询(any关键字表示满意个中私自一个标准卡塔 尔(英语:State of Qatar);

8、彰显表中的记录:

  mysql> DELETE FROM 表名;

                                 带 all 关键字的子查询(all 关键字表示知足全体规范卡塔尔。

select * from 表名;

      TRUNCATE TABLE 表名;

            〈18〉合并查询结果:union 关键字时将全部的询问结果合併到风姿罗曼蒂克道;

三、三个建库和建表甚至插入数据的实例

  7、往表中插入记录:

                                                    格式如:select user from 数据表1

drop database if exists school; //就算存在SCHOOL则删除

  mysql> INSERT INTO 表名 VALUES ("hyq","M");

                                                                  union

create database school; //建立库SCHOOL

  8、更新表中多少:

                                                                  select user from 数据表2

use school; //打开库SCHOOL

  mysql-> UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';

                                                        union all 关键字则只是轻巧的将查询结果合并到豆蔻年华道。

create table teacher //建立表TEACHER

  9、用文件形式将数据装入数据表中:

                                                    格式如:select user from 数据表1

(

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

                                                                  union all

id int(3) auto_increment not null primary key,

  10、导入.sql文件命令:

                                                                  select user from 数据表2

name char(10) not null,

  mysql> USE 数据库名;

            〈19〉为表取小名,例:select * from 表名 w where w.某字段 = '值'(必需是此表中的字段卡塔尔国。

address varchar(50) default ’深圳’,

  mysql> SOURCE d:/mysql.sql;

                                    为字段取外号,例:select 某字段1 as w_某字段1, 某字段2 as w_某字段2 from 表名 。

year date

  11、命令行修正root密码:

            〈20〉正则表明式查询,格式为:字段名 regexp '相称形式'。

); //建表截至

  mysql> UPDATE mysql.user SET password=PASSWORD('新密码') WHERE  User='root';

            〈21〉时间不生机勃勃格式的询问格式:

//以下为插入字段

  mysql> FLUSH PRIVILEGES;

                    获取当明天期:  select curdate()或select current_date();

insert into teacher values(’’,’glchengang’,’蒙特利尔一中’,’一九八零-10-10’);

  字段的增进和改换

                    获取当前岁月: select curtime()或select current_time();

insert into teacher values(’’,’jack’,’卡萨布兰卡一中’,’壹玖柒叁-12-23’);

  1.登入数据库 >mysql -u root -p 数据库名称

                    获取当前日期和时间:select now()或select current_timestamp()或select localtime()或select sysdate()或select localtimestamp();

注:在建表中(1卡塔尔将ID设为长度为3的数字字段:int(3)并让它各种记录自动加大器晚成:auto_increment并不可能为空:not null何况让她改成主字段primary key(2卡塔尔将NAME设为长度为10的字符字段(3卡塔 尔(英语:State of Qatar)将ADDRESS设为长度50的字符字段,况且缺省值为阿布扎比。varchar和char有怎么着差异吗,独有等之后的篇章再说了。(4卡塔尔国将YEA中华V设为日期字段。

  2.询问全数数据表 >show tables;

                    获取时间差:select datediff('yyyy-dd-tt','yyyy-dd-tt');

若果您在mysql提示符键入上边的通令也足以,但不便于调节和测验。你能够将以上命令原样写入八个文本文件中假若为 school.sql,然后复制到c://下,并在DOS状态踏入目录//mysql//bin,然后键入以下命令:

  3.查询表的字段音讯 >desc 表名称;

                    获取几天后的大运:select adddate(yyyy-dd-aa' , 天)  如select adddate(‘2000-03-03’,4卡塔尔国;

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

  4.1增加表字段

                    获取生龙活虎段时间后的日期:select adddate('yyyy-dd-aa',interval'年  月' year_month);

假设成功,空出大器晚成行无其余展现;如有错误,会有提示。(以上命令已经调试,你只要将//的笺注去掉就可以使用卡塔 尔(阿拉伯语:قطر‎。

  alter table table1 add transactor varchar(10) not Null;

                    获取前些天的日期:select subdate(yyyy-dd-aa' , 天) 如select adddate(‘二零零零-03-03’,4卡塔尔;

四、将文件数据转到数据库中

  alter table   table1 add id int unsigned not Null auto_increment primary key

[四]MySQL运算符

1、文本数据应契合的格式:字段数据里面用tab键隔断,null值用//n来代替.

  4.2.校勘有些表的字段类型及钦赐为空或非空 >alter table 表名称 change 字段名称 字段名称 字段类型 [是还是不是同意非空]; >alter table 表名称 modify 字段名    称 字段类型 [是还是不是同意非空];

      1:4种运算符及作用:

例:

  >alter table 表名称 modify 字段名称 字段类型 [是还是不是同意非空];

            算术运算符:首要实行算术运算,举个例子:加、减、乘、除等;

3 rose 柏林(Berlin卡塔尔国二中 壹玖柒捌-10-10

  4.3.修改某些表的字段名称及钦定为空或非空 >alter table 表名称 change 字段原名称 字段新名称 字段类型 [是或不是同意非空

            比较运算符:富含当先、小于、等于和不对等等。首要用以数值的可比,字符串的相配等方面。比方:like、in、 between and 、is null  等都是相比运算符,正则表明式的regexp也是相比运算符。注意:运算符’=‘用来判别数字、字符串和表明式等是不是等于,假使相等则赶回1,不然重回0;空值(null卡塔尔不可能用”=“、”!=或<>“、”>“等运算符剖断,运算符 iss null、"<=>"、iss not null 用来剖断操作数是不是为空置(null卡塔 尔(阿拉伯语:قطر‎;

4 mike 布Rees班第一中学 1971-12-23

  4.4比方要删减某一字段,可用命令:ALTEWrangler TABLE mytable DROP 字段 名;

            逻辑运算符:包含与、或、非和异或等逻辑运算。其重临值为布尔型,即 真值(1或true卡塔 尔(阿拉伯语:قطر‎和假值(0或false卡塔 尔(阿拉伯语:قطر‎;

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

  三、二个建库和建表以致插入数据的实例

            位运算符:包罗按位与、按位或 、按位取反、按位异或 、按位左移、按位右移等运算符。注意:位运算必须先将数据转变为二进制,然后再实行操作。    

只顾:你最佳将文件复制到//mysql//bin目录下,并且要先用use命令打表所在的库。

  drop database if exists school; //假如存在sudu则删除

[五]MySQL函数

五、备份数据库:(命令在DOS的//mysql//bin目录下试行卡塔 尔(阿拉伯语:قطر‎
mysqldump --opt school>school.bbb

  create database sudu; //建立库sudu

        包涵数学函数;字符串函数、日期与时光函数、条件决断函数、系统音信函数、加密函数、格式化函数。

表明:将数据库school备份到school.bbb文件,school.bbb是二个文本文件,文件名任取,展开看看你会有新意识。

  use school; //打开库sudu

 [六]MySQL索引:

mysql命令行常用命令

  create table teacher //建立表TEACHER

            普通索引, 唯一索引,全文索引,单列索引,多列索引,空间引得。

率先招、mysql服务的启动和苏息
net stop mysql
net start mysql
第二招、登陆mysql
语法如下: mysql -u客户名 -p客商密码
键入命令mysql -uroot -p, 回车后提示您输入密码,输入12345,然后回车就可以踏入到mysql中了,mysql的提醒符是:
mysql>
只顾,若是是连选择别的的机械上,则须要参加一个参数-h机器IP
其三招、扩大新顾客
格式:grant 权限 on 数据库.* to 顾客名@登入主机 identified by "密码"
如,扩展叁个客商user1密码为password1,让其能够在本机上登入, 并对拥有数据库有询问、插入、改正、删除的权限。首先用以root客商连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
假若期待该顾客能够在别的机器上登入mysql,则将localhost改为"%"。
生龙活虎经你不想user1有密码,可以再打三个限令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
第四招: 操作数据库
报到到mysql中,然后在mysql的升迁符下运营下列命令,每一个命令以根据地结束。
1、 展现数据库列表。
show databases;
缺省有多少个数据库:mysql和 test。 mysql库存放着mysql的种类和客商权限音信,大家改密码和新增添顾客,实际上就是对这一个库实行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 展现数据表的布局:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中著录:
delete from 表名;
7、 显示表中的笔录:
select * from 表名;
第五招、导出和导入数据

  (

 [七]查询优化

  1. 导出数据:
    澳门新萄京官方网站,mysqldump --opt test > mysql.test
    将在数据库test数据库导出到mysql.test文件,后面一个是四个文件文件
    如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
    即使把数据库dbname导出到文件mysql.dbname中。
  2. 导入数据:
    mysqlimport -u root -p123456 < mysql.dbname。
    不用解释了啊。
  3. 将文件数据导入数据库:
    文件数据的字段数据里面用tab键隔开分离。
    use test;
    load data local infile "文件名" into table 表名;

  id int(3) auto_increment not null primary key,

        1:索引查询:

SQL常用命令使用情势:

  name char(10) not null,

              第后生可畏种(依次查询卡塔 尔(英语:State of Qatar):explain select from 数据表名 where 字段名 = ‘值’;

(1) 数据记录筛选:

  address varchar(50) default '深圳',

              第二种:create index index_字段名 on 数据表名(字段名卡塔 尔(英语:State of Qatar);

sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

  year date

                            explain select from 数据表名 where 字段名 = ‘值’;

sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"

MySQL数据库的简单操作,mysql命令集锦。  ); //建表截止

 

sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"

  //以下为插入字段

 

sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

  insert into teacher values('','allen','飞数科学和技术1','二零零五-10-10');

接受doc窗口链接MySQL

sql="select * from 数据表 where 字段名 between 值1 and 值2"

  insert into teacher  values('','jack','飞数科学和技术2','二〇〇五-12-23');要是您在mysql提示符键入上边的授命也得以,但不平价调节和测量试验。

1、连采用本机上的MYSQL。
    首先张开DOS窗口,然后走入目录mysqlbin,再键入命令mysql -u root -p,回车的后边提示您输密码.注意顾客名前能够有空格也得以未有空格,可是密码前必得未有空格,不然令你再度输入密码。
假诺刚安装好MYSQL,一级客商root是不曾密码的,故直接回车就能够步入到MYSQL中了,MYSQL的唤起符是: mysql>
2、连接到长途主机上的MYSQL。假设远程主机的IP为:110.110.110.110,顾客名称为root,密码为abcd123。则键入以下命令:
    mysql -h110.110.110.110 -u root -p 123;(注:u与root之间能够不要加空格,此外也同等卡塔 尔(阿拉伯语:قطر‎
3、退出MYSQL命令: exit (回车)

(2) 更新数据记录:

  (1)你能够将上述命令原样写入多少个文件文件中,假设为sudu.sql,然后复制到c:\下,并在DOS状态步入目录mysqlbin,然后键入以下命令:

 

sql="update 数据表 set 字段名=字段值 where 条件表达式"

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

修正密码

sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表明式"

  要是成功,空出风流浪漫行无此外显示;如有错误,会有提示。(以上命令已经调节和测验,你少年老成旦将//的表明去掉就能够使用)。

格式:mysqladmin -u用户名 -p旧密码 password 新密码

(3) 删除数据记录:

  (2)也许步向命令行后应用 mysql> source c:sudu.sql; 也足以将sudu.sql文件导入数据库中。

1、给root加个密码ab12。
第意气风发在DOS下步入目录mysqlbin,然后键入以下命令
    mysqladmin -u root -password ab12
注:因为早前时root未有密码,所以-p旧密码风流倜傥项就足以简简单单了。
2、再将root的密码改为djg345。
    mysqladmin -u root -p ab12 password djg345

sql="delete from 数据表 where 条件表明式"

  四、将文件数据转到数据库中

追加新顾客

sql="delete from 数据表" (将数据表全体记录删除)

  1、文本数据应切合的格式:字段数据里面用tab键隔开分离,null值用n来代替.例:

只顾:和上边差别,上边包车型客车因为是MYSQL意况中的命令,所未来边都带三个子集团作为命令甘休符
格式:grant select on 数据库.* to 顾客名@登陆主机 identified by “密码”

(4) 增多数据记录:

  3 rose 飞数科学技术1 一九七九-10-10

1、扩充叁个客户test1密码为abc,让她能够在其他主机上登入,并对富有数据库有查询、插入、改善、删除的权位。首先用root客户连入MYSQL,然后键入以下命令:
    grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;
但净增的客商是可怜摇摇欲坠的,你想如某一个人精晓test1的密码,那么他就能够在internet上的此外风度翩翩台微型机上登入你的mysql数据库并对你的数据足以为所欲为了,消除办法见2。
2、增添三个顾客test2密码为abc,让她只可以够在localhost上登陆,并能够对数据库mydb进行询问、插入、改良、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机卡塔 尔(阿拉伯语:قطر‎,那样客户即利用知道test2的密码,他也无从从internet上一向访问数据库,只能通过MYSQL主机上的web页来访谈了。
    grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;
倘若您不想test2有密码,能够再打叁个限令将密码消掉。
    grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;

sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

  4 mike 飞数科技(science and technology)2 壹玖柒壹-12-23

改正数据库编码

sql="insert into 指标数据表 select * from 源数据表" (把源数据表的笔录增加到目标数据表)

  假如你把这两组数据存为速度sudu.txt文件,放在c盘根目录下。

1、修改MYSQL的配备文件:my.ini里面改良default-character-set=gbk
2、代码运转时更改:
   ①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
   ②PHP代码:header("Content-Type:text/html;charset=gb2312");
   ③C语言代码:int mysql_set_character_set( MYSQL * mysql, char * csname);
该函数用于为方今接连装置暗中同意的字符集。字符串csname钦点了1个有效的字符集名称。连接核查成为字符集的暗中认可核查。该函数的干活办法与SET NAMES语句看似,但它还可以安装mysql- > charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。

(5) 数据记录总结函数:

  2、数据传入命令 load data local infile "c:sudu.txt" into table 表名;

 

AVG(字段名) 得出三个表格栏平均值
COUNT(*|字段名) 对数码行数的计算或对某风度翩翩栏有值的多少行数计算
MAX(字段名) 得到叁个表格栏最大的值
MIN(字段名) 拿到多少个表格栏最小的值
SUM(字段名) 把数据栏的值相加

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

改良数据表音信

援用以上函数的不二等秘书诀:

  五、备份数据库:(命令在DOS的mysqlbin目录下实行)

    例子1:单表的MySQL UPDATE语句:
       UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
    例子2:多表的UPDATE语句:
        UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]
        UPDATE语法可以用新值更新原有表行中的各列。SET子句提示要修正哪些列和要给予什么值。WHERE子句钦定应改善哪些行。若无WHERE子句,则更新具备的行。纵然钦赐了OMuranoDER BY子句,则根据被钦定的意气风发意气风发对行进行翻新。LIMIT子句用于给定二个限值,约束能够被更新的行的多少。

sql="select sum(字段名) as 小名 from 数据表 where 条件表明式"
set rs=conn.excute(sql)

  1.导出总体数据库

 

用 rs("外号") 获取统的计值,别的函数运用同上。

  导出文件默许是存在mysqlbin目录下

充实字段

(6) 数据表的创制和删除:

  mysqldump -u 客商名 -p 数据库名 > 导出的文本名

命令:alter table 表名 add字段 类型 其他;
比如:在表MyClass中加多了二个字段passtest,类型为int(4),暗中同意值为0
   mysql> alter table MyClass add passtest int(4) default '0'

CREATE TABLE 数据表名称(字段1 项目1(长度),字段2 品种2(长度) …… )

  mysqldump -u user_name -p123456 database_name > outfile_name.sql

加索引

例:CREATE TABLE tab01(name varchar(50),datetime default now())

  2.导出贰个表

mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例子: mysql> alter table employee add index emp_name (name);

DROP TABLE 数据表名称 (永恒性删除叁个数据表)

  mysqldump -u 客户名 -p 数据库名 表名> 导出的文件名

加主关键字的目录

select * from test.text where 1 *代表全体栏目 test指数据库名text指表名 where指条件
Select remark as r id,uid from test.text where 指id uid 2栏呈现 as 就是给栏目命名
select * from test.text where id>4 指ID大于4的都显得出来
select * from test.text where id<>4 指ID 不对等4的都出来
select * from test.text where id=1 指ID等于1的出来
select * from test.text where id in(1,3,5) 指找出ID为1 3 5的 not in()则相反
select * from test.text where uid like "%王%" 指UID里要是带王字的都出来 %王 表示什么王 ,王%代表 王什么。
select * from test.text where remark like "%学%" 指remark里带学的都出去
select * from test.text where id between 1 and 10 and uid like "%王%"表示ID 1-10 并且 UID带王字的出来
select * from test.text where id not between 1 and 4 指ID不在1-4里面的 出来
(1 and 2 意味着满足1且知足2 1 or 2 意味满意1和满意2 卡塔 尔(英语:State of Qatar)and or能够接连众多条件
select * from test.text group by remark 展现列出remark有个别许体系 如图↓ 有5类 group by 正是分组命令

  mysqldump -u user_name -p database_name table_name >  outfile_name.sql

mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);

select * from test.text order by regdate asc 把regdate 按从小到大排列
ASC不打正是私下认可从小到大 DESC表示从大到小 如 order desc
select * from test.text order by regdate asc,id desc 那样就询问出日期从小到大 然后在满足日期的排列后 ID从大到小排列
select * from test.text limit 0,5 表示取5条记录 纵然是3,6 那正是第4-第9条记下被抽出 如图↓
如过只写叁个6那就等于0,6
select * from test.text group by remark order by regdate limit 6 先分组 再排序 LIMIT放最终 那是语法不能够颠倒。
select count(id) from test.text count()表示查询有多少条音信那样根据表显示出10条
select max(regdate) from test.text max() 查询最大值 只好针对数字 包罗日期 依据表凸显出贰零壹零-10-22 14:41:30
select min(regdate)from test.text min() 查询最小值 只好针对数字 包蕴日期 依据表显示出二〇〇八-10-07 13:21:32
select avg(id) from test.text avg() 查询平均值 也只针对数字 包含日期 展现出5.5 如算平均分数
select sum(id) from test.text sum() 查询累积值 数字包括日期 呈现出55 1 2 3 。。10=55 如算总分数
insert 插入语句
insert into `text`(`id`,`uid`,`regdate`,`remark`)values(null,'ken',now(),'学子') 在那之中null就是未有 now()正是岁月日期自动生成
字段的种类要设计好。非常注意!

  3.导出贰个数据库结构

加唯风姿洒脱节制条件的目录

Update 改正语句
Update 表名 set 字段=值 where 条件 LIMIT(可省略)
update test.text set uid='kenchen' where id=11 意思是把ID是11的UID 改成kenchen

  mysqldump -u user_name -p -d --add-drop-table database_name >  outfile_name.sql

mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique emp_name2(cardnumber);

Delete 删除语句
Delete from 表命 where limit
Delete from text where id=3 意思是把ID=3的音信条删除!

  -d 未有数据 --add-drop-table 在各种create语句从前扩张二个drop table

除去有个别索引

mysql 字段类型表达- -

  4.带语言参数导出

mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;

MySQL扶植大气的列类型,它能够被分为3类:数字类型、日期和时间项目甚至字符串(字符)类型。本节先是付诸可用类型的三个概述,並且总括每一种列类型的蕴藏供给,然后提供每种类中的类型性质的更详尽的描述。概述有意简化,更详实的辨证应该考虑到关于特定列类型的叠合新闻,举例你能为其钦定值的允许格式。

  mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk  --skip-opt database_name > outfile_name.sql

充实字段:

由MySQL援助的列类型列在底下。下列代码字母用于描述中:

  六、导出查询数据

mysql> ALTER TABLE table_name ADD field_name field_type;

M
建议最大的显示尺寸。最大的合法的显得尺寸是 255 。
D
适用于浮点类型并且提议跟随在十进制小数点后的多少的多少。最大大概的值是30,不过应当不高于M-2。
方括号(“[”和“]”)提出可选的种类修饰符的某个。

方法一:
直白施行命令:
mysql> select count(1) from table  into outfile '/tmp/test.xls';

矫正原字段名称及项目:

留心,要是您钦定五个了为ZEROFILL,MySQL将为该列自动地追加UNSIGNED属性。

Query OK, 31 rows affected (0.00 sec)
在目录/tmp/下会时有爆发文书test.xls
欣逢的主题素材:
mysql> select count(1) from table   into outfile '/data/test.xls';
报错:
ERROR 1 (HY000): Can't create/write to file '/data/test.xls' (Errcode: 13)
兴许原因:mysql未有向/data/下写的权能 

mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
三个超小的整数。有号子的范围是-128到127,无符号的界定是0到255。

方法二:
询问都活动写入文件:
mysql> pager cat > /tmp/test.txt ;
PAGER set to 'cat > /tmp/test.txt'
随后的兼具查询结果都自动写入/tmp/test.txt',并前后覆盖
mysql> select * from table ;
30 rows in set (0.59 sec)
在框口不再显得查询结果

去除字段:

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
叁个小板寸。有暗记的节制是-32768到32767,无符号的范围是0到65535。

方法三:
跳出mysql命令行
mysql -h 127.0.0.1 -u root -p XXXX -P 3306 -e "select * from table"  > /tmp/test/txt

MySQL ALTER TABLE table_name DROP field_name;

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一个中档大小整数。有标记的限定是-8388608到8388607,无符号的限量是0到16777215。

七、数据导入之excel转sql

 

INT[(M)] [UNSIGNED] [ZEROFILL]
叁个正规尺寸整数。有标识的限量是-2147483648到2147483647,无符号的限制是0到4294967295。

 

修正表名

INTEGER[(M)] [UNSIGNED] [ZEROFILL]
那是INT的一个同义词。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
几个大整数。有暗记的界定是-9223372036854775808到9223372036854775807,无符号的节制是0到
18446744073709551615。注意,全体算术运算用有号子的BIGINT或DOUBLE值达成,因而你不应当利用过量9223372036854775807(陆十六位)的有号子大整数,除了位函数!注意,当五个参数是INTEGEEscort值时,-、 和*将运用BIGINT运算!那意味要是你乘2个大整数(或出自于重返整数的函数),假如结果大于9223372036854775807,你能够赢得意外的结果。三个浮点数字,不可能是无符号的,对一个单精度浮点数,其精度能够是<=24,对三个双精度浮点数,是在25 和53时期,那么些项目如FLOAT和DOUBLE类型立时在下边描述。FLOAT(X)有相应的FLOAT和DOUBLE相近的节制,可是来得尺寸和小数位数是未定义的。在MySQL3.第23中学,那是三个真正的浮点值。在更早的MySQL版本中,FLOAT(precision)总是有2位小数。该句法为了ODBC宽容性而提供。

在急需导入的多寡最后一列,写入三个excel公式,

命令:rename table 原表名 to 新表名;
比如:在表MyClass名字改成为YouClass
   mysql> rename table MyClass to YouClass;
当您施行 RENAME 时,你不能有其余锁定的表或运动的事情。你同风华正茂也非得有对原初表的 ALTEKuga 和 DROP 权限,以至对新表的 CREATE 和 INSERT 权限。
设若在多表更名中,MySQL 遭遇到任何不当,它将对具有被更名的表举办战败更名,将每件东西退回到中期状态。
RENAME TABLE 在 MySQL 3.23.23 中被投入。

FLOAT[(M,D)] [ZEROFILL]
一个小(单精密)浮点数字。不可能无标记。允许的值是-3.402823466E 38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E 38。M是显示上升的幅度而D是小数的位数。未有参数的FLOAT或有<24 的贰个参数表示二个单精密浮点数字。
DOUBLE[(M,D)] [ZEROFILL]
一个例行尺寸(双精致)浮点数字。不能够无标志。允许的值是-1.7976931348623157E 308到-2.225073858507二〇一四E-308、 0和2.2250738585072016E-308到1.7976931348623157E 308。M是展现上涨的幅度而D是小数位数。未有叁个参数的DOUBLE或FLOAT(X)(25 < = X < = 53卡塔 尔(英语:State of Qatar)代表一个双小巧玲珑浮点数字。
DOUBLE PRECISION[(M,D)] [ZEROFILL]
REAL[(M,D)] [ZEROFILL]
这些是DOUBLE同义词。
DECIMAL[(M[,D])] [ZEROFILL]
三个未压缩(unpack)的浮点数字。无法无标记。行为就像三个CHA本田CR-V列:“未压缩”意味着数字作为三个字符串被存放,值的每一人使用一个字符。小数点,何况对于负数,“-”符号不在M中总计。要是D是0,值将从未小数点或小数部分。DEINSPIREL值的最大范围与DOUBLE相似,可是对一个加以的DE凯美瑞L列,实际的范围能够透过M和D的挑肥拣瘦被约束。假诺D被归纳,它棉被服装置为0。如若M被省掉,它被设置为10。注意,在MySQL3.22里,M参数满含符号和小数点。

=concatenate("insert into billing_rates_tbl(res_type,sub_res_id,duration,unit)values(’”;rc[-4];"','";rc[-3];"','";rc[-2];"','";rc[-1];"');")

 

NUMERIC(M,D) [ZEROFILL]
那是DE奥迪A6L的二个同义词。 DATE
一个日期。帮助的界定是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式来呈现DATE值,可是允许你选取字符串或数字把值赋给DATE列。
DATETIME
叁个日期和岁月组合。扶助的限量是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式来突显DATETIME值,但是允许你利用字符串或数字把值赋给DATETIME的列。
TIMESTAMP[(M)]
二个时日戳记。范围是'1969-01-01 00:00:00'到2037年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来呈现TIMESTAMP值,决计于是或不是M是14(或简捷)、12、8或6,不过允许你采用字符串或数字把值赋给TIMESTAMP列。三个TIMESTAMP列对于记录三个INSERT或UPDATE操作的日期和时间是卓有成效的,因为只要你不友善给它赋值,它自动地被设置为近些日子操作的日期和时间。你以能够由此赋给它一个NULL值设置它为近年来的日子和岁月。
TIME
三个时刻。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式来展现TIME值,但是允许你选拔字符串或数字把值赋给TIME列。
YEAR[(2|4)]
一个2或4位数字格式的年(缺省是4位)。允许的值是1900到2155,和0000(4位年格式卡塔 尔(阿拉伯语:قطر‎,假诺你使用2位,1966-2069( 70-69)。MySQL以YYYY格式来呈现YEATiguan值,然而允许你把利用字符串或数字值赋给YEAMurano列。(YEA君越类型在MySQL3.22中是新类型。卡塔尔
CHAR(M) [BINARY]
叁个定长字符串,当存款和储蓄时,总是是用空格填满右侧到钦点的长度。M的节制是1 ~ 251个字符。当班值日被搜寻时,空格尾巴部分被删除。CHA陆风X8值依据缺省字符集以大小写不区分的格局排序和比较,除非给出BINALX570Y关键词。NATIONAL CHA马自达MX-5(短格局NCHA中华V)是ANSI SQL的法子来定义CHA传祺列应该利用缺省字符集。那是MySQL的缺省。CHA宝马X3是CHARACTE奔驰G级的八个缩写。
[NATIONAL] VARCHAR(M) [BINARY]
八个变长字符串。注意:当班值日被积存时,尾巴部分的空格被删除(这两样于ANSI SQL标准)。M的范围是1 ~ 2五二十一个字符。 VARCHA大切诺基值依据缺省字符集以大小写不区分的格局排序和相比较,除非给出BINA讴歌ZDXY关键词值。 VARCHA汉兰达是CHARACTEPAJERO VALX570YING二个缩写。
TINYBLOB  
TINYTEXT
贰个BLOB或TEXT列,最大尺寸为255(2^8-1)个字符。
BLOB
TEXT
一个BLOB或TEXT列,最大尺寸为65535(2^16-1)个字符。
MEDIUMBLOB  
MEDIUMTEXT
一个BLOB或TEXT列,最大尺寸为16777215(2^24-1)个字符。
LONGBLOB  
LONGTEXT
二个BLOB或TEXT列,最大尺寸为4294967295(2^32-1)个字符。
ENUM('value1','value2',...)
枚举。三个独有二个值的字符串对象,这么些值式选自与值列表'value1'、'value2', ...,或NULL。二个ENUM最多能有65535不等的值。
SET('value1','value2',...)
叁个集合。能有零个或多少个值的多个字符串对象,此中每二个要求从值列表'value1', 'value2', ...选出。三个SET最多能有六10个成员。

注:假若有日期的话就把公式改进一下
=concatenate("insert into employee(name,birthday,email,hobby)values('",rc[-4],"','",text(rc[-3],"yyyy-mm-dd hh:mm:ss"),"','",rc[-2],"','",rc[-1],"');")

**备份数据库
**

转自csdn知识库

      将最终一列选中,复制数据到二个文件文件,将该公文文件另存为八个.sql文件(别忘了删除第风流洒脱行的“sql”)。

**命令在DOS的[url=file://\mysql\bin]\mysql\bin[/url]目录下实行

  八、xls直接导入mysql

1.导出任何数据库
**

http://www.cnblogs.com/lellansin/archive/2012/07/07/2580329.html

导出文件暗许是存在mysqlbin目录下
    mysqldump -u 顾客名 -p 数据库名 > 导出的公文名
    mysqldump -u user_name -p123456 database_name > outfile_name.sql

执行sql:load data local infile '/Users/zousunying/workspace/scripts/test/pda_cost_info2.xls' into table pda_cost_info_test fields terminated by 't';

2.导出三个表**

 

mysqldump -u 顾客名 -p 数据库名 表名> 导出的公文名
    mysqldump -u user_name -p database_name table_name > outfile_name.sql

 复制创设表

3.导出一个数据库结构**

1.create table A like B

mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
    -d 没有数据 –add-drop-table 在各种create语句在此之前扩充三个drop table

此种形式在将表B复制到A时候会将表B完整的字段结商谈目录复制到表A中来。

4.带语言参数导出

2.create table a as select x,x,x,x from b limit 0

mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql
举个例子,将aaa库备份到文件back_aaa中:
  [root@test1 root]# cd /home/data/mysql
  [root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa

此种方式只会将表B的字段结构复制到表A中来,但不会复制表B中的索引到表A中来。这种格局比较灵活能够在复制原表表结构的还要钦赐要复制哪些字段,而且本身复制表也得以依靠必要追加字段结构。

 

二种方法在复制表的时候均不会复制权限对表的装置。譬如说原本对表B做了权力设置,复制后,表A不辜负有近似于表B的权力。

 

 

**建库和建表实例-1**
**

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(”,’allen’,'洛桑一中’,'1979-10-10′);
insert into teacher values(”,’jack’,'第比Liss二中’,'一九七四-12-23′);

大器晚成经你在mysql提醒符键入上边包车型大巴命令也得以,但不方便人民群众意侦查试。
1、你能够将以上命令原样写入一个文件文件中,假使为school.sql,然后复制到c:\下,并在DOS状态走入目录[url=file://\mysql\bin]\mysql\bin[/url],然后键入以下命令:
    mysql -uroot -p密码 < c:\school.sql
要是成功,空出意气风发行无别的展现;如有错误,会有提醒。(以上命令已经调节和测验,你假若将//的注释去掉就可以使用卡塔尔。

2、或许进入命令行后应用 mysql> source c:\school.sql; 也足以将school.sql文件导入数据库中。

** **

**建库和建表实例-2**


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'',''河内一中'',''1976-10-10'');
insert into teacher values('''',''jack'',''麦纳麦一中'',''1971-12-23'');

注:在建表中
1、将ID设为长度为3的数字字段:int(3);并让它每一种记录自动加大器晚成:auto_increment;并不能为空:not null;并且让她成为主字段primary key。

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

3、将ADDRESS设为长度50的字符字段,何况缺省值为日内瓦。

4、将YEA酷路泽设为日期字段。

  

 

在数据库中拼接字符串  concat 函数

UPDATE user_info SET image_url = CONCAT ('/Public/Uploads/Oa/Introduce/students',image_url);

在数据库中截取字符串  substr 函数

UPDATE user_info SET image_url = CONCAT (image_url, 2, 5);

 

除去表中全体数据,完全清零

TRUNCATE TABLE table1

去重查询

SELECT *, COUNT(DISTINCT keyword) FROM table(表名) GROUP BY user_id ORDER BY TIME DESC

 

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:MySQL数据库的简单操作,mysql命令集锦

关键词: