1、创建数据库和用户
— 修改密码 ctrl+shift+c/r 添加/取消 注释
SET PASSWORD FOR [email protected]=PASSWORD(‘新密码’);
— 查询所有的数据库
SHOW DATABASES ;
— 创建数据库
CREATE DATABASE IF NOT EXISTS t11;
— 删除数据库
DROP DATABASE t11;
— 切换到指定的数据库
USE mysql;
— 查询mysql数据库中user表中所有用户
SELECT `host`,`user` FROM mysql.user
— `反引号` 区别关键字
— 创建用户
CREATE USER bdqn IDENTIFIED BY ‘bdqn’;
— 给用户授权
GRANT ALL ON *.* TO bdqn;
— 删除用户
DELETE FROM mysql.user WHERE USER=’bdqn’
SET PASSWORD FOR [email protected]=PASSWORD(‘新密码’);
— 查询所有的数据库
SHOW DATABASES ;
— 创建数据库
CREATE DATABASE IF NOT EXISTS t11;
— 删除数据库
DROP DATABASE t11;
— 切换到指定的数据库
USE mysql;
— 查询mysql数据库中user表中所有用户
SELECT `host`,`user` FROM mysql.user
— `反引号` 区别关键字
— 创建用户
CREATE USER bdqn IDENTIFIED BY ‘bdqn’;
— 给用户授权
GRANT ALL ON *.* TO bdqn;
— 删除用户
DELETE FROM mysql.user WHERE USER=’bdqn’
3、创建修改表
— 创建一个学生信息表
CREATE TABLE student(
stuNo INT(4) NOT NULL PRIMARY KEY,
stuName VARCHAR(20) NOT NULL,
stuAge INT(3) — 不能加 ,
)
— 修改表名
ALTER TABLE student RENAME AS stu;
— 给表中新增字段
ALTER TABLE stu ADD stuSex VARCHAR(2);
— 修改表中字段的类型
ALTER TABLE stu MODIFY stuName VARCHAR(10);
— 删除表中指定的字段
ALTER TABLE stu DROP stuSex;
— 修改字段的名称
ALTER TABLE stu CHANGE stuName `name` VARCHAR(10);
CREATE TABLE student(
stuNo INT(4) NOT NULL PRIMARY KEY,
stuName VARCHAR(20) NOT NULL,
stuAge INT(3) — 不能加 ,
)
— 修改表名
ALTER TABLE student RENAME AS stu;
— 给表中新增字段
ALTER TABLE stu ADD stuSex VARCHAR(2);
— 修改表中字段的类型
ALTER TABLE stu MODIFY stuName VARCHAR(10);
— 删除表中指定的字段
ALTER TABLE stu DROP stuSex;
— 修改字段的名称
ALTER TABLE stu CHANGE stuName `name` VARCHAR(10);
4、删除表
— 删除表
DROP TABLE IF EXISTS student;
— 01.新增一条数据
INSERT INTO student(stuNo,`name`,stuAge)
VALUES(1,’张三’,50);
— 02.新增一条数据 必须按照创建表时 字段的顺序依次赋值
INSERT INTO student
VALUES(2,’李四’,50)
— 03.新增一条数据 stuNo不是自增 默认stuNo=0 如果设置了自增 可以不显示的给stuNo赋值
INSERT INTO student(`name`,stuAge)
VALUES(‘王五’,50);
— 04.删除表中所有数据
DELETE FROM student;
— 05.同时新增多条数据
INSERT INTO student
VALUES(1,’张三’,50),(2,’李四’,50),(3,’王五’,50);
DROP TABLE IF EXISTS student;
— 01.新增一条数据
INSERT INTO student(stuNo,`name`,stuAge)
VALUES(1,’张三’,50);
— 02.新增一条数据 必须按照创建表时 字段的顺序依次赋值
INSERT INTO student
VALUES(2,’李四’,50)
— 03.新增一条数据 stuNo不是自增 默认stuNo=0 如果设置了自增 可以不显示的给stuNo赋值
INSERT INTO student(`name`,stuAge)
VALUES(‘王五’,50);
— 04.删除表中所有数据
DELETE FROM student;
— 05.同时新增多条数据
INSERT INTO student
VALUES(1,’张三’,50),(2,’李四’,50),(3,’王五’,50);
5、数据库的备份与恢复
6、四种完整性约束和六大约束
— 四种完整性约束
— 01.实体完整性 唯一约束,主键约束
— 指的就是一条记录!保证每一条记录都是唯一的,有意义的!
— 02.域完整性 检查约束,外键约束
— 域在这里指的是字段!保证字段的值必须是有效的!
— 03.引用完整性 外键约束
— 一个表中的字段值来自另一个表中的字段值!
— 引用的表就是外键表/从表
— 被引用的表就是主表
— 04.自定义完整性 检查约束
— 01.实体完整性 唯一约束,主键约束
— 指的就是一条记录!保证每一条记录都是唯一的,有意义的!
— 02.域完整性 检查约束,外键约束
— 域在这里指的是字段!保证字段的值必须是有效的!
— 03.引用完整性 外键约束
— 一个表中的字段值来自另一个表中的字段值!
— 引用的表就是外键表/从表
— 被引用的表就是主表
— 04.自定义完整性 检查约束
— 6大约束
—
01.主键约束 pk primary key
— 02.唯一约束 uq unique
ALTER TABLE student
ADD CONSTRAINT uq_student_name UNIQUE(NAME)
— 03.外键约束 fk foreign key
ALTER TABLE student
ADD tid INT(4); — 在student表中新增字段
CREATE TABLE teacher( — 创建teacher表
tId INT(4) NOT NULL PRIMARY KEY,
tName VARCHAR(20)
);
tId INT(4) NOT NULL PRIMARY KEY,
tName VARCHAR(20)
);
INSERT INTO teacher — 给teacher表新增数据
VALUES(1000,’教师1′),(1001,’教师2′),(1002,’教师3′),(1003,’教师4′);
ALTER TABLE student — 在从表中创建外键关系
ADD CONSTRAINT fk_teacher
FOREIGN KEY(tid)
REFERENCES teacher(tId)
VALUES(1000,’教师1′),(1001,’教师2′),(1002,’教师3′),(1003,’教师4′);
ALTER TABLE student — 在从表中创建外键关系
ADD CONSTRAINT fk_teacher
FOREIGN KEY(tid)
REFERENCES teacher(tId)
— 04.默认值约束 df default
— 05.检查约束 ck check
— 06.非空约束 nn not null
— 05.检查约束 ck check
— 06.非空约束 nn not null
7、修改和删除表中的数据
— 修改表中的数据
— update 表名 set 需要修改的数据 where 条件
— 01.修改stuNo=5的姓名为 ‘小黑’
UPDATE student SET `name`=’小黑’
WHERE stuNo=5;
— 02.修改所有tid=1001 改成 1003
UPDATE student SET tid=1003
WHERE tid=1001
— 删除表中的数据
— delete from 表名 where 条件
— 删除stuAge在20 到100之间的数据
DELETE FROM student
WHERE
stuAge>=20 AND stuAge<=100;
— update 表名 set 需要修改的数据 where 条件
— 01.修改stuNo=5的姓名为 ‘小黑’
UPDATE student SET `name`=’小黑’
WHERE stuNo=5;
— 02.修改所有tid=1001 改成 1003
UPDATE student SET tid=1003
WHERE tid=1001
— 删除表中的数据
— delete from 表名 where 条件
— 删除stuAge在20 到100之间的数据
DELETE FROM student
WHERE
stuAge>=20 AND stuAge<=100;
DELETE FROM student
WHERE
stuAge BETWEEN 200 AND 500;
WHERE
stuAge BETWEEN 200 AND 500;
— 删除teacher表中所有的数据
DELETE FROM teacher;
DELETE FROM teacher;
8、基本的查询语句
— DQL(data query language)数据查询语言
— 01.查询所有的学生信息
SELECT * FROM student;
— 02.查询指定的学生信息
SELECT * FROM student WHERE studentName=’大凡’;
— 03.查询编号是1009的学生编号,姓名以及住址
SELECT studentNo,studentName,address FROM student
WHERE studentNo=1009;
— 04.查询的时候使用别名 as 也可以省略
SELECT studentNo AS 编号,studentName AS 姓名,
address AS 住址 FROM student
WHERE studentNo=1009;
— 01.查询所有的学生信息
SELECT * FROM student;
— 02.查询指定的学生信息
SELECT * FROM student WHERE studentName=’大凡’;
— 03.查询编号是1009的学生编号,姓名以及住址
SELECT studentNo,studentName,address FROM student
WHERE studentNo=1009;
— 04.查询的时候使用别名 as 也可以省略
SELECT studentNo AS 编号,studentName AS 姓名,
address AS 住址 FROM student
WHERE studentNo=1009;
SELECT studentNo 编号,studentName 姓名,
address 住址 FROM student
WHERE studentNo=1009;
address 住址 FROM student
WHERE studentNo=1009;
— 05.查询student和grade两个表中的数据
SELECT * FROM student,grade;
— 上面的结果是一个 笛卡尔积! 两个表中数据的乘积!
SELECT * FROM student,grade
WHERE student.gradeid=grade.gradeid
SELECT * FROM student,grade;
— 上面的结果是一个 笛卡尔积! 两个表中数据的乘积!
SELECT * FROM student,grade
WHERE student.gradeid=grade.gradeid
— 06.去重 distinct 查询多列时,必须位于第一个
— 查询学生成绩在85到95之间的学生编号
SELECT DISTINCT studentNo,studentResult
FROM result
WHERE studentResult BETWEEN 85 AND 95;
— 查询学生成绩在85到95之间的学生编号
SELECT DISTINCT studentNo,studentResult
FROM result
WHERE studentResult BETWEEN 85 AND 95;
— 07.查询学生成绩在85到95之间的学生姓名
SELECT studentName FROM student
WHERE studentNo IN
(SELECT DISTINCT studentNo FROM result
WHERE studentResult BETWEEN 85 AND 95);
— 验证我们的输出是正确的
UPDATE result SET studentResult=80
WHERE studentNo=1000;
UPDATE result SET studentResult=80
WHERE studentNo=1000;
— 08.查询学生表中 地址不为空的学生姓名和地址
SELECT studentName,address
FROM student
WHERE address!=”;
SELECT studentName,address
FROM student
WHERE address!=”;
— 09.查询学生表中地址为空的学生姓名和地址
— null 代表无值 区别于 ‘’空字符串
— null 代表无值 区别于 ‘’空字符串
SELECT studentName,address
FROM student
WHERE address=”;
FROM student
WHERE address=”;
SELECT studentName,address
FROM student
WHERE address IS NULL;
FROM student
WHERE address IS NULL;
SELECT studentName,address
FROM student
WHERE address IS NOT NULL;
FROM student
WHERE address IS NOT NULL;
— 10.查询姓名是 李东方或者刘奋斗的 学生信息
SELECT * FROM student
WHERE studentName=’李东方’ OR studentName=’刘奋斗’
— 11.查询姓名是 李东方或者刘奋斗 再或者是json 的 学生信息
SELECT * FROM student
WHERE
studentName=’李东方’ OR studentName=’刘奋斗’
OR studentName=’json’;
SELECT * FROM student
WHERE studentName=’李东方’ OR studentName=’刘奋斗’
— 11.查询姓名是 李东方或者刘奋斗 再或者是json 的 学生信息
SELECT * FROM student
WHERE
studentName=’李东方’ OR studentName=’刘奋斗’
OR studentName=’json’;
— 12.使用in 代替
SELECT * FROM student
WHERE studentName IN
(‘李东方’,’json’,’刘奋斗’);
WHERE studentName IN
(‘李东方’,’json’,’刘奋斗’);
— 13.查询姓李的学生信息 _ 代表一个字符 %代表0或者多个字符
SELECT * FROM student
WHERE studentName LIKE ‘李_’
SELECT * FROM student
WHERE studentName LIKE ‘李_’
SELECT * FROM student
WHERE studentName LIKE ‘李%’
WHERE studentName LIKE ‘李%’
SELECT * FROM student
WHERE studentName LIKE ‘%才’
WHERE studentName LIKE ‘%才’
SELECT * FROM student
WHERE studentName LIKE ‘%才%’
WHERE studentName LIKE ‘%才%’
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/4257.html