mysql的常用命令

1. 检查MySQL服务器状态:

ps -ef | grep mysqld

2. 查看mysql开放的端口号:

show global variables like ‘port’;

3. 启动MySQL服务

方法一:systenctl start mysqld

方法二:cd /usr/bin

./mysqld_safe &

4. 关闭MySQL服务器:

cd /usr/bin

./mysqladmin -u root -p shutdown

Enter password :*******

WHERE user = ‘zara’;

5. 选择数据库:

use +数据库名称

6. 列出mysql中所有的数据库

SHOW DATABASES;

7. 显示指定的数据库中所有的表:

使用该命令前需要使用use命令来选择需要操作的数据库

SHOW TABLES;

8. 显示数据表的属性,属性类型,主键细腻,是否为空,默认值等其他信息

SHOW COLUMNS FROM 数据表;

显示数据表的详细索引信息

SHOW INDEX FROM 数据表;

9. 创建数据库

方法一:

成功登陆到mysql系统中使用一下命令进行创建数据库,语法如下:

CREATE DATABASE 数据库名;

方法二:

使用mysqladmin创建数据库,语法如下:

mysqladmin -用户名 -p密码 create 数据库名

10. 插入数据(数据库:runoob_tbl,)

INSERT INTO runoob_tbl

(runoob_title,runoob_author.submission_date)

VALUES

(‘学习’,’菜鸟’,NOW());

11. 删除数据库

方法一:

成功登陆到数据库中使用drop删除数据库,语法如下:

drop database 数据库名;

方法二:

使用MySQLadmin删除数据库,语法如下:

mysqladmin -用户名 -p密码 drop数据库名

12. 读取某个表中的信息

例如:读取ruoob_tabl表中的信息

select * from ruoob_tabl;

13. 读取某个表中的关键字一列

例如:读取ruoob_tabl表中的“菜鸟教程”关键字一列

select * from ruoob_tabl where runoob_anthor=’菜鸟教程’;

14. 更新数据表中的某行某列信息字段

UPADTE runoob_tbl set runoob_author=’更新内容’ where runoob_id=3;

15. 读取表中指定位置的信息

select * from runoob_tbl where runoob_id=3;

#查看表中的ID值为3的那一列信息。

16. 删除表中指定行数据信息

delete from runoob_tbl where runoob_id=3;

17. 读取表中含有***字符的所有记录

select * from runoob_tbl where runoob_author like ‘%com’

‘%a’ //以a结尾的数据

‘a%’ //以a开头的数据

‘%a%’ //含有a的数据

‘_a_’ //三位且中间字母是a的

‘_a’ //两位且结尾字母是a的

‘a_’ //两位且开头字母是a的

18. 读取两个不同表中相同的显示列不同的值

Select runoob_author from ruoob_tabl

UNION #UNION ALL 显示两个列中全部的信息

Select runoob_author from runoob_tbl

ORDER BY runoob_author;

19. 对数据表中的列信息进行升序/降序

select * from runoob_tbl ORDER BY submission_date ASC; #升序

select * from runoob_tbl ORDER BY submission_date DESC;降序

20. 分组统计数据表中数据信息

例如:employee_tbl表中一name列为统计值统计每个人共登陆多少次。

表–employee_tbl

+—-+——–+———————+——–+

| id | name | date | singin |

+—-+——–+———————+——–+

| 1 | 小明 | 2016-04-22 15:25:33 | 1 |

| 2 | 小王 | 2016-04-20 15:25:47 | 3 |

| 3 | 小丽 | 2016-04-19 15:26:02 | 2 |

| 4 | 小王 | 2016-04-07 15:26:14 | 4 |

| 5 | 小明 | 2016-04-11 15:26:40 | 4 |

| 6 | 小明 | 2016-04-04 15:26:54 | 2 |

+—-+——–+———————+——–+

Select * name,count(*)from employee_tbl group by name;

执行结果:

+——–+———-+

| name | count(*) |

+——–+———-+

| 小丽 | 1 |

| 小明 | 3 |

| 小王 | 2 |

+——–+———-+

按名字进行分组,在统计每人的登录次数;

select name, sum(singin) as singin_count from employee_tbl group by name with rollup;

执行结果:
+——–+————–+

| name | singin_count |

+——–+————–+

| 小丽 | 2 |

| 小明 | 7 |

| 小王 | 7 |

| NULL | 16 |

+——–+————–+

21. 读取两个数据表中的数据返回出一个新的数据表(临时)

表runoob_tbl

+———–+—————+—————+—————–+

| runoob_id | runoob_title | runoob_author | submission_date |

+———–+—————+—————+—————–+

| 1 | 学习 PHP | 菜鸟教程 | 2017-04-12 |

| 2 | 学习 MySQL | 菜鸟教程 | 2017-04-12 |

| 3 | 学习 Java | http://RUNOOB.COM | 2015-05-01 |

| 4 | 学习 Python | http://RUNOOB.COM | 2016-03-06 |

| 5 | 学习 C | FK | 2017-04-05 |

+———–+—————+—————+—————–+

表tcount_tbl;

+—————+————–+

| runoob_author | runoob_count |

+—————+————–+

| 菜鸟教程 | 10 |

| http://RUNOOB.COM | 20 |

| Google | 22 |

+—————+————–+

INNER JOIN(内连接,或等值连接)

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

WHERE子句(左连接)

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author;

LEFT JOIN(右连接)

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

22. 读取runoob_test_tbl表中的runoob_count的有关NULL的数据信息

Select * from runoob_test_tbl where runoob_count IS NOLL; #为null数据

Select * from runoob_test_tbl where runoob_count IS NOT NULL; #不为null数据

23. 正则表达式

读取runoob_author字段中以G开头的所有数据

select runoob_author from runoob_test_tbl where runoob_author regexp ‘^G’;

查找name字段中以’ok’为结尾的所有数据:

SELECT name FROM person_tbl WHERE name REGEXP ‘ok$’;

查找name字段中包含’mar’字符串的所有数据:

SELECT name FROM person_tbl WHERE name REGEXP ‘mar’;

查找name字段中以元音字符开头或以’ok’字符串结尾的所有数据:

SELECT name FROM person_tbl WHERE name REGEXP ‘^[aeiou]|ok$’;

24. 使用ADD子句想数据表中添加列,如下实例在表testalter_tbl中添加i字段,并定义数据类型

ALTER TABLE testalter_tbl ADD i INT; #修改字段类型及名称

索引

25. 获取runoob_tbl数据表的完整结构

SHOW CREATE TABLE runoob_tbl \G;

26. 防止数据表中出现重复数据

在创建数据库是设置双主键如下示例:

CREATE TABLE person_tbl

(

first_name CHAR(20) NOT NULL,

last_name CHAR(20) NOT NULL,

sex CHAR(10),

PRIMARY KEY (last_name, first_name)

);

且在插入数据时使用INSERT IGNORE INTO与INSERT INTO

使用INSERT IGNORE INTO当插入的数据表中已存在会忽略此数据,保留数据表中已经存在的数据。

27. 统计last_name,first_name列重复的数据

Select count(*) as repetitions,last_name,first_name

From person_tbl #person_tbl表名

group by last_name,first_name

HAVING repetitions > 1;

28. 过滤重复数据(读取不重复的数据)

方法一:

Select distinct last_name, first_name

From person_tbl;

方法二:

Select last_name,first_name

From person_tbl

Group by (last_name,first_name);

29. 删除重复数据

方法一:使用sql语句

create table tmp select last_name,first_name,sex from person_tbl

group by (last_name,first_name,sex);

dorp table ferson_tbl;

alter tabel tmp renname to person_tbl;

方法二:使用索引(INDEX),主键(PRIMAY KEY)删除表中重复记录

Alter ignore tanle person_tbl

ADD PRIMARY KEY (last_name,first_name);

30. MySQL创建数据表

创建数据表需要注意一下信息:表名、表字段名、定义每个表字段。

root@host# mysql -u root -pEnter password:*******

mysql> use RUNOOB;Database changed

mysql> CREATE TABLE runoob_tbl(

-> runoob_id INT NOT NULL AUTO_INCREMENT,

-> runoob_title VARCHAR(100) NOT NULL,

-> runoob_author VARCHAR(40) NOT NULL,

-> submission_date DATE,

-> PRIMARY KEY ( runoob_id )

-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;·

Query OK, 0 rows affected (0.16 sec)

mysql>

31. 使用PHP脚本创建数据库

<?php

$dbhost = ‘localhost:3306’; // mysql服务器主机地址

$dbuser = ‘root’; // mysql用户名

$dbpass = ‘123456’; // mysql用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die(‘连接失败: ‘ . mysqli_error($conn));

}

echo ‘连接成功<br />’;

$sql = “CREATE TABLE runoob_tbl( “.

“runoob_id INT NOT NULL AUTO_INCREMENT, “.

“runoob_title VARCHAR(100) NOT NULL, “.

“runoob_author VARCHAR(40) NOT NULL, “.

“submission_date DATE, “.

“PRIMARY KEY ( runoob_id ))ENGINE=InnoDB DEFAULT CHARSET=utf8; “; mysqli_select_db( $conn, ‘RUNOOB’ );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die(‘数据表创建失败: ‘ . mysqli_error($conn));

}

echo “数据表创建成功\n”;

mysqli_close($conn); ?>

32. 创建数据表语法

[中括号内为可选参数]

create table 表名(

字段名1 类型[(宽度)] [约束条件], # 这里的类型既:限制 字段1 必须以 XX类型 来存储记录

字段名2 类型[(宽度)] [约束条件],

字段名3 类型[(宽度)] [约束条件]

)

代码示例:

create table file(

id int unsigned, # 未设置宽度,设置了约束条件

sex char(6), # 设置了宽度,未设置约束条件

age int(3) unsigned, # 宽度 和 约束条件都设置了

hobby char # 宽度 和 约束条件 都未设置

)

# 注意!

1、在同一张表中,字段名不能相同

2、宽度 和 约束条件为可选参数,字段名 和 字段名下记录的类型 是必须的

3、最后一个字段后不能加逗号

33. 创建临时数据表:

mysql> CREATE TEMPORARY TABLE SalesSummary (

-> product_name VARCHAR(50) NOT NULL

-> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00

-> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00

-> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0

-> );

Query OK, 0 rows affected (0.02 sec)

对临时数据表插入数据:

mysql> insert into SalesSummary

-> (product_name, total_sales, avg_unit_price, total_units_sold)

-> VALUES

-> (‘cucumber’, 100.25, 90, 2);

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM SalesSummary;

+————–+————-+—————-+——————+

| product_name | total_sales | avg_unit_price | total_units_sold |

+————–+————-+—————-+——————+

| cucumber | 100.25 | 90.00 | 2 |

+————–+————-+—————-+——————+

1 row in set (0.00 sec)

    原文作者:丶小吴
    原文地址: https://zhuanlan.zhihu.com/p/82675127
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞