mysql
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
-- 修改密码 ctrl+shift+c/r 添加/取消 注释 SET PASSWORD FOR root@localhost=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'
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
-- 创建一个学生信息表 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);
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
-- 删除表 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);
数据库的备份
cmd进入命令行
mysqldump -u用户名 -p 数据库名称 >指定的文件
数据库的恢复
前提是必须要有对应的数据库
mysql -u用户名 -p <指定的文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
-- 四种完整性约束 -- 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) ); 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); -- 04.默认值约束 df default -- 05.检查约束 ck check -- 06.非空约束 nn not null
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
-- 修改表中的数据 -- 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; -- 删除teacher表中所有的数据 DELETE FROM teacher;
导入需要的sql文件
01.cmd
之后进入mysql
02.sqlyog中
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
-- 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; SELECT studentNo 编号,studentName 姓名, address 住址 FROM student WHERE studentNo=1009; -- 05.查询student和grade两个表中的数据 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; -- 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; -- 08.查询学生表中 地址不为空的学生姓名和地址 SELECT studentName,address FROM student WHERE address!=''; -- 09.查询学生表中地址为空的学生姓名和地址 -- null 代表无值 区别于 ‘’空字符串 SELECT studentName,address FROM student WHERE address=''; SELECT studentName,address FROM student WHERE address IS NULL; SELECT studentName,address 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'; -- 12.使用in 代替 SELECT * FROM student WHERE studentName IN ('李东方','json','刘奋斗'); -- 13.查询姓李的学生信息 _ 代表一个字符 %代表0或者多个字符 SELECT * FROM student WHERE studentName LIKE '李_' SELECT * FROM student WHERE studentName LIKE '李%' SELECT * FROM student WHERE studentName LIKE '%才' SELECT * FROM student WHERE studentName LIKE '%才%'