MySQL的基本命令

作者&投稿:戏呢 (若有异议请与网页底部的电邮联系)
mysql数据库中最常用的几个命令~

Mysql常用命令行大全 机 第一招、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 SHOW DATABASES; 2:2、创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一个数据库表 mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 6:显示表的结构: mysql> DESCRIBE MYTABLE; 7:往表中加入记录 mysql> insert into MYTABLE values ("hyq","M"); 8:用文本方式将数据装入数据库表中(例如D:/mysql.txt) mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE; 9:导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 10:删除表 mysql>drop TABLE MYTABLE; 11:清空表 mysql>delete from MYTABLE; 12:更新表中数据 mysql>update MYTABLE set sex="f" where name='hyq'; posted on 2006-01-10 16:21 happytian 阅读(6) 评论(0) 编辑 收藏 收藏至365Key 13:备份数据库 mysqldump -u root 库名>xxx.data 14:例2:连接到远程主机上的MYSQL 假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令: mysql -h110.110.110.110 -uroot -pabcd123 (注:u与root可以不用加空格,其它也一样) 3、退出MYSQL命令: exit (回车)

1. SELECT:查询内容,语法:SELECT 列名称 FROM 表名称
2. SELECT DISTINCT 查询非重复内容,语法:SELECT DISTINCT 列名称 FROM 表名称
3. WHERE 查询条件, 子句中可以指定任何条件,条件与条件之间用and 和 or 隔开
语法:SELECT 列名称 FROM 表名称 WHERE条件1 AND 条件2
4. AND 和 OR 运算符,将 WHERE 中的多个条件结合起来。操作符包括:=(等于)、或=!(不等于)、>(大于)、=(大于等于)、<=(小于等于)
空值条件:IS NULL;非空值IS NOT NULL;查询多个值IN()
5. ORDER BY 排序,默认为升序,字段后加DESC为降序
6. GROUP BY 分组 ,对结果进行分组
7. LEFT JOIN 左连接,两张表合并保留左表的全部内容,只要掌握左连接
语法:SELECT列名称 FROM 表1 LEFT JOIN 表2 ON 表1.某列 = 表2.某列
了解:RIGHT JOIN(右连接),INNER JOIN(内连接)、FULL JOIN(全连接)

8. UNION all上下合并,两张表上下合并(了解)
9. LIKE 模糊查询(了解)
语法: SELECT 列名称 FROM 表名称 WHERE 某列 like “%字符%”
10.SUM 求和
语法:SELECT SUM(列名称) FROM 表名称
11. COUNT 计数
语法:SELECT COUNT(列名称) FROM 表名称
12. IF 判断 语法:同excel
13. MIN,MAX等
14. round 四舍五入
15. concat 字符串连接
16. UPDATE:修改内容,语法:update 表名 set 修改字段= 新内容 where 修改条件
17. substring 字符串截取
18. cast 定义数值类型(了解)
19. CASE … WHEN … THEN …. END 满足某一个条件时执行/替换,可用于条件计数
20. DATEDIFF 两个日期之间间隔的天数
21. SUBDATE 日期往前数 ,语法:SUBDATE(date,INTERVAL expr unit)
例子:SUBDATE(“2018-10-1”,INTERVAL 1 day) 代表10月1日往前数1天,结果是9月30;SUBDATE(“2018-10-1”,INTERVAL 1 month) 代表10月1日往前数1月,结果是2018-9-1

启动: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 fieldName dateType;
增加多个字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;
多行命令输入:注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;
增加一个管理员帐户:grant all on *.* to user@localhost identified by "password";
每条语句输入完毕后要在末尾填加分号';',或者填加'\g'也可以;
查询时间:select now();
查询当前用户:select user();
查询数据库版本:select version();
查询当前使用的数据库:select database();

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

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

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

4、创建表是先判断表是否存在
create table if not exists students(……);

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

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

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

8、修改列的类型
alter table table1 modify id int unsigned;//修改列id的类型为int unsigned
alter table table1 change id sid int unsigned;//修改列id的名字为sid,而且把属性修改为int unsigned

9、创建索引
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
create unique index ind_id on table1 (id);//建立唯一性索引

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

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

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

13、MySQL不支持的功能
事务,视图,外键和引用完整性,存储过程和触发器

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

15、使用索引的缺点
1)减慢增删改数据的速度;
2)占用磁盘空间;
3)增加查询优化器的负担;
当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案;

16、分析索引效率
方法:在一般的SQL语句前加上explain;
分析结果的含义:
1)table:表名;
2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的;
3)possible_keys:查询可以利用的索引名;
4)key:实际使用的索引;
5)key_len:索引中被使用部分的长度(字节);
6)ref:显示列名字或者"const"(不明白什么意思);
7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数;
8)extra:MySQL的建议;

17、使用较短的定长列
1)尽可能使用较短的数据类型;
2)尽可能使用定长数据类型;
a)用char代替varchar,固定长度的数据处理比变长的快些;
b)对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能;
c)万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了;
d)对于MyISAM类型的数据表,虽然转换成固定长度的数据列可以提高性能,但是占据的空间也大;

18、使用not null和enum
尽量将列定义为not null,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询;
如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的;

19、使用optimize table
对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。可以通过使用optimize table来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。 optimize table可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表;

20、使用procedure analyse()
可以使用procedure analyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedure analyse()就可以了;例如:
select * from students procedure analyse();
select * from students procedure analyse(16,256);
第二条语句要求procedure analyse()不要建议含有多于16个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长;

21、使用查询缓存
1)查询缓存的工作方式:
第一次执行某条select语句时,服务器记住该查询的文本内容和查询结果,存储在缓存中,下次碰到这个语句时,直接从缓存中返回结果;当更新数据表后,该数据表的任何缓存查询都变成无效的,并且会被丢弃。
2)配置缓存参数:
变量:query_cache _type,查询缓存的操作模式。有3中模式,0:不缓存;1:缓存查询,除非与 select sql_no_cache开头;2:根据需要只缓存那些以select sql_cache开头的查询; query_cache_size:设置查询缓存的最大结果集的大小,比这个值大的不会被缓存。

22、调整硬件
1)在机器上装更多的内存;
2)增加更快的硬盘以减少I/O等待时间;
寻道时间是决定性能的主要因素,逐字地移动磁头是最慢的,一旦磁头定位,从磁道读则很快;
3)在不同的物理硬盘设备上重新分配磁盘活动;
如果可能,应将最繁忙的数据库存放在不同的物理设备上,这跟使用同一物理设备的不同分区是不同的,因为它们将争用相同的物理资源(磁头)。

如何使用mysql命令行
答:mysql的所有命令都以";"或者\g为结束符 2 新建数据库 在新建数据库之后,我们先设置一下字符集 mysql>SET NAMES utf8;然后再创建数据库 mysql>CREATE DATABASE lesson 3 显示所有数据库 mysql>SHOW DATABASES;4 使用数据库 mysql>USE 数据库名;5 新建表 mysql>CREATE TABLE study(id int(11) ...

为什么在DOS窗口中使用MySQL时,输入命令后只出现一个箭头,输入什么内容...
答:MySQL命令语句需要用“;”结束,表示一条命令。分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的语句。如果使用的是 MS Access 和 SQL Server 2000,则不必在每条 SQL 语句之后使用分号,不过某些数据库软件要求必须使用分号。

mysql启动命令
答:2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start。3、使用 safe_mysqld 启动:safe_mysqld&。含义 "linux启动mysql的命令,为您提供linux启动mysql的命令图文信息,打开linux系统,在linux的桌面的空白处右击。在弹出的下拉选项里,点击打开终端。在启动之前需要修改mysql的配置文件。修改之后可以...

在windows系统下,启动与停机mysql的命令是?
答:在 Windows 系统下,启动和停止 MySQL 服务器的命令会略有不同,具体取决于你的安装方式和版本。以下是几种常见的方法:如果你通过 MySQL 安装程序安装了 MySQL,并且将其配置为 Windows 服务,则可以通过以下命令启动和停止 MySQL:启动 MySQL 服务:打开命令提示符 (cmd),键入 net start mysql,然后...

mysql数据库命令
答:同样是两种方法,一种用phpmyadmin(mysql数据库管理)工具,或者mysql命令行。2.3.1 用phpmyadmin工具 从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。在"sql"菜单中,浏览选择刚才导出的sql文件,点击“执行”以上载并执行。注意:phpmyadmin对上载的文件大小有限制,php本身对上载文件...

启动mysql服务器的命令是什么
答:2、启动MySQL的命令。3、linux启动mysql。4、linux中如何启动mysql。linux启动mysql的命令,为您提供linux启动mysql的命令图文信息,打开linux系统,在linux的桌面的空白处右击。在弹出的下拉选项里,在启动之前需要修改mysql的配置文件,修改之后可以使用servicemysqldstart命令来启动mysql服务,使用命令ps-ef|...

mysql中创建数据库命令是?
答:若表已存在、没有当前数据库或者数据库不存在,则会出现错误。mysql> USE test_db;Database changed mysql> CREATE TABLE tb_emp1 -> (-> id INT(11),-> name VARCHAR(25),-> deptId INT(11),-> salary FLOAT -> );Query OK, 0 rows affected (0.37 sec)...

1. SQL的基本操作指令有哪些?至少举出5个
答:"hyq","M");8、更新表中数据:mysql-> UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';9、用文本方式将数据装入数据表中:mysql> load data local infile "d:/mysql.txt" into table 表名;10、导入.sql文件命令:mysql> USE 数据库名;mysql> source d:/mysql.sql;

15个MySQL常用基本SQL语句
答:数据库和数据表之间的关系可以用下面这个图来表示,对于一个数据库来说,有多个数据表。在正式开始写SQL语句之前,需要说明两点。这里通过MySQL Workbench来写SQL代码,在Workbench中,执行一条SQL语句的方式有两种。了解了这之后,接下来介绍一些常见的命令,分两部分:数据库常用命令和数据表常用命令。1、...

如何用Mysql的命令行客户端创建数据库
答:1、 连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码.如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的...