有没有可以做游戏的网站/西地那非片的功能主治
视频来源:哔哩哔哩狂神说mysql
复习两个比较常用的指令,假设你知道你项目中的表,但是你不知道它的创建过程,那就可以通过如下两指令
- show create database 数据库名字;
- show create table 表明;
上一篇里面写到了MySQL安装,创建数据库的一系列内容:参考地址
一、数据管理
1、外键(约束)
-
描述:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。
-
主键:我们的主键设置,如下例子
CREATE TABLE `grade` (
`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级ID',
`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
PRIMARY KEY (`gradeid`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
这个primary key (gradeid
),它就是我们设置的主键,它一般是表的id这种字段。
- 那我们外键的定义方式1如下(这种方式比较少用):
- 第二种方式,是在创建表完成后,再进行修改。添加如下句话,
ALTER TABLE `student`
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`);
以上是不建议使用的,所以你自己写一遍就OK了,但是要知道怎么写,今后你开发也不会用的,以后咱们开发的时候再mybatis文件里面写
CREATE TABLE `student` (`id` int(10) NOT NULL AUTO_INCREMENT,`pwd` varchar(20) NOT NULL DEFAULT '12345' COMMENT '密码',`name` varchar(10) NOT NULL COMMENT '名字',`sex` varchar(2) DEFAULT NULL COMMENT '性别',`birthday` datetime DEFAULT NULL,`hid` int(5) default null,PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8create table `hrole` (`hid` int(5) not null auto_increment,`hname` varchar(20) not null,`hage` int(10) not null,primary key (`hid`) using btree
) engine=innodb default CHARSET=utf8alter table `student`
add constraint `FK_hid` foreign key (`hid`) references `hrole`(`hid`);
二、数据库管理语言之DML语言
1、添加数据
- 语法格式:insert into 表[(字段1,字段2 ,…)] values (‘值1’),(‘值2’),(‘值3’)
- 练习
-
插入一个值:insert into teacher(name) value(‘zgg’);
-
一次插入多个值:
特殊情况是主键不能乱写
-
2、修改数据
- 语法是:
UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];
- column_name 为要更改的数据列
- value 为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果
- condition 为筛选条件 , 如不指定则修改该表的所有列数据
(1)where在DML中的使用
比如这句话的使用:UPDATE grade SET gradename = '高中' WHERE gradeid = 1;
,它的意思是修改grade表里面的gradename属性,具体修改数据表中的哪个呢?就是你where条件指定的那个,就是字段gradeid=1的那个人的gradename进行修改。具体的和我们学习的编程里面的差不多的,就当满足什么的时候。
(2)修改练习
3、删除数据
-
语法:DELETE FROM 表名 [WHERE 条件];
-
练习
-
还有另外一种情况,假设我有一万个数据要删除,而且这张表你必须得给我保留下来,那我可以一次性干掉表中的数据
-
TRUNCATE [TABLE] table_name;
-
这条指定的速度比较快的
三、数据库管理语言之DQL查询语言
1、DQL概述
DQL(Data Query Language)数据查询语言
-
查询数据库数据 , 如SELECT语句
-
简单的单表查询或多表的复杂查询和嵌套查询
-
是数据库语言中最核心,最重要的语句
-
使用频率最高的语句
2、语法使用
SELECT [ALL | DISTINCT]
{* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]}
FROM table_name [as table_alias][left | right | inner join table_name2] -- 联合查询[WHERE ...] -- 指定结果需满足的条件[GROUP BY ...] -- 指定结果按照哪几个字段来分组[HAVING] -- 过滤分组的记录必须满足的次要条件[ORDER BY ...] -- 指定查询记录按一个或多个条件排序[LIMIT {[offset,]row_count | row_countOFFSET offset}];-- 指定查询的记录从哪条至哪条
看起来啥也看不懂,我第一次学习的时候也是不懂,但是第二次来记录笔记好像一看就那样。不要担心不懂,多看几遍就知道的,而且要多用。接下里一点点的细入讲解
(1)基本的查询字段
- 语法:select 字段 from 表名。
- 这个字段可以就是你数据库里面写那些字段
- 第二它可以是*,这个“*”就表示你表里面的所有字段
- 练习
- 自己写字段练习,这里为了各位方便看,我用命令行进行演示
- 然后再看*演示
这种情况很简单,但是我们实际肯定不会这样用,接着往下面看
- 自己写字段练习,这里为了各位方便看,我用命令行进行演示
(2)AS关键字的使用
-
看狂神大哥的描述
我补充的一点就是修改,我们只是查询出来的得到一个临时表一样,把这个表的名字改为XXX,字段也是人同样的道理。 -
看演示
- 首先看修改字段
- 修改表(现在看起来就是然并卵,以后你才会知道有用)
- 首先看修改字段
(3)DISTINCT关键字的使用
- distinct的使用:去掉SELECT查询返回的记录结果中重复的记录 ( 返回所有列的值都相同 ) , 只返回一条
- 它的引用场景是什么呢?答案就是当你要查询表中的薪水不同的人的时候,你就可以在上面加上这个,它就是去重复的,具体放的位置后面会说到。
这个具体的也比价简单,你可以自己尝试一下。
3、这个select 到底能查些什么?
-
第一个情况:查询语句返回结果列中的使用
这个情况我暂时不太好演示,先往后面看。 -
第二种是order by,having等句子的使用也是先往后面看,暂时不看这个。
-
第三种查询where的条件,这个简单,上面演示过。
简单的总结一下就是有如下:文本值(比如你的名字),null,函数,列,计算表达式,系统变量等。 -
查一下自增步长等
4、where在查询里面的使用(DQL的特殊点)
- 作用:用于检索数据表中 符合条件 的记录
搜索条件可由一个或多个逻辑表达式组成 , 结果一般为真或假.
-- 满足条件的查询(where)
SELECT Studentno,StudentResult FROM result;-- 查询考试成绩在95-100之间的
SELECT Studentno,StudentResult
FROM result
WHERE StudentResult>=95 AND StudentResult<=100;-- AND也可以写成 &&
SELECT Studentno,StudentResult
FROM result
WHERE StudentResult>=95 && StudentResult<=100;-- 模糊查询(对应的词:精确查询)
SELECT Studentno,StudentResult
FROM result
WHERE StudentResult BETWEEN 95 AND 100;-- 除了1000号同学,要其他同学的成绩
SELECT studentno,studentresult
FROM result
WHERE studentno!=1000;-- 使用NOT
SELECT studentno,studentresult
FROM result
WHERE NOT studentno=1000;
–1、并且条件查询(或查询就自己来)
–2、模糊查询
(1)第一种情况
(2)第二种情况
- 第二种情况
-- 模糊查询 between and \ like \ in \ null-- =============================================
-- LIKE
-- =============================================
-- 查询姓刘的同学的学号及姓名
-- like结合使用的通配符 : % (代表0到任意个字符) _ (一个字符)
SELECT studentno,studentname FROM student
WHERE studentname LIKE '刘%';-- 查询姓刘的同学,后面只有一个字的
SELECT studentno,studentname FROM student
WHERE studentname LIKE '刘_';-- 查询姓刘的同学,后面只有两个字的
SELECT studentno,studentname FROM student
WHERE studentname LIKE '刘__';-- 查询姓名中含有 嘉 字的
SELECT studentno,studentname FROM student
WHERE studentname LIKE '%嘉%';-- 查询姓名中含有特殊字符的需要使用转义符号 '\'
-- 自定义转义符关键字: ESCAPE ':'-- =============================================
-- IN
-- =============================================
-- 查询学号为1000,1001,1002的学生姓名
SELECT studentno,studentname FROM student
WHERE studentno IN (1000,1001,1002);-- 查询地址在北京,南京,河南洛阳的学生
SELECT studentno,studentname,address FROM student
WHERE address IN ('北京','南京','河南洛阳');
- 首先进入你想进入的数据库地址
(2.1)like关键字
(2.1.1)查询某一个字或者多个字开头的
(2.1.2)查询差一个字的
(2.1.3)查询差两个或者多个字的
反正它就是要记住一个下划线“-”代表的是一个字
自己去练习一下
(3)关键字in
(4)null空查询(包括了not null)
- not null自己练习一下
–3、除非某一个值外的其他的
–4、使用not查询
下一篇文章地址:https://blog.csdn.net/weixin_46635575/article/details/122878656