Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MySql汇总【上】 #71

Open
reng99 opened this issue Sep 22, 2020 · 0 comments
Open

MySql汇总【上】 #71

reng99 opened this issue Sep 22, 2020 · 0 comments
Labels
blog a single blog mysql

Comments

@reng99
Copy link
Owner

reng99 commented Sep 22, 2020

数据库的关键字大小写无所谓,为了方便学习,这里的关键字我用大写来区分。

创建数据库

CREATE DATABASE database_name

删除数据库

DROP DATABASE database_name

选择数据库

USE database_name

创建数据表

CREATE TABLE table_name (column_name column_type)

例子:

CREATE TABLE IF NOT EXISTS demo (
	id INT UNSIGNED AUTO_INCREMENT,
    title VARCHAR(100) NOT NULL,
    PRIMARY KEY (id)
) ENGINE=innoDB DEFAULT CHARSET=utf8

删除数据表

DROP TABLE table_name

插入数据

INSERT INTO table_name (field1, field2, ...fieldN)
						VALUES
    					(value1, value2, ...value3)

例子:

INSERT INTO demo (title)
				VALUES
                ('标题')

查询数据

SELECT column_name1, column_name2
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

WHERE子句

SELECT field1, field2, ...fieldN
FROM table_name1, table_name2 ...
[WHERE condition1 [AND [OR]]] condition2 ...

UPDATE更新

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

DELETE语句

DELETE FROM table_name [WHERE Clause]

LIKE子句

SELECT field1, field2, ...fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] field2 = 'somevalue'

UNION

SELECT expression1, expression2, ...expression_n
FROM table_name
[WHERE condition]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ...expression_n
FROM another_table_name
[WHERE condition]

排序

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

分组

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

连接

可以使用JOIN进行联合多表查询。

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录
  • LEFT JOIN(左连接):获取左表所有记录,即使右表中没有对应匹配的记录
  • RIGHT JOIN(右连接):与LEFT JOIN相反,用于获取右表所有记录,即使左表没有对应匹配的记录

NULL值处理

为了处理NULL值,MYSQL提供了三大运算符:

  • IS NULL:当列的值是NULL,此运算符返回true

  • IS NOT NULL:当列的值不为NULL,此运算符返回true

  • <=>:比较操作符(不同于 = 运算符),当比较的两个值相等或者都为NULL时返回true

正则

关键字REGEXP

事务

MYSQL事务主要用来处理操作量打,复杂度高得数据。

一般来说,事务是必须满足4个条件ACID:

  • 原子性(Atomicity)

  • 一致性(Consistency)

  • 隔离性(Isolation)

  • 持久性(Durability)

本汇总分两篇完成,下篇再见。

@reng99 reng99 added blog a single blog mysql labels Sep 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blog a single blog mysql
Projects
None yet
Development

No branches or pull requests

1 participant