×
Clear all filters including search bar
Valeri Tandilashvili's Personal Professional Blog
FOREIGN 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;
AUTO_INCREMENT
to any varchar
column first requires the column to be converted into int
CREATE TABLE note (
title varchar(50),
description varchar(50),
PRIMARY KEY(title)
);
INSERT INTO `note` (`title`, `description`) VALUES ('first', 'value'), ('second', 'value');
Let's add AUTO_INCREMENT
to title
column.
We are not able to add AUTO_INCREMENT
without changing it's type to int
ALTER TABLE note MODIFY title int NOT NULL AUTO_INCREMENT;
Note: In such cases If the table contains rows with string values, (for AUTO INCREMENT
field) the string values will be replaced with numbers starting with 1