版权声明:如需转载请标注 https://blog.csdn.net/weixin_40973138/article/details/85874786
创建数据库:
CREATE DATABASE <database_name>;
示例:
CREATE DATABASE Student;
删除数据库:
DROP DATABASE <database_name>;
示例:
DROP DATABASE Student;
创建数据表:
CREATE TABLE <table_name(column_name column_type)>;
示例:
CREATE TABLE Guitar
(
gno int(20) primary key,
brand char(10) not null,
color char(10) not null,
figure char(10) not null,
money int(10) not null,
);
删除数据表:
DROP TABLE <table_name>;
示例:
DROP TABLE Student;
INSERT 插入数据:
若插入数据为字符,则需加上单引号
INSERT INTO <table_name> <(field1, field2)>
VALUES <(values1, values2)>;
INSERT INTO Student
(sno, gender, grade, score)
VALUES
(31, 'male', 7, 66);
UPDATE 更新(修改)数据:
修改或更新MySQL 中的数据
通过WHERE 约束条件找到需要修改的Tuple
UPDATE <table_name>
SET <field1>=<new_value1>, <field2>=<new_value2>
[WHERE <clause>];
示例:
UPDATE Student
SET score = 88, gender = 'female'
WHERE
sno = 31;
DELETE 删除数据:
DELETE FROM table_name [WHERE Clause];
示例:
删除学生编号为31 号的学生的信息
DELETE FROM Student
WHERE
sno = 31;
SELECT 查询数据:
SELECT <column_name, column_name>
FROM <table_name>
[WHERE <condition>];
示例:
SELECT gender, score;
FROM
Student
WHERE
sco = 31;
WHERE 子句:
SELECT <field1, field2>
FROM <table_name1, table_name2>
WHERE <condition1, condition2>;
LIKE 子句:
‘%’ 表示任意字符
SELECT <field1, field2>
FROM table_name
WHERE <field1> LIKE <condition1>;
ALTER :
使用ALTER 删除数据:
删除表中的‘i’ 字段
ALTER TABLE <table_name> DROP i;
使用ALTER 添加数据:
添加表中的‘i’ 字段,并定义数据类型
ALTER TABLE <table_name> ADD i INT;
EXIST:
查询选修了C1 课程的学生:
SELECT 姓名
FROM 学生表
WHERE EXISTS
(
SELECT *
FROM 选课表
WHERE 学生表.学号 = 选课表.学号 AND 课程号 = 'C1'
);
查询没有选C1 课程的学生的学号:
SELECT 姓名
FROM 学生表
WHERE NOT EXISTS
(
SELECT *
FROM 选课表
WHERE 学生表.学号 = 选课表.学号 AND 课程号 = 'C1'
);
INDEX 索引:
创建索引方法一(CREATE INDEX):
CREATE INDEX <index_name> ON <table_name(field_name)>;
示例:
CREATE INDEX index_score
ON Student(score);
创建索引方法一 (修改表结构添加索引):
ALTER TABLE table_name ADD INDEX <index_name(column_name)>;
示例:
#普通索引
ALTER TABLE Student
ADD INDEX index_score(score);
#唯一索引
ALTER TABLE Student
ADD UNIQUE (score);
#主键索引
ALTER TABLE Student
ADD PRIMARY KEY (score);
删除索引:
DROP INDEX [index_name] ON <table_name>;
TRIGGER 触发器:
创建触发器:
(创建触发器del_st_g,当studentsdb 数据库中的student_info 表中的记录被删除时,grade 表中所有相应记录能自动删除)
CREATE TRIGGER NetWorthTrigger
AFTER UPDATE OF netWorth ON MovieExec #An OF clause is not permitted for INSERT or DELETE events;
REFERENCING
OLD ROW AS OldTuple,
NEW ROW AS NewTuple
FOR EACH ROW
WHEN (OldTuple.netWorth > NewTuple.netWorth)
UPDATE MovieExec
SET netWorth = OldTuple.netWorth
WHERE cert# = NewTuple.cert#;
添加约束:
添加主键约束:
ALTER TABLE <table_name>
ADD CONSTRAINT <primary_key_name> PRIMARY KEY(field);
添加唯一约束:
ALTER TABLE <table_name>
ADD CONSTRAINT <constraint_name> UNIQUE(field);
添加默认约束:
ALTER TABLE <table_name>
ADD CONSTRAINT <constraint_name> DEFAULT(content) for <field>;
添加检查约束:
ALTER TABLE <table_name>
ADD CONSTRAINT <constraint_name> CHECK(field_representation);
添加外键约束:
ALTER TABLE <table_name>
ADD CONSTRAINT <constraint_name> FOREIGN KEY(field) REFERENCES <table_name>(field);
E/R 图
构图要素:
- 实体(矩形框)
- 属性(椭圆形框)——主键需加下划线
- 联系(菱形框)