大纲

一、库管理

二、表管理

三、索引管理

四、用户管理

五、视图管理

六、SELECT查询

一、库管理

(1)、创建数据库CREATE DATABASE db_name [CHARACTER SET [=] charset_name] [COLLATE [=] collation_name];

mysql> CREATE DATABASE IF NOT EXISTS testdb CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';

(2)、删除数据库

DROP DATABASE [IF EXISTS] db_name;

mysql> DROP DATABASE testdb;

(3)、查看所有数据库

SHOW DATABASES;

mysql> SHOW DATABASES;

二、表管理

(1)、创建表CREATE TABLE [IF NOT EXISTS] db_name.tb_name( col_name column_definition);

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name select_statement

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) }

mysql> CREATE TABLE user(Name CHAR(5) NOT NULL,Age TINYINT UNSIGNED,Gender ENUM('M','F') NOT NULL);

mysql> CREATE TABLE testuser SELECT User,Host,Password FROM mysql.user;

mysql> CREATE TABLE testusers LIKE mysql.user;

(2)、删除表DROP TABLE [IF EXISTS] tb_name;

mysql> DROP TABLE students;

(3)、查看表SHOW TABLES FROM db_name;

mysql> SHOW TABLES FROM testdb;

(4)、查看表结构DESC tb_name;

mysql> DESC students;

(5)、修改表字段的数据类型或者类型修饰符ALTER TABLE tb_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name];

mysql> ALTER TABLE students MODIFY Course VARCHAR(10) NOT NULL AFTER Gender;

(5)、修改表字段的字段名称ALTER TABLE tb_name CHANGE old_col_name new_col_name column_definition [FIRST|AFTER col_name];

mysql> ALTER TABLE students CHANGE course Course VARCHAR(20) AFTER Name;

(6)、新增表字段ALTER TABLE tb_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name];

mysql> ALTER TABLE students ADD course varchar(20);

(7)、删除表字段ALTER TABLE tb_name DROP [COLUMN] col_name;

mysql> ALTER TABLE students DROP Course;

(8)、修改表名称ALTER TABLE tb_name  RENAME [TO|AS] new_tbl_name;

RENAME TABLE tbl_name TO new_tbl_name

mysql> ALTER TABLE Course RENAME student;

mysql> RENAME TABLE testuser TO test;

(9)、修改表的存储引擎ALTER TABLE tb_name  engine engine_name;

mysql> ALTER TABLE student ENGINE Innodb;

(10)、添加唯一键ALTER TABLE tb_name  ADD UNIQUE [KEY] (index_col_name,...);

mysql> ALTER TABLE Course ADD UNIQUE KEY (Name);

(11)、添加外键约束(存储引擎必须支持事务才能添加)ALTER TABLE tb_name  ADD FOREIGN (index_col_name,...) REFERENCES tb_name (col_name);

mysql> ALTER TABLE Course ADD FOREIGN KEY (CID) REFERENCES student (CID);

(12)、查看表结构DESC tb_name;

mysql> DESC students;

(13)、往表中插入数据INSERT INTO tb_name [(col1,col2,...)] VALUES|VALUE ('STRING', NUM,...),('STRING',NUM,...);

mysql> INSERT INTO students VALUES ('QiaoFeng',24,'M','XiangLongshibaZhang'),

-> ('DuanYu',22,'M','LiumaiShenjian'),

-> ('XuZhu',23,'M','XiaoYaoGong'),

-> ('Murongfu',26,'M','DouzhuanXingyi');

(14)、修改表中数据UPDATE tb_name SET column=value WHERE CONDITION;

mysql> UPDATE students SET Gender='F' WHERE Name='Murongfu';

(15)、删除表中数据

DELETE FROM tb_name WHERE CONDITION;

mysql> DELETE FROM students WHERE Name='QiaoFeng';

(16)、清空表数据TRUNCATE TABLE tb_name;

mysql> TRUNCATE TABLE students;

三、索引管理

(1)、创建索引

CREATE INDEX index_name ON tb_name (index_col_name) [index_option] ...

mysql> CREATE INDEX foreign_id ON student (Name(4) DESC) USING BTREE;

(2)、删除索引

DROP [ONLINE|OFFLINE] INDEX index_name ON tbl_name

mysql> DROP INDEX foreign_id ON student;

(3)、查看索引

SHOW {INDEX | INDEXES | KEYS} {FROM | IN} tbl_name

mysql> SHOW INDEXES FROM student;

四、用户管理

(1)、创建用户CREATE USER 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD'];

mysql> CREATE USER 'admin'@'172.16.1.111' IDENTIFIED BY 'redhat';

(2)、删除用户

DROP USER 'USERNAME'@'HOST';

mysql> DROP USER 'admin'@'172.16.1.111';

(3)、给用户授权GRANT pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD'];

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'redhat';

(4)、回收用户权限REVOKE pri1,pri2,... ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';

mysql> REVOKE SELECT ON testdb.* FROM 'admin'@'172.16.1.103';

(5)、查看用户的授权

SHOW GRANTS FOR 'USERNAME'@'HOST';

mysql> SHOW GRANTS FOR 'admin'@'172.16.1.111';

(6)、列级别授权GRANT pri1(col_name) ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD'];

mysql> GRANT UPDATE(Age) ON testdb.test TO 'admin'@'%';

(7)、用户重命名RENAME USER old_user TO new_user

RENAME USER 'admin'@'%' TO 'admin'@'172.16.1.108';

(8)、给用户加密码第一种:SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('NEW_PASSWORD');

mysql> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('redhat');

Query OK, 0 rows affected (0.03 sec)

第二种:mysqladmin-uUSERNAME -hHOST  password 'NEW_PASSWORD' -p

[root@soysauce ~]# mysqladmin -uroot -h localhost -p password 'redhat'

Enter password:

第三种:UPDATE mysql.user SET Password=PASSWORD('NEW_PASSWD') WHERE User='USERNAME' AND Host='HOST';

mysql> UPDATE mysql.user SET Password=PASSWORD('redhat') WHERE User='root';

Query OK, 4 rows affected (0.06 sec)

Rows matched: 4  Changed: 4  Warnings: 0

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

(9)、忘记mysql管理员密码[root@soysauce ~]# service mysqld stop

Shutting down MySQL. SUCCESS!

[root@soysauce ~]# mysqld_safe --skip-grant-tables --skip-networking &

[1] 50967

[root@soysauce ~]# 151224 21:31:23 mysqld_safe Logging to '/data/mysql/soysauce.err'.

151224 21:31:23 mysqld_safe Starting mysqld daemon with databases from /data/mysql

[root@soysauce ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.5.28-log MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> UPDATE mysql.user SET Password=PASSWORD('redhat') WHERE User='root' AND Host='localhost';

Query OK, 0 rows affected (0.07 sec)

Rows matched: 1  Changed: 0  Warnings: 0

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.14 sec)

mysql> exit

Bye

[root@soysauce ~]# service mysqld stop

Shutting down MySQL.151224 21:32:46 mysqld_safe mysqld from pid file /data/mysql/soysauce.pid ended

SUCCESS!

[1]+  Done                    mysqld_safe --skip-grant-tables --skip-networking

[root@soysauce ~]# service mysqld start

Starting MySQL.. SUCCESS!

[root@soysauce ~]# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.5.28-log MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

五、视图管理

(1)、创建视图CREATE VIEW view_name [(column_list)] AS select_statement

mysql> CREATE VIEW stu AS SELECT * FROM students LIMIT 5;

(2)、删除视图

DROP VIEW [IF EXISTS] view_name [, view_name] ...

mysql> DROP VIEW stu;

六、SELECT查询

1、单表查询(简单查询)

(1)、选择SELECT * FROM tb_name;

mysql> SELECT * FROM students WHERE Age>=20;

(2)、投影SELECT field1,field2 FROM tb_name;

mysql> SELECT Name,Age FROM students;

(3)、选择加投影SELECT [DISTINCT] * FROM tb_name WHERE qualification;

mysql> SELECT Name,Age FROM students WHERE Age >= 20;

(4)、相同的值只显示一次SELECT [DISTINCT] * FROM tb_name WHERE qualification;

mysql> SELECT DISTINCT Gender FROM students;

(5)、比较运算符

>:大于

<=:小于等于

>=:大于等于

=:等于

!=:不等于

mysql> SELECT * FROM students WHERE Age>=20;

(6)、组合条件查询AND:逻辑与

OR:逻辑或

NOT:逻辑非

mysql> SELECT * FROM students WHERE Age>20 AND Gender='M';

mysql> SELECT * FROM students WHERE Age>20 OR Gender='M';

mysql> SELECT * FROM students WHERE NOT Age>20;

mysql> SELECT * FROM students WHERE NOT (Age>20 OR Gender='M');

(7)、两数值之间BETWEEN value1 AND value2

mysql> SELECT * FROM students WHERE Age BETWEEN 20 AND 25;

(8)、基于通配或正则做条件匹配LIKE 'wildcard'

%:任意长度的任意字符

_:任意单个字符

RLIKE 'REGEXP'

mysql> SELECT * FROM students WHERE Name LIKE 'y%';

mysql> SELECT * FROM students WHERE Name LIKE 'y____';

mysql> SELECT * FROM students WHERE Name LIKE '%ing%';

mysql> SELECT * FROM students WHERE Name RLIKE '^[XY].*';

mysql> SELECT * FROM students WHERE Age RLIKE '(18|20|25)';

(9)、判断是否为空或不空IS NOT NULL:不为空

IS NULL:为空

mysql> SELECT * FROM students WHERE CID2 IS NULL;

mysql> SELECT * FROM students WHERE CID2 IS NOT NULL;

(10)、离散列表表示IN (value1,value2...)

mysql> SELECT * FROM students WHERE Age IN (18,20,25);

(11)、查询结果排序ORDER BY field_name {ASC|DESC}

mysql> SELECT * FROM students WHERE CID2 IS NOT NULL ORDER BY Age DESC;

(12)、别名col_name AS Alias

mysql> SELECT Name AS Student_Name FROM students;

(13)、LIMITLIMIT [offset,]Count

mysql> SELECT Name AS Student_Name FROM students LIMIT 2;        # 显示2个

mysql> SELECT Name AS Student_Name FROM students LIMIT 2,3;        # 偏移量为2,往后取3个

(14)、聚合SUM():和

MIN():最小值

MAX():最大值

AVG():平均数

COUNT():总个数

mysql> SELECT SUM(Age) FROM students;

mysql> SELECT MAX(Age) FROM students;

mysql> SELECT MIN(Age) FROM students;

mysql> SELECT AVG(Age) FROM students;

mysql> SELECT COUNT(Age) FROM students;

(15)、分组

GROUP BY [HAVING where_condition]

mysql> SELECT Gender,AVG(Age) FROM students GROUP BY Gender;

mysql> SELECT CID1,COUNT(CID1) AS Persons FROM students GROUP BY CID1;

mysql> SELECT CID1,COUNT(CID1) AS Persons FROM students GROUP BY CID1 HAVING Persons>=2;

2、多表查询

(1)、笛卡尔积(交叉连接)mysql> SELECT * FROM students,courses;

(2)、自然连接mysql> SELECT students.Name,courses.Cname FROM students,courses WHERE students.CID1 = courses.CID;

mysql> SELECT s.Name,c.Cname FROM students AS s,courses AS c WHERE s.CID1 = c.CID;

(3)、左外连接mysql> SELECT s.Name,c.Cname FROM students AS s LEFT JOIN courses AS c ON s.CID1 = c.CID;

+--------------+------------------+

| Name         | Cname            |

+--------------+------------------+

| GuoJing      | TaiJiquan        |

| YangGuo      | TaiJiquan        |

| DingDian     | Qishangquan      |

| HuFei        | Wanliduxing      |

| HuangRong    | Qianzhuwandushou |

| YueLingshang | Wanliduxing      |

| ZhangWuji    | Hamagong         |

| Xuzhu        | TaiJiquan        |

| LingHuchong  | NULL             |

| YiLin        | NULL             |

+--------------+------------------+

10 rows in set (0.00 sec)

(4)、右外连接mysql> SELECT s.Name,c.Cname FROM students AS s RIGHT JOIN courses AS c ON s.CID1 = c.CID;

+--------------+------------------+

| Name         | Cname            |

+--------------+------------------+

| ZhangWuji    | Hamagong         |

| GuoJing      | TaiJiquan        |

| YangGuo      | TaiJiquan        |

| Xuzhu        | TaiJiquan        |

| NULL         | Yiyangzhi        |

| NULL         | Jinshejianfa     |

| HuangRong    | Qianzhuwandushou |

| DingDian     | Qishangquan      |

| NULL         | Qiankundanuoyi   |

| HuFei        | Wanliduxing      |

| YueLingshang | Wanliduxing      |

| NULL         | Pixiejianfa      |

| NULL         | Jiuyinbaiguzhua  |

+--------------+------------------+

13 rows in set (0.00 sec)

(5)、自连接

mysql> SELECT s.Name AS Stu,c.Name AS Teacher FROM students AS s,students AS c WHERE s.TID = c.SID;

+-----------+-------------+

| Stu       | Teacher     |

+-----------+-------------+

| GuoJing   | DingDian    |

| YangGuo   | GuoJing     |

| DingDian  | ZhangWuji   |

| HuFei     | HuangRong   |

| HuangRong | LingHuchong |

+-----------+-------------+

5 rows in set (0.00 sec)

3、子查询比较操作中使用子查询:子查询只能返回单个值

mysql> SELECT Name FROM students WHERE Age > (SELECT AVG(Age) FROM students);

mysql> SELECT Name FROM students WHERE Age IN (SELECT Age FROM tutors);

mysql> SELECT s.Name FROM students AS s WHERE s.CID2 IN (SELECT CID FROM courses);

mysql> SELECT Name FROM (SELECT Name,Age FROM students) AS t WHERE t.Age >= 20;

mysql> SELECT Name FROM students WHERE students.CID2 IN (SELECT CID FROM  courses);

4、联合查询mysql> (SELECT Name,Age FROM students) UNION (SELECT Tname,Age FROM tutors);

补充:

SELECT STATEMENT

MySQL Operator

mysql 查看索引 命令_MySQL命令篇之库、表、索引、用户、视图及SELECT查询相关推荐

  1. mysql单表索引个数_MySQL性能:多个表与单个表和分区上的索引

    小编典典 创建20,000个表是一个坏主意.您很快将需要40,000个表,然后更多. 我在<SQL反模式>一书中将此综合症称为 Metadata Tribbles .您每次计划创建&quo ...

  2. 打开mysql命令_Mysql命令大全(详细篇)

    一.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root ...

  3. mysql查当前用户的的命令_mysql命令大全用户管理相关命令

    grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant select on testdb.* to common_user@'%' grant insert on t ...

  4. mysql数据库管理系统模式_MYSQL命令行模式管理MySql的一点心得

    MYSQL命令行模式管理MySql的一点心得 MYSQL命令行模式管理MySql的一点心得 MySql数据库是中小型网站后台数据库的首选,因为它对非商业应用是免费的.网站开发者可以搭建一个" ...

  5. mysql查看数据库信息常用命令

    1.查看所有数据库 show databases; 如图: 2.查看当前使用的数据库 select database(); 如图: 3.查看数据库使用端口 show variables like 'p ...

  6. mysql带c的命令_mysql命令整理

    一.总结一下: 1.linux下启动mysql的命令: mysqladmin start /etc/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql ...

  7. mysql 用户命令_MySQL命令行新建用户

    https://www.cnblogs.com/penciler/p/4813157.html MySQL命令行能否实现新建用户呢?答案无疑是肯定的.而且在使用使用MySQL命令行新建用户后,还可以为 ...

  8. mysql的命令行常用命令_mysql命令行常用命令

    第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uro ...

  9. mysql not in语句_MySQL命令

    mysql(三):mysql查询语句 和 多表关联查询 以及 子查询 1.查询一张表: select * from 表名: 2.查询指定字段:select 字段1,字段2,字段3-.from 表名: ...

最新文章

  1. 苹果回应中情局攻击事件:许多漏洞已经得到解决
  2. sql三表连接查询 - 使用sqlite 演示
  3. oracle供应商导入,AP供应商导入简例.pdf
  4. 第四周作业wcPro
  5. 软件性能测试过程详解与案例剖析_推荐软件测试书籍
  6. 学习JS基本数据类型与对象的valueOf方法
  7. LeetCode —— 145. 二叉树的后序遍历【递归与迭代】(Python)
  8. 石家庄医学高等专科学校计算机二级,石家庄人民医学高等专科学校2021年排名...
  9. 2020年30种最佳的免费网页爬虫软件
  10. 服务器数据恢复的两种方法
  11. python设置word背景色_python 绘图的背景颜色不要_项目分享|5步教你用Python制作朋友圈个性签名...
  12. 高并发场景设计与解决方案
  13. 基础篇——树莓派远程连接工具VNC不显示视频或摄像头画面解决方式
  14. 特殊符号(一)—反斜杠 ” \ “(旋转光标和倒计时的实现)
  15. 上手快、门槛低,微信小程序成“就业大户”
  16. android烧录镜像,android 烧录image镜像
  17. 启动错误:Could not resolve placeholder 'spring.datasource.url' in value ${spring.datasource.url}
  18. SpringMVC的参数传递
  19. 关键词挖掘在网站SEO中的重要性
  20. easybuy源码_EasyBuy111

热门文章

  1. 极验创始人吴渊:恶意流量威胁新趋势,揭秘网络黑产3大核心本质
  2. Java面试高频题:Spring Boot+JVM+Nacos高并发+高可用已撸完​
  3. 大数据 Spark :利用电影观看记录数据,进行电影推荐 | 原力计划
  4. 红帽加速开放混合云创新,助力企业成功迈向开源应用时代
  5. 一行 Python 代码能实现这么多丧心病狂的功能?(代码可复制)
  6. 从容器到微服务,技术架构、网络和生态详解
  7. php curlopt_postfields,PHP的CURLOPT_POSTFIELDS参数使用数组和字符串的区别 - CSDN博客
  8. 学计算机就业靠谱吗,2018年计算机专业就业怎么样?
  9. android实现10ms定时器,Android三种实现定时器的方法
  10. python websocket模块_python websocket学习使用