MySQL 简单语法小计

版权声明:如需转载请标注 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 图

构图要素:

  • 实体(矩形框)
  • 属性(椭圆形框)——主键需加下划线
  • 联系(菱形框)

猜你喜欢

转载自blog.csdn.net/weixin_40973138/article/details/85874786
今日推荐