×
Clear all filters including search bar
Valeri Tandilashvili's MySQL Notes
NO ACTION
is equivalent to RESTRICT.
The MySQL Server rejects the delete and update operations of the parent table if there is a related foreign key value in the referenced tableFOREIGN KEY
constraint protects data integrity.
Let's create students
and note
tablesUSE university;
DROP TABLE IF EXISTS students;
CREATE TABLE students (
id int AUTO_INCREMENT,
first_name varchar(50),
last_name varchar(50),
PRIMARY KEY(id)
);
Let's add FOREIGN KEY
called fk_student_note
to the notes
tableDROP TABLE IF EXISTS notes;
CREATE TABLE notes (
id int AUTO_INCREMENT,
student_id int,
title varchar(50),
description varchar(50),
PRIMARY KEY(id),
INDEX(student_id),
CONSTRAINT fk_student_note
FOREIGN KEY (student_id)
REFERENCES students(id)
ON UPDATE CASCADE
ON DELETE RESTRICT
);
გოგია
გაგუა
გოგუა
SELECT *
FROM students
WHERE last_name IN ('გოგია', 'გაგუა', 'გოგუა')
Filtering the result using IN
with sub-query:SELECT
*
FROM
students
WHERE
last_name IN(
SELECT
last_name
FROM
students
WHERE
id <= 5
)
Alternative of the query using =
operator:SELECT *
FROM students
WHERE last_name = 'გოგია'
OR last_name = 'გაგუა'
OR last_name = 'გოგუა'
ALTER TABLE note
CHANGE COLUMN title title VARCHAR(210) FIRST
The same thing using MODIFY
ALTER TABLE note
MODIFY COLUMN title VARCHAR(210) FIRST
ALTER TABLE note
CHANGE COLUMN title title VARCHAR(210) AFTER author_id
Another way to do the same thing is to use MODIFY
instead of CHANGE
ALTER TABLE note
MODIFY COLUMN title VARCHAR(210) AFTER description
title
from table note
ALTER TABLE note
DROP COLUMN title;
COLUMN
is optional.
The following query is alternative to the first one:ALTER TABLE note
DROP title;
name
to title
ALTER TABLE note CHANGE name title VARCHAR(210)
VARCHAR(200)
ALTER TABLE note
MODIFY COLUMN title VARCHAR(200) NOT NULL;
author_id
to the table note
after title
columnALTER TABLE note
ADD COLUMN author_id int not null default 0 AFTER title;
AUTO_INCREMENT
value for note
table to 100000
ALTER TABLE note
AUTO_INCREMENT = 100000;