echo mysql_mysql · Echo

2ff34e647e2e3cdfd8dca593e17d9b0a.png

查询套路 select+ where+ group by+ having+ order by:

select 选取select 列名 from 表名

select * from 表名

where 条件select * from where 条件(列 运算符 值)select * from orders where customer=’google’

group by 结合合计函数,对结果集分组select 列名,合计函数(列名) from 表名 where 条件 group by 列名select customer,sum(orderprice) from orders group by customer

having 对where的补充,因为where无法与合计函数一起使用select 列名,合计函数(列名) from 表名 where 条件 group by 列名 having 条件(合计函数(列名) 运算符 值)select customer,sum(orderprice) from orders where customer=’google’ group by customer having sum(orderprice)<2000

order by 对结果集排序默认升序,降序为DESCselect * from orders order by customer,orderdate desc

一些辅助查询的关键字

and & or 在where中把两个或多个条件结合起来

distinct 返回唯一值select distinct 列名称 from 表名称

limit 规定要返回的记录的数目select 列名称 from 表名称 limit 数量

like+通配符 在 where中搜索列中的指定模式select 列名称 from 表名称 where 列名 like 模式select * from orders where customer like ‘_G%’“%” 代替一个或多个字符

“_” 仅代替一个字符

[charlist] 字符列中的任何单一字符

[!charlist] 不在字符列中的任何单一字符

in 在where中规定多个值select 列名称 from 表名称 where 列名 in (值1,值2…)

between…and 在where中选取介于两个值之间的数据select 列名称 from 表名称 where 列名 between 值1 and 值2

union (all)合并两个或多个 SELECT 语句的结果集union内部的 select语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条select语句中的列的顺序必须相同

union默认选取不重复的值,union all允许重复的值

union结果集中的列名总是等于union中第一个select语句中的列名

select into 从旧表创建新表(多用于表备份)select 列1… into 新表名 from 旧表名 where 条件SELECT Persons.LastName,Orders.OrderNo

INTO Persons_Order_Backup

FROM Persons

INNER JOIN Orders

ON Persons.Id_P=Orders.Id_P

表连接join on

(Inner) join如果表中有至少一个匹配,则返回行select 列名 from 表名1 inner join 表名2 on 表名1.列名 = 表名2.列名select c.name,o.orderid from customer as c inner join orders as o on c.id = o.customerid

left join即使右表中没有匹配,也从左表返回所有的行

right join即使左表中没有匹配,也从右表返回所有的行

full join只要其中一个表中存在匹配,就返回行

创建create

create database 创建数据库create database 数据库名称

create table 创建数据库中的表CREATE TABLE 表名称

(

列名称1 数据类型 可选是否有约束,

列名称2 数据类型 可选是否有约束,

列名称3 数据类型 可选是否有约束,

….

)CREATE TABLE Persons

(

Id_P int not null,

LastName varchar(255),

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

插入数据 insert intoINSERT INTO 表名称 VALUES (值1, 值2,….)

INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,….)INSERT INTO Persons (LastName, Address) VALUES (‘Wilson’, ‘Champs-Elysees’)

修改数据 update setUPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值UPDATE Person SET FirstName = ‘Fred’ WHERE LastName = ‘Wilson’

更改一行中的某几列UPDATE Person SET Address = ‘Zhongshan 23’, City = ‘Nanjing’

WHERE LastName = ‘Wilson’

删除表中的数据 delete from删除某行 DELETE FROM 表名称 WHERE 列名称 = 值

删除所有行 DELETE FROM 表名称

约束-限制加入表的数据类型

可以在创建表时规定约束(通过 CREATE TABLE 语句)或者在表创建之后也可以(通过 ALTER TABLE 语句)

主要讨论以下几种约束:

NOT NULL 列不接受空值CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

UNIQUE 唯一值UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证

PRIMARY KEY 拥有自动定义的 UNIQUE 约束每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束

定义单列uniqueCREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (Id_P)

)

如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

)

表已存在时添加uniqueALTER TABLE Persons

ADD UNIQUE (Id_P)

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

撤销uniqueMySQLALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

PRIMARY KEY 主键PRIMARY KEY 约束唯一标识数据库表中的每条记录

每个表都应该有一个主键,并且每个表只能有一个主键

在创建表时指定主键(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

PRIMARY KEY (Id_P)

)

定义多列CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

)

添加ALTER TABLE Persons

ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

撤销ALTER TABLE Persons

DROP PRIMARY KEY

Foreign Key REFERENCES 外键用于预防破坏表之间连接的动作

防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一

创建表时定义CREATE TABLE Orders

(

Id_O int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

PRIMARY KEY (Id_O),

FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)

)

需要定义多列或命名CREATE TABLE Orders

(

Id_O int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

PRIMARY KEY (Id_O),

CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

)

撤销同主键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值