mysql 叶子_mysql增删改查操作

水深无声 2022-10-24 11:53 276阅读 0赞

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[,…] | ()[AS]

[WHERE ]

[GROUP BY [HAVING ]]

[ORDER BY [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; /*起别名*/

5cdc47f2e50163fdbc5a704241bb3346.png

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 [([,]…)]

VALUES([,]…);

例如:

INSERT

INTO SC(Sno,Cno)

VALUES(‘201215128’,’1’);

插入子查询结果:

INSERT INTO [([,]…)]

子查询;

例如:

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;

发表评论

表情:
评论列表 (有 0 条评论,276人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL 增删

    MySQL 增删改查 虽然经常对数据库进行操作,但有时候一些sql语句还是会忘记,因此总结一下,方便记忆。 一 对库操作 1 创建数据库 > create dat