MySQL的基本

时间:2023-03-09 07:36:11
MySQL的基本

MySQL的基本语法

left JOIN 左表匹配右表

  • 有没有内容全部匹配
SELECT Persons.LastName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
  • 只输出右边的表有内容的
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

SQL FULL JOIN 关键字只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

  • 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

删除表

drop table `MYFirstTable`

删除数据库

drop database MY_db

复制表

creat table `NewMYFirstTable` select *from `OldMYFirstTable`

修改数据库的编码规则

alter database mydb character set utf8;

创建数据库的时候设置编码规则

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8

创建表<加约束)

CREATE TABLE Persons
(
Id_P int NOT NULL,(不接受空值)
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
UNIQUE (Id_P) **约束** PRIMARY KEY (Id_P) **设置主键**
)
SQL UNIQUE 约束
UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
  • PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。

  • 如果表已经存在,择设置主键

ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)
  • 撤销主键约束
ALTER TABLE Persons
DROP PRIMARY KEY
  • CHECK 约束规定 "Id_P" 列必须只包含大于 0 的整数
CHECK (Id_P>0)
  • 更新一个数值
update setUpdefault set neme = 'hahhahfrewgerwg' WHERE neme = 'hahhah'

创建索引

  • CREATE INDEX 语句用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。

    注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
CREATE INDEX index_name
ON table_name (column_name)
  • 删除索引
DROP INDEX index_name ON table_name

删除表的数据

TRUNCATE TABLE 表名称

delete from tableName
//删除部分数据
DELETE FROM table1 WHERE ...;

添加列,删除列,改变列的数据类型

如需在表中添加列,请使用下列语法:
ALTER TABLE table_name
ADD column_name datatype 要删除表中的列,请使用下列语法:
ALTER TABLE table_name
DROP COLUMN column_name 要改变表中列的数据类型,请使用下列语法:
ALTER TABLE table_name
ALTER COLUMN column_name datatype

//设置让主键自增

我们通常希望在每次插入新记录时,自动地创建主键字段的值。

我们可以在表中创建一个 auto-increment 字段。

下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:

alter table S_Province modify `ProvinceID` integer auto_increment

添加视图

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No
我们可以查询上面这个视图:
SELECT * FROM [Current Product List]

时间的格式

MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
YEAR - 格式 YYYY 或 YY
SELECT * FROM Orders WHERE OrderDate='2008-12-26'

NULL值

我们如何仅仅选取在 "Address" 列中带有 NULL 值的记录呢?

我们必须使用 IS NULL 操作符:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

数据类型

MySQL的基本

MySQL的基本

MySQL的基本