Mysql 的日常命令

此篇文章是简单整理, 参考

数据库

1.进入根的数据库

mysql -u root -p
* 输入你的密码
* 如初始密码太长, 想改密码: 
    - set password for root@localhost = password('yourpass');
    - FLUSH PRIVILEGES;

2.进入远程数据库

假设远程主机的IP为:23.106.134.88,用户名为root,密码为123456
打开终端,输入如下命令:
mysql -h 23.106.134.88 -u root -p 123456

3.退出

exit

3.数据库

创建一个名字为mydatabase数据库:  
    - create database mydatabase;
显示所有的数据库:
    - show databases;
更改数据库名字: 
    - alter databases Hdatabase;
更改数据库mydatabase的字符集:
    - alter database mydatabase charset GBK;
进入数据库:
    - use mydatabase;
删除名为xhkdb的数据库:
    - drop database xhkdb;

进入数据库后,查看该数据库中的表:  
    - show tables;
创建表:
    - CREATE TABLE table_name (column_name column_type);

  • 数据库中创建数据表runoob_tbl:
   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;
  • 实例解析:
* 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
* AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
* PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
* ENGINE 设置存储引擎,CHARSET 设置编码。
  • 具体
获取表结构:
    - desc 表名
    - 或者show columns from 表名
删除表:
    - drop table <表名>
  • 插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );
* 如果数据是字符型,必须使用单引号或者双引号,如:"value"。

insert into test (name,sex) values("name1",1);
* 注意: 使用箭头标记 -> 不是 SQL 语句的一部分,它仅仅表示一个新行,如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写 SQL 语句,SQL 语句的命令结束符为分号 ;
  • 查询所有行
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

* 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
* SELECT 命令可以读取一条或者多条记录。
* 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
* 你可以使用 WHERE 语句来包含任何条件。
* 你可以使用 LIMIT 属性来设定返回的记录数, [起始位置,长度]。
* 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

SELECT * from test WHERE BINARY name='name1';

* 使用了 BINARY 关键字,是区分大小写的意思

*查看表 test 中前行数据
- select  * from test order by id limit 0,2;   
- 或者: select * from test limit 0,2; 
  • 删除表中数据
DELETE FROM table_name [WHERE Clause]
* 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
* 你可以在 WHERE 子句中指定任何条件
* 您可以在单个表中一次性删除记录。
* 当你想删除数据表中指定的记录时 WHERE 子句是非常有用的。

delete from account where name="dd";
  • 修改表中数据
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

* 你可以同时更新一个或多个字段。
* 你可以在 WHERE 子句中指定任何条件。
* 你可以在一个单独表中同时更新数据。
update account set name="官人2",balance="10000" where id=2;
  • 在表中增加/删除/修改字段
- 增加
 ALTER TABLE 表名 ADD 字段名字 INT DEFAULT ; 
* 在表account中添加了一个字段sex,类型为int(4),默认值为 1 
  - alter table test1 add age int(4) default 0;

- 删除
ALTER TABLE 表名  DROP 字段名字;
* 如果数据表中只剩余一个字段则无法使用DROP来删除字段
  - alter table test1 DROP age;

- 修改字段类型及名称
* 把字段 age 的类型从 int(4) 改为 int(2),可以执行以下命令
ALTER TABLE 表名 MODIFY age  int(2);
  - alter table test1 modify age int(2);
  - 修改名字
    - CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型。
    - ALTER TABLE 表名 CHANGE 要改的字段 改成什么名字 类型;
    - alter table test1 change age age1 int(2);
  • 更改表名
ALTER TABLE testalter_tbl RENAME TO alter_tbl;

WHERE 子句

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
* 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。
* 你可以在 WHERE 子句中指定任何条件。
* 你可以使用 AND 或者 OR 指定一个或多个条件。
* WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
* WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。

LIKE 子句

  • 如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的
SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
* 你可以在 WHERE 子句中指定任何条件。
* 你可以在 WHERE 子句中使用LIKE子句。
* 你可以使用LIKE子句代替等号 =。
* LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
* 你可以使用 AND 或者 OR 指定一个或多个条件。
* 你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件。

SELECT * from runoob_tbl  WHERE runoob_author LIKE '%COM';
将 runoob_tbl 表中获取 runoob_author 字段中以 COM 为结尾的的所有记录

UNION 操作符

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

expression1, expression2, ... expression_n: 要检索的列。
tables: 要检索的数据表。
WHERE conditions: 可选, 检索条件。
DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
ALL: 可选,返回所有结果集,包含重复数据。

UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。
UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。
同时,每条 SELECT 语句中的列的顺序必须相同.
默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行

注意:
1、UNION 结果集中的列名总是等于第一个 SELECT 语句中的列名
2、UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同

排序

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
你可以设定多个字段来排序。
你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
你可以添加 WHERE...LIKE 子句来设置条件。
* SELECT * from test ORDER BY submission_date ASC;

GROUP BY 语句

  • 分组 根据某个字段进行分组,相同的放一组,不同的分到不同的组。统计的是数据,不是记录
group by 字段 [asc/desc];   
SQL提供了一系列统计函数

Count();  统计分组后的记录数,每一相同的组有多少行记录
Max();   统计每组最大的值
Min();   统计每组最小的值
Avg();   统计每组的平均值
Sum();   统计每组的和
select salePrice,count(*),max(cutoff),min(cutoff),avg(cutoff),sum(cutoff) from product group by salePrice;

having , 用于操作查询后的结果
select salePrice,count(*) from product group by salePrice having salePrice>100;

NULL 值处理

IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
<=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。
关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 NULL,即 NULL = NULL 返回 NULL 。
MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。

连接的使用

* INNER JOIN(内连接,或等值连接):从左表中取出每一条记录,和右表中所有的记录进行匹配,匹配必须是左表中与右表中某个条件相同,最终会保留结果,否则不保留。
  - 基本语法:  左表 [inner] join 右表  on 左表.字段 = 右表.字段;
  - 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;
  - 等价于: 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(左连接):左表为主,然后每条记录与右表进行连接,不管能不能匹配的上,左表都会保留。能匹配,右表某条记录保留,不能匹配,某条记录置为NULL,最终记录数至少不少于左表已有的记录。
  - 基本语法:  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;

* RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
  - SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,026评论 0 19
  • MySQL 简介 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracl...
    Xyaleo阅读 306评论 0 1
  • 1、MySQL启动和关闭(安装及配置请参照百度经验,这里不再记录。MySQL默认端口号:3306;默认数据类型格式...
    强壮de西兰花阅读 627评论 0 1
  • 2019年12月5日 晴 星期四 916天 曾经有位智者说过,理想就是有理智的想象,可能实现的想象,如果把理...
    琴_100a阅读 172评论 0 1
  • 东边的最后一抹夕阳,也消失了。夜幕降临,那个蓝瞳少女露出一抹诡异的笑容。 “Fallen Angle.”少女缓缓吐...
    若溪一秋阅读 109评论 0 0