手记

【计算机本科补全计划】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 - 菜鸟教程 ,这个网站真的是个好东西,太喜欢了!

0人推荐
随时随地看视频
慕课网APP