【计算机本科补全计划】Mysql 学习小计(1)

正文之前

以后是要做大数据的人,如果连结构化的数据库都不会的话,那岂不是笑死人?所以果断靠着当年兴趣盎然的时候学的那点基础来复习一下,发现果然学过一遍再来复习那基本就是高中学一段内容看书与翻书的区别,当文字显现刹那,内心就浮出这个命令的用法与局限,很爽的有木有?

正文


Mysql 连接(登录):

[root@host]# mysql -u root -p
Enter password:******

Mysql 退出(断开连接):

mysql> exit
Bye

Mysql 创建数据库:

[root@host]# mysqladmin -u root -p create test
Enter password:******

或者是登陆之后:

create database test
create database if not exists test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

逆推即可得到删除数据库:

[root@host]# mysqladmin -u root -p drop test
Enter password:******
drop database RUNOOB

Mysql 选择数据库进行操作:

[root@host]# mysql -u root -p
Enter password:******
mysql> use RUNOOB;
Database changed
mysql>

Mysql在数据库中创建数据表:

create table table_name (column_name column_type);

具体的示例如:

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;
//那些`是为了标注column 而特意加的,实操的时候不需要的,看图
  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码。

Mysql 删除数据表:

drop table table_name ;

Mysql 插入数据:

insert INTO table_name ( field1, field2,...fieldN )  VALUES  ( value1, value2,...valueN );

Mysql 查询数据:

select column_name,column_name from table_name  [where Clause] 
 [OFFSET M ][LIMIT N]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用where语句来设定查询条件。
  • select 命令可以读取一条或者多条记录。
  • 你可以使用星号(*)来代替其他字段,select语句会返回表的所有字段数据
  • 你可以使用 where 语句来包含任何条件。
  • 你可以通过OFFSET指定select语句开始查询的数据偏移量。默认情况下偏移量为0。偏移量的意思就是说前面查询的多少条直接跳过,从偏移量设置的那一条记录开始查询。
  • 你可以使用 LIMIT 属性来设定返回的记录数。就限定了最后需要返回多少条数据,配合offset可以很好的优化mysql的使用。

Mysql 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 表中的字段值来读取指定的数据。

PS:MySQL 的 where 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定 where 子句的字符串比较是区分大小写的。

mysql> select * from runoob_tbl where BINARY runoob_author='runoob.com';

Mysql update 查询

update table_name SET field1=new-value1, field2=new-value2
[where Clause]
  • 你可以同时更新一个或多个字段。
  • 你可以在 where 子句中指定任何条件。
  • 你可以在一个单独表中同时更新数据。

Mysql delete 语句删除某条记录

delete from table_name [where Clause]
  • 如果没有指定 where 子句,MySQL 表中的所有记录将被删除。
  • 你可以在 where 子句中指定任何条件。
  • 您可以在单个表中一次性删除记录。

Mysql like 语句进行模糊搜索:

  • 我们知道在 MySQL 中使用 SQL select 命令来读取数据, 同时我们可以在 select 语句中使用 where 子句来获取指定的记录。
  • where 子句中可以使用等号 = 来设定获取数据的条件,如 " tableid = 3"。
  • 但是有时候我们需要获取tablename字段含有 "able" 字符的所有记录,这时我们就需要在 where 子句中使用 SQL like 子句。
  • SQL like 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 。
  • 如果没有使用百分号 %, like 子句与等号 = 的效果是一样的。
select field1, field2,...fieldN  from table_name where field1 like condition1 [and [or]] filed2 = 'somevalue'

MySQL 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: 可选,返回所有结果集,包含重复数据。

正文之后

告一段落,过几天继续,今天先学到这儿,想必大家都看得出来了。这个教程来自Mysql - 菜鸟教程 ,这个网站真的是个好东西,太喜欢了!

原文发布于微信公众号 - 工科狗和生物喵(gh_3507b116a1f8)

原文发表时间:2018-04-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

dbms_xplan之display_cursor函数的使用

        DBMS_XPLAN包中display_cursor函数不同于display函数,display_curso...

1883
来自专栏流柯技术学院

MySQL执行计划解读

id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行

1141
来自专栏社区的朋友们

MySQL 索引与优化

索引是存储引擎内部的一种数据结构,它能让数据库快速地找到需要的值,而不是野蛮地进行自上而下的全表遍历。索引对良好的性能非常关键,尤其是当表中的数据量越来越大时,...

9851
来自专栏GreenLeaves

Oracle 多行、多列子查询

本文使用到的是oracle数据库scott方案所带的表,scott是oracle数据库自带的方案,使用前请确保其解锁 ? 一、多行子查询 多行子查询子查询是嵌入...

2077
来自专栏lgp20151222

mysql explain用法和结果的含义

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。

1711
来自专栏逍遥剑客的游戏开发

汉字转成拼音首字母

4296
来自专栏令仔很忙

令仔学MySql系列(一)----explain详解

explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。下面是一个例子:

751
来自专栏Albert陈凯

2018-07-20 oracle优化:避免全表扫描

例如:在City-State-Zip列创建了三列复合索引,那么仅对State列限定条件不能使用这个索引,因为State不是索引的主列。

2334
来自专栏自由而无用的灵魂的碎碎念

分享:Oracle sql语句优化

最近做查询时,写的一条查询语句用了两个IN,导致tuexdo服务积压了不少,用户没骂就不错了。最后经过技术经理的点拨,sql语句性能提升了大约10倍,主要用了表...

1541
来自专栏青玉伏案

Oracle之PL/SQL学习笔记

  自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧。是以前做的,一直在压箱底,今天拿出...

2018

扫码关注云+社区

领取腾讯云代金券