一.介绍
mysql作为一个开源的数据库,对我们运维来说还是非常优异的,希望对大家有帮助。
二.MySQL的常用命令
(一).mysql的连接
[root@host]# mysql -u root -p
Enter password:******
(二).对数据库的操作
1.mysql数据库的创建
mysql> create DATABASE RUNOOB;
2.mysql数据库的删除
mysql> drop DATABASE RUNOOB;
3.数据库的选择
mysql> use RUNOOB;
(三).对数据表的操作
1.创建数据表
CREATE TABLE IF NOT EXISTS runoob_tbl
(
runoob_id
INT UNSIGNED 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;
2.删除数据表
DROP TABLE runoob_tbl
3.插入数据(insert into)
INSERT INTO table_name ( field1, field2,…fieldN )
VALUES
( value1, value2,…valueN );
4.查询数据:
排序:
(FROM, including JOINs
WHERE(数据库中常用的是where关键字,用于在初始表中筛选查询。它是一个约束声明,用于约束数据,在返回结果集之前起作用。)
GROUP BY(对select查询出来的结果集按照某个字段或者表达式进行分组,获得一组组的集合,然后从每组中取出一个指定字段或者表达式的值。)
HAVING(having:用于对where和group by查询出来的分组经行过滤,查出满足条件的分组结果。它是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作。)
WINDOW functions
SELECT
DISTINCT
UNION
ORDER BY
LIMIT and OFFSET)
(1).select * from table_name(数据表整体选择匹配)
(2).select * from table_name where id=3(id=第三行的列)
但是有时候我们需要获取 runoob_author 字段含有 “COM” 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。
5.更新数据
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
mysql> UPDATE runoob_tbl SET runoob_title=‘学习 C++’ WHERE runoob_id=3;
Query OK, 1 rows affected (0.01 sec)
6.删除数据
DELETE FROM table_name [WHERE Clause]
DELETE FROM runoob_tbl WHERE runoob_id=3;
7.连接两个以上select(union)
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
8.mysql排序(order by)
SELECT * from runoob_tbl ORDER BY submission_date ASC;
使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。
9.mysql分组
MySQL GROUP BY 语句
SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;(按姓名和出现次数分组排序)
10.mysql的连接
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
11.mysql修改表或者表字段(alter)
ALTER TABLE testalter_tbl DROP i;删除
ALTER TABLE testalter_tbl ADD i;添加
ALTER TABLE testalter_tbl MODIFY c CHAR(10);修改
ALTER TABLE testalter_tbl RENAME TO alter_tbl;
12.mysql索引的添加
CREATE INDEX indexName ON table_name (column_name)创建添加
ALTER table tableName ADD INDEX indexName(columnName)修改添加
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username(length))
); 创建直接指定
DROP INDEX [indexName] ON mytable; 删除
SHOW INDEX FROM table_name; \G:显示索引信息
13.mysql表的复制
mysql> SHOW CREATE TABLE runoob_tbl \G;获取表的数据
mysql> CREATE TABLE clone_tbl
()修改数据表名执行sql语句
mysql> INSERT INTO clone_tbl (runoob_id,创建克隆表,拷贝数据
-> runoob_title,
-> runoob_author,
-> submission_date)
-> SELECT runoob_id,runoob_title,
-> runoob_author,submission_date
-> FROM runoob_tbl;
14.重复数据的处理
(1).防止出现重复数据
在 MySQL 数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。
(2).统计重复数据
mysql> SELECT COUNT() as repetitions, last_name, first_name
-> FROM person_tbl
-> GROUP BY last_name, first_name
-> HAVING repetitions > 1;
以上查询语句将返回 person_tbl 表中重复的记录数。 一般情况下,查询重复的值,请执行以下操作:
确定哪一列包含的值可能会重复。
在列选择列表使用COUNT()列出的那些列。
在GROUP BY子句中列出的列。
HAVING子句设置重复数大于1。
(3).使用group by过滤重复数据
mysql> SELECT last_name, first_name
-> FROM person_tbl
-> GROUP BY (last_name, first_name);
(4).删除重复数据
如果你想删除数据表中的重复数据,你可以使用以下的SQL语句:
mysql> CREATE TABLE tmp SELECT last_name, first_name, sex FROM person_tbl GROUP BY (last_name, first_name, sex);
mysql> DROP TABLE person_tbl;
mysql> ALTER TABLE tmp RENAME TO person_tbl;
当然你也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下:
mysql> ALTER IGNORE TABLE person_tbl
-> ADD PRIMARY KEY (last_name, first_name);
15.数据的导出和导入
(1).数据的导出
1.mysql> SELECT * FROM runoob_tbl
-> INTO OUTFILE ‘/tmp/runoob.txt’;
2. mysqldump -u root -p RUNOOB runoob_tbl > dump.txt
password ******
3.mysqldump -u root -p database_name \(导出至指定主机)
| mysql -h other-host.com database_name
(2).数据的导入
1.mysql -uroot -p123456 < runoob.sql
2.source 命令导入数据库需要先登录到数库终端:
mysql> create database abc; # 创建数据库
mysql> use abc; # 使用已创建的数据库
mysql> set names utf8; # 设置编码
mysql> source /home/abc/abc.sql # 导入备份数据库
3.mysql> LOAD DATA LOCAL INFILE ‘dump.txt’ INTO TABLE mytbl
-> FIELDS TERMINATED BY ‘:’
-> LINES TERMINATED BY ‘\r\n’;
4.$ mysqlimport -u root -p --local mytbl dump.txt
password *****