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)