mysql

Posted 小葱拌豆腐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql相关的知识,希望对你有一定的参考价值。

 

-- 修改密码   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\'
01.创建数据库和用户

 

 

--  创建一个学生信息表
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);
02.创建修改表
--  删除表
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);
03.删除表,向表中新增数据

数据库的备份

cmd进入命令行

mysqldump -u用户名 -p 数据库名称 >指定的文件

 

 

数据库的恢复

前提是必须要有对应的数据库

 mysql -u用户名 -p <指定的文件

 

 

 

 

-- 四种完整性约束
-- 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
04.四种完整性约束和6大约束

 

--   修改表中的数据 
-- 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;
05.修改和删除数据

 

导入需要的sql文件

01.cmd

 之后进入mysql

02.sqlyog中

 

 

--  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 \'%才%\'
06.基本的查询语句

 

 

 

 

以上是关于mysql的主要内容,如果未能解决你的问题,请参考以下文章

从mysql的片段中加载ListView

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

使用 json rereiver php mysql 在片段中填充列表视图

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段

mysql查看版本的四种方法