mysql增删改查操作

CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束条件]

           [,<列名><数据类型>[列级完整性约束条件]]

           ...

           [,<表级完整性约束条件>]);

CREATE TABLE Course

(Cno CHAR(4) PRIMARY KEY,

Cname CHAR(40) NOT NULL,

Cpno CHAR(4),

Ccredit SMALLINT,

FOREIGN KEY(Cpno) REFERENCES Course(Cno)

/*表级完整性约束条件,Cpon是外码,被参照表是Course,被参照列是Cno*/      参照表和被参照表可以是同一个表

);

CREATE TABLE SC

(Sno CHAR(9),

Cno CHAR(4),

Grade SMALLINT,

PRIMARY KEY(Sno,Cno),          /*主码由两个属性构成,必须作为表级完整性进行定义*/

FOREIGN KEY(Sno) REFERENCES Student(Sno),     /*表级完整性约束条件,Sno是外码,被参照表是Student*/  

FOREIGN KEY(Cno)REFERENCES Course(Cno)     /*表级完整性约束条件,Cno是外码,被参照表是Course*/  

);

 

修改基本表:

ALTER TABLE<表名>

[ADD[COLUMN]<新列名><数据类型>[完整性约束]]

[ADD<表级完整性约束>]

[DROP[COLUMN]<列名>[CASCADE|RESTRICT]]

[DROP CONSTRAINT <完整性约束名>[RESTRICT|CASCADE]]

[ALTER COLUMN <列名><数据类型>];

删除基本表:

DROP TABLE <表名>[RESTRICT|CASCADE];

 

索引的建立于删除:

建立索引:

CREATE [UNIQUE] [CLUSTER] INDEX <索引名> 

ON <表名>(<列名>[<次序>]  [,<列名>[<次序>]]...);

例如:

CREATE UNIQUE INDEX Stusno ON Student(Sno);

CREATE UNIQUE INDEX Coucno ON Course(Cno);

CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);

修改索引:

ALTER INDEX <旧索引名> RENAME TO <新索引名>;

例如:

ALTER INDEX SC弄RENAME TO SCSno;

删除索引:

DROP INDEX <索引名>;

例如:

DROP INDEX Stusname;

 

数据查询:

SELECT [ALL | DISTINCT]<目标列表达式>[,<目标列表达式>]...

FROM<表名或视图名>[,<表名或视图名>...] | (<SELECT 语句>)[AS] <别名>

[WHERE <条件表达式>]

[GROUP BY <列名1>[HAVING <条件表达式>]]

[ORDER BY <列名2>[ASC | DESC]];

单表查询:

SELECT Sno,Sname

FROM Student;

 

SELECT Sname,2014-Sage

FROM Student;

 

SELECT Sname,'Year of Birth:',2014-Sage,LOWER(Sdept)

FROM Student;

 

SELECT Sname,'Year of Birth:',2014-Sage BIRTHDAY,

     LOWER(Sdept) DEPARTMENT   

FROM Student;   /*起别名*/

 

SELECT Sname,Sdept,Sage

FROM Student

WHERE Sage BETWEEN 20 AND 23;

 

SELECT Sname,Ssex

FROM Student

WHERE Sdept NOT IN ('CS','MA','IS');

 

SELECT Sname,Ssex

FROM Student

WHERE Sname LIKE '_刘%';

 

SELECT Sname,Sno,Sex

FROM Student

WHERE Cname LIKE 'DB\_Design'  ESCAPE '\';

 

SELECT Sno,Cno

FROM SC

WHERE Grade IS  NOT NULL;

 

SELECT Sname

FROM Student

WHERE Sdept='CS' AND Sage<20;

 

SELECT Sno,Grade

FROM SC

WHERE Cno='3'

ORDER BY Grade DESC;

 

多表连接:

SELECT Student.Sno,Sname,Cname,Grade

FROM Student,SC,Course

WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno;

 

嵌套查询:

SELECT Sname

FROM Student                   /*外层查询或父查询*/

WHERE Sno IN

      (SELECT Sno

         FROM SC                           /*内层查询或子查询*/

            WHERE Cno='2');

 

SELECT Sno,Cno

FROM SC x

WHERE Grade >=(SELECT ABG(Grade)

          FROM SC y              /*起别名,又称为元组变量*/

            WHERE y.Sno=x.Sno);

 

 

数据更新:

数据插入:

INSERT INTO <表名 > [(<属性列1>[,<属性列2>]...)]

VALUES(<常量1>[,<常量2>]...);

例如:

INSERT 

INTO SC(Sno,Cno)

VALUES('201215128','1');

 

插入子查询结果:
INSERT INTO <表名>[(<属性列1>[,<属性列2>]...)]

子查询;

例如:

INSERT 

INTO Dept_age(Sdept,Avg_age)

SELECT Sdept,AVG(Sage)

FROM Student

GROUP BY Sdept;

 

修改数据:

UPDATE <表名>

SET <列名>=<表达式> [,<列名>=<表达式>]...

[WHERE<条件>];

例如:

UPDATE Student

SET Sage=22

WHERE Sno='201215121';

带子查询的修改语句:

UPDATE SC

SET Grade = 0

WHERE Sno IN

  (SELECT Sno

  FROM  Student

  WHERE Sdept='CS');

删除数据:

DELETE

FROM <表名>

[WHERE <条件>];

 

 

视图:

建立视图:

CREATE VIEW <视图名>[(<列名>,[,<列名>]...)]

AS <子查询>

[WITH CHECK OPTION]

例如:

CREATE VIEW IS_Studnet

AS

SELECT Sno,Sname,Sage

FROM  Student

WHERE Sdept='IS';

 

CREATE VIEW IS_Student

AS

SELECT Sno,Sname,Sage

FROM Student

WHERE Sdept = 'IS'

WITH CHECK OPTION;  /*定义IS_Student视图时加上了  WITH CHECK OPTION 子句,以后对该视图进行插入、修改和删除操作时,关系数据库管理系统会自动加上Sdept='IS'的条件。*/

 

删除视图:

DROP VIEW <视图名>[CASCADE];

例如:

DROP VIEW BT_S;

 

posted on   叶子在行动  阅读(95)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示