小福利:mysql的常用命令总结

mysql的常用命令总结

一.引子

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 *****
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值