MySql常用查询命令操作大全

MYSQL常用查命令:

mysql> select version(); 查看MySQL的版本号
mysql> select current_date(); 查看MySQL的当前日期
mysql> select version(),current_date(); 同时查看MySQL的版本号和当前日期
mysql> show databases; 显示当前存在的数据库
mysql> USE mysql 选择使用数据库(USE和QUIT命令不需要分号结束)
Database changed
mysql> select database(); 显示当前选择的数据库
mysql> show tables; 显示当前数据库中存在的表
mysql> select * from db; 显示表(db)的内容
mysql> describe mytable; 显示表的结构

或show columns from 表名;

mysql> select
-> user()
-> \c
mysql>

练习如下操作:

mysql> select
-> USER()
-> ,
-> now()
->;
mysql> Select (20+5)*4;
mysql> Select (20+5)*4,sin(pi()/3);
mysql> Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名为Result)

查看MySQL当前用户占用的连接数

命令: show processlist;

如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。

show processlist;只列出前100条,如果想全列出请使用show full processlist;

mysql> show processlist;

一。数据库:

mysql> CREATE DATABASE abccs; 创建一个数据库
mysql> USE abccs 选择使用数据库
mysql> drop database 数据库名; 删除数据库

二。表:

1。创建一个表mytable:

mysql> CREATE TABLE mytable
-> (
-> name VARCHAR(20),
-> sex CHAR(1),
-> birth DATE,
-> birthaddr VARCHAR(20)
-> );

建立一个员工生日表,表的内容包含员工姓名、性别、出生日期、出生城市。

由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。

可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。

性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);

birth列则使用DATE数据类型。

2。查询刚添加的记录:

mysql> select * from mytable;

Empty set (0.00 sec) 这说明刚才创建的表还没有记录。

3。添加新记录:

mysql> insert into mytable
-> values
->(
->'abccs',
->'f',
->'1977-07-07',
->'china'
->);

4。用文本方式将数据装入一个数据库表:

一条一条地添加新记录,实在太麻烦。

创建一个文本文件“mysql.txt”,按表结构排好每行每条记录,用定位符(tab)把值分开。

abccs f 1977-07-07 china
mary f 1978-12-12 usa
tom m 1970-09-02 usa

使用此命令将文本文件“mytable.txt”装载到表中:

mysql> Load data local infile "mytable.txt" into table mytable;

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

注意:你最好将文件复制到mysql/bin目录下,并且要先用use命令选表所在的库。

5。更新记录:

mysql> update mytable set birth = "1973-09-02" where name = "tom";

6。删除记录:

mysql> delete from mytable where id=10; //删除掉所有id=10的记录;
mysql> delete from mytable where id=10 limit 1; //限制删除掉1条id=10的记录;
mysql> delete from mytable //删除一个表的全部记录;
mysql> DELETE FROM t1 WHERE C>10;
mysql> drop table tablename1,tablename2,…; //删除整一个表或多个表,小心使用。

7。重命名表:

mysql> alter table t1 rename t2;

8。修改mysql的表结构:

查看mysql的表结构:

mysql> describe mytable; 或用show columns from 表名;

修改字段属性

mysql> alter table tablename modify id int(10) unsigned auto_increment primary key not null

修改默认值

mysql> alter table tablename alter id default 0

给字段增加primary key

mysql> alter table tablename add primary key(id);

删除primary key

alter table tablename drop primary key;
drop primary key on tablename;

修改table表数据引擎

mysql> alter table tableName ENGINE = MyISAM (InnoDB);

增加一新字段名:

mysql> alter table mytable add column single char(1);
mysql> ALTER TABLE table ADD field INT(11) UNSIGNED NOT NULL

删除字段

mysql> alter table t2 drop column c;

附:

为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),

并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:

ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

增加一个新TIMESTAMP列,名为d:

ALTER TABLE t2 ADD d TIMESTAMP;

在列d上增加一个索引,并且使列a为主键:

ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

增加一个新的AUTO_INCREMENT整数列,命名为c:

ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);

注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,

并且另外我们声明c为NOT NULL,因为索引了的列不能是NULL。

使用name列的头10个字符创建一个索引:

CREATE INDEX part_of_name ON customer (name(10));

三。数据的备份与恢复:

导出和导入数据:(命令在DOS的mysql/bin目录下执行)

导出表

mysqldump --opt school > school.sql

注释:将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,

文件名任取,打开看看你会有新发现。

mysqldump --opt school teacher student > school.teacher.student.sql

注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。

导入表

mysql
mysql>create database school;
mysql>use school;
mysql>source school.sql;

(或将school.sql换为school.teacher.sql / school.teacher.student.sql)

导出数据库

mysqldump --databases db1 db2 > db1.db2.sql

注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名

任取,打开看看你会有新发现。

(举个例子:

mysqldump -h host -u user -p pass --databases dbname > file.dump

就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。)

导入数据库

mysql < db1.db2.sql

复制数据库mysqldump --all-databases > all-databases.sql

注释:将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。

导入数据库

mysql
mysql>drop database a;
mysql>
时间: 2017-11-14

详解MySQL插入和查询数据的相关命令及语句使用

插入数据 MySQL 表中使用 INSERT INTO SQL语句来插入数据. 你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据. 语法 以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 如果数据是字符型,必须使用单引号或者双引号,如:"value

详解用SELECT命令在MySQL执行查询操作的教程

SQL SELECT命令被用来获取数据从MySQL数据库.可以使用此命令在mysql>提示符下或使用脚本,如PHP. 语法: 下面是通用的SQL SELECT命令的语法来从MySQL表提取数据: SELECT field1, field2,...fieldN table_name1, table_name2... [WHERE Clause] [OFFSET M ][LIMIT N] 可以使用一个或多个以逗号分隔的表,包括各种使用WHERE子句条件.但是WHERE子句的SELECT命令是一个可选

MySQL缓存的查询和清除命令使用详解

Mysql 查询缓存 查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询.这样就大大提高了性能,节省时间. 1.配置查询缓存 修改配置文件,修改[mysqld]下的query_cache_size和query_cache_type(如果没有则添加).其中query_cache_size表示缓存的大小,而query_cache_type有3个值,表示缓存那种类  型的select结果集,query_cache_type各个值如下: 0

MySQL中使用or、in与union all在查询命令下的效率对比

OR.in和union all 查询效率到底哪个快? 网上很多的声音都是说union all 快于 or.in,因为or.in会导致全表扫描,他们给出了很多的实例. 但真的union all真的快于or.in? EXPLAIN SELECT * from employees where employees.first_NAME ='Georgi' UNION ALL SELECT * from employees where employees.first_NAME ='Bezalel' 这条语

MySql数据库查询中的特殊命令

第一:   MySQL的安装 下载MySQL软件,修改安装路径之后 安装数据库MySQL5.7.18 第一步:数据库MySQL5.7.18可以在官网上下载对应的版本,下载地址:http://www.filehorse.com/download-mysql-64/, 第二步:将下载好的安装包进行解压到一个盘下面, 第三步:配置环境变量,新建环境变量MySQL_HOME,输入MySQL的安装目录, 然后再把;%MYSQL_HOME%\bin插入到Path的最后面: 第四步:以管理员的身份运行命令行,

php+mysql数据库查询实例

本文实例讲述了php+mysql数据库查询的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php      //连接数据库的参数      $host = "localhost";      $user = "root";      $pass = "zq19890319";      $db = "phpdev";      //创建一个mysql连接      $connection =

MySQL数据库基础入门之常用命令小结

本文实例讲述了MySQL数据库基础入门之常用命令.分享给大家供大家参考,具体如下: 接上一篇:MySQL数据库主从同步实战过程 mysql命令介绍 mysql 是数据库管理命令 通过mysql --help来查看相关参数及使用说明 mysql --help #mysql数据库管理命令 Usage: mysql [OPTIONS] [database] #语法格式 --help #查看帮助文档 --auto-rehash #自动补全功能 -A, --no-auto-rehash #不需自动补全 -

Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法

本文实例讲述了Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding:utf-8 -*- """ Purpose: 生成日汇总对账文件 Created: 2015/4/27 Modified:2015/5/1 @author: guoyJoe """ #导入模块 import MySQLdb import time impor

MySQL数据库查询性能优化策略

优化查询 使用Explain语句分析查询语句 Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句. 通过对查询语句的分析,可以了解查询语句的执行情况,找出查询语句执行的瓶颈,从而优化查询语句. 使用索引查询 MySql中提高性能的一个最有效的方式就是对数据表设计合理的索引. 索引提供了高效访问数据的方法,并且加快查询速度. 如果查询时没有使用索引,那么查询语句将扫描表中所有的记录.在数据量大的时候,这样查询速度会很慢. 使用索引进行查询,查

数据库查询中遭遇特殊字符导致问题的解决方法

数据库查询中的特殊字符的问题 在进行数据库的查询时,会经常遇到这样的情况:  例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的 字符,例如单引号,"|"号,双引号或者连字符"&".  例如他的名字是1"test,密码是A|&900  这时当你执行以下的查询语句时,肯定会报错: SQL = "SELECT * FROM SecurityLevel WHERE UID="" 

浅谈MySQL模糊查询中通配符的转义

sql中经常用like进行模糊查询,而模糊查询就要用到百分号"%",下划线"_"这些通配符,其中"%"匹配任意多个字符,"_"匹配单个字符.如果我们想要模糊查询带有通配符的字符串,如"60%","user_name",就需要对通配符进行转义,有两种方式.如下:   1.反斜杠是转义符,通过反斜杠来转义%,使其不再是通配符.这里第一个%是通配符,第二个%不是通配符. select perc

sqlserver isnull在数据库查询中的应用

isnull在数据库查询中的应用,特别是再语句连接的时候需要用到 比如连接时候,某个字段没有值但是又要左连接到其他表上 就会显示空, isnull可以判断是否是NULL,如果是给个默认值 isnull("字段名","默认的数据") SqlServer中的null值与IsNull函数NULL 值的三大特点,分别是:1)NULL值不参加统计:2)NULL值不进入计算表达式:3)不能与其它值进行比较. 所谓NULL值不参加统计 即 在使用统计函数时,凡是涉及到 NULL值

Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例

本文实例讲述了Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法.分享给大家供大家参考,具体如下: demo.py(查询,取出一条数据,fetchone): from pymysql import * def main(): # 创建Connection连接 conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_do

从MySQL数据库表中取出随机数据的代码

MySQL 如何从表中取出随机数据  以前在群里讨论过这个问题,比较的有意思.mysql的语法真好玩. 他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询. 翻了手册,找到了下面这个语句,可以完成任务了 SELECT * FROM table_name ORDER BY rand() LIMIT 5; rand在手册里是这么说的: RAND()  RAND(N)  返回在范围0到1.0内的随机浮点值.如果一个整数参数N被指定,它被用作种子值.  mysql> select RAND