一、管理Mysql的命令
1.选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
use 数据库名; 示例:use test;
2.列出 MySQL 数据库管理系统的数据库列表。
show Databases;
3.显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
show tables;
4.显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
show columns from 数据表;
5. 显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
show index from 数据表;
6.该命令将输出Mysql数据库管理系统的性能及统计信息
show table status [from db_name][like 'pattern']\G
示例:
show table status from test; # 显示数据库 test 中所有表的信息
show table status from test like 'student%';# 显示数据库 test 中表名student开头的表的信息
show table status from test like 'student%'\G;# 加上 \G,查询结果按列打印
7.Mysql创建数据库
create database 数据库名;
8.drop 命令删除数据库
drop database 数据库名;
9.mysql创建数据表
create table table_name (column_name column_type);
示例:CREATE TABLE IF NOT EXISTS `teacher_tbl`(
`teacher_id` INT UNSIGNED AUTO_INCREMENT,
`teacher_title` VARCHAR(100) NOT NULL,
`teacher_author` VARCHAR(40) NOT NULL,
`birthday` DATE,
PRIMARY KEY ( `teacher_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。
10.MySQL 删除数据表
Drop table table_name;
11.MySQL 插入数据
Insert into table_name ( field1,field2,...fieldN) values (value1,value2,...valueN);
12.MySQL 查询数据
select column_name,column_name from table_name [where clause][limit n][offset m];
13.MySQL WHERE 子句
select field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
操作符 | 描述 | 实例 |
---|---|---|
= | 等号,检测两个值是否相等,如果相等返回true | (A = B) 返回false。 |
<>, != | 不等于,检测两个值是否相等,如果不相等返回true | (A != B) 返回 true。 |
> | 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true | (A > B) 返回false。 |
< | 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true | (A < B) 返回 true。 |
>= | 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true | (A >= B) 返回false。 |
<= | 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true | (A <= B) 返回 true。 |
14.MySQL UPDATE 更新
update table_name set field1=new-value1, field2=new-value2 [WHERE Clause]
15.MySQL DELETE 语句
delete FROM table_name [WHERE Clause]
16.MySQL LIKE 子句
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue';
示例:select * from student_test_table where Telephone like '18%';
17.MySQL UNION 操作符
SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions];
DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
ALL: 可选,返回所有结果集,包含重复数据。
示例:
select name from student_test_table where age >=30
union
select name from teacher_test_table where age >=20
18.MySQL 排序
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
可以设定多个字段来排序。
可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
可以添加 WHERE...LIKE 子句来设置条件。
19.MySQL GROUP BY 语句
SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
使用 WITH ROLLUP
WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统(SUM,AVG,COUNT…)。
示例:
mysql> SELECT * FROM employee_tbl; +----+--------+---------------------+--------+ | id | name | date | signin | +----+--------+---------------------+--------+ | 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 | +----+--------+---------------------+--------+
使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录 mysql> SELECT name, COUNT(*) FROM employee_tbl GROUP BY name; +--------+----------+ | name | COUNT(*) | +--------+----------+ | 小丽 | 1 | | 小明 | 3 | | 小王 | 2 | +--------+----------+ 3 rows in set (0.01 sec)
将以上的数据表按名字进行分组,再统计每个人登录的次数:
SELECT name, SUM(signin) as signin_count FROM employee_tbl GROUP BY name WITH ROLLUP; +--------+--------------+ | name | signin_count | +--------+--------------+ | 小丽 | 2 | | 小明 | 7 | | 小王 | 7 | | NULL | 16 | +--------+--------------+