mysql 回顾】的更多相关文章

Student(id,sname,age,sex) 学生表 Course(id,cname,t_id) 课程表 SC(s_id,c_id,score) 成绩表 Teacher(id,Tname) 教师表 问题: 1.查询“001”课程比“002”课程成绩高的所有学生的学号: select aa.id from (select s.id,SC.score sc1 from student s ,Course c,SC  where s.id=SC.s_id and c.id=SC.c_id and…
一. 对数据库的操作 1. 创建一个库 create database 库名 create database 库名 character set 编码 创建带有编码的 查看编码: 2. 删除一个库 drop database 库名 3. 使用库 use 库名 4.查看当前正在操作的库 二.对数据库表的操作 1.创建一张表 create table 表名( 字段名 类型(长度) [约束], 字段名 类型(长度) [约束], 字段名 类型(长度) [约束] ); 2.查看数据库表 创建完成后,我们可以…
mysql 回顾 数据库的设计必须满足三范式 1NF: 强调列的原子性,列不可拆分 eg: 一张表(联系人) 有(姓名,性别,电话)三列,但是现实中电话又可分为家庭电话和公司电话,这种表结构设计就不符合第一范式了, 正确的应该是继续拆分(姓名,性别,家庭电话,公司电话) 2NF: 首先满足1NF,另外包含两点: 表必须有一个主键 非主键列必须完全依赖于主键,而不能只依赖与主键的一部分 eg: 有这样一张表 OrderDetail:(OrderID,ProductID,UnitPrice,Disc…
近些天都没有写博客.在学习mysql的知识,通过学习和练习,也熟悉了mysql的函数.触发器.视图和存储过程.并且在实际的开发过程中也应用了一小部分.效果还是十分理想的. 今天晚上在学习触发器模仿innodb的级联选项的时候,回顾到了前面的外键约束方面的知识.这一块,当时有学,但是没有练习多少,一些不会的知识点也没有理解.现在重新回过头来看看什么事外键的级联选项. 这个在实际的应用过程中作用还是比较大的. 比如产品的分类,删除大分类后,小分类自动删除.删除该商品后,该商品与之有关的信息要全部自动…
回顾:Linux环境 Mysql新建用户和数据库并授权 一.新建用户 //登录Mysql @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Password) values('localhost','xdev',password('xdev123')); //刷新系统权限表 mysql>flush privileges; //这样就创建了一个名为:xdev密码为:xdev123 的用户. 二…
----------------------siwuxie095 MySQL 多表查询回顾 以客户和联系人为例(一对多) 1.内连接 /*内连接写法一*/ select * from t_customer c,t_linkman l where c.cid=l.clid /*内连接写法二(inner 可以省略不写)*/ select * from t_customer c inner join t_linkman l on c.cid=l.clid 2.左外连接 /*左外连接(outer 可以省…
SQL 先说点废话,很久没发文了,整理了下自己当时入门 SQL 的笔记,无论用于入门,回顾,参考查询,应该都是有一定价值的,可以按照目录各取所需.SQL数据库有很多,MySQL是一种,本文基本都是SQL通用标准,有些标准很不统一的地方就用MySQL的写法了.希望本文帮你快速了解SQL的基本操作和概念. 文章格式上有些问题,可以点击这里获得更加的阅读体验 目录 检索 过滤检索结果 数据汇总处理 分组 给检索结果排序 表操作 插入数据 更新删除数据 子查询-迭代查询 联结-关联多个表 组合查询 视图…
利用空闲时间花几分钟回顾一下 7.1 检索数据 为了查询出数据库表中的行(数据),使用SELECE语句. 格式: # 第一种 SELECT * FROM <table_name>; # 第二种 SELECT field1,field2,... FROM <table_name>; 第一种写法使用*通配符,会把表中行的列全部查询出来,而不必取一一列出全部列.但是不推荐使用,这跟INSERT语句的规范写法一样.使用*通配符,列的顺序一般是列在表定义中出现的顺序,但有时候并不是这样的,表…
前提要述:参考书籍<MySQL必知必会> 利用空闲时间快速回顾一些数据库基础. 4.1 连接 在最初安装MySQL,可能会要求你输入一个管理登录(通常为root)和一个口令(密码). 连接MySQL需要以下信息: 主机名(计算机名)--如果连接到本地MySQL服务器,为localhost: 端口(如果使用默认端口3306之外的端口): 一个合法的用户名(默认为root) 用户口令(密码,如果需要的话). cmd登录前一篇有说. 会简单介绍Navicat Premium 12,但是后面都是执行命…
---恢复内容开始--- 回顾数据库的一些简单的增删查改的操作语法与注意点,来自菜鸟教程https://www.runoob.com/mysql/mysql-tutorial.html 关于数据库的操作 新建数据库 create database 数据库名; 删除数据库 drop database 数据库名; 关于表的操作 创建表: CREATE TABLE runoob_tbl( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` V…
目录 公众号首发-推荐阅读原文-格式更好看 一.导读 二.聚簇索引 三.二级索引 四.联合索引 4.1.什么是联合索引 4.2.左前缀原则 4.3.联合索引的分组&排序 五.覆盖索引 六.倒排索引 公众号首发-推荐阅读原文-格式更好看 点击阅读原文 点击阅读原文 点击阅读原文 一.导读 在MySQL中,不仅为主键创建的聚簇索引选用的数据结构是B+Tree,像辅助索引,二级索引.覆盖索引.联合索引等等其实都是B+Tree. 二.聚簇索引 MySQL默认为 int 类型的主键创建一个聚簇索引.这棵B…
原文链接:MySQL学习总结:提问式回顾 undo log 相关知识 1.redo 日志支持恢复重做,那么如果是回滚事务中的操作呢,也会有什么日志支持么? 也回滚已有操作,那么就是想撤销,对应的有撤销日志,也叫做 undo log. undo 日志分为两大类:「TRX_UNDO_INSERT」和「TRX_UNDO_UPDATE」,undo 日志需根据大类分开存储,不能混淆. 「TRX_UNDO_INSERT」对应的是insert语句.「TRX_UNDO_UPDATE」对应的是update语句和d…
13.关于exit( )与die( )的说法正确的是( B) C A.当exit( )函数执行会停止执行下面的脚本,而die()无法做到 B.当die()函数执行会停止执行下面的脚本,而exit( )无法做到 C.die()函数等价于exit()函数 D.die()函数于exit()函数没有直接关系 知识点:die函数是先执行一次再执行exit函数 14.下面程序运行结果( D) B <?php$nextWeek = time() + (7 * 24 * 60 * 60);echo 'Now:…
1.  基准测试(benchmark)   不管是新手还是专家都要熟悉基准测试,benchmark测试是对系统的一种压力测试,目标是为了掌握在特定压力下系统的行为.也有其他原因:如重现系统状态,或者是为新硬件的可靠性测试.     1.1 为什么需要基准测试     benchmark测试可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些是重要变化,创造一些虚构的场景来观察系统如何处理不同的数据. 验证基于系统的y 一些假设,确认这些假设是否符合实际情况. 重现系统中的某些异常行为,以解决…
数据类型: 数值类型: 整形 浮点型 字符串: char(定长)\varchar(不定长) char(定长):插入数据或查询数据都快,因为char在磁盘上插入数据时的存储空间是固定的,简单粗暴,直接就是定长空间,那么就不需要考虑数据的长度,所以在进行数据查询时,速度也快,因为在读取数据时,也不需要考虑数据长度,(简单粗暴) 就按照定长的空间来取数据. varchar(不定长):插入和查询速度相对较慢,因为它在内容 存储数据的时候,按照数据的长度进行存储的,那么每次存储数据都需要计算一下数据的长度…
一:sqlite操作 SQLite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成. Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用. 操作步骤: 1.创建连接(记得导入模块) import sqlite3 conn = sqlite3.connect("test.db") #若是文件不存在会自动创建,路径可…
经过一段时间的NodeJs开发经历,选用的数据库是MySQL,一开始以为自己对数据库的基础知识掌握还ok,因为毕竟自己以前用过Apache+PHP+MySQL做数据库课程设计,但是在开发过程中才知道在这方面的基础非常不扎实,下面把项目中用到的MySQL数据库知识作个总结: 首先在Node环境下开发,一开始是选择mysql模块(https://github.com/mysqljs/mysql),后来该用了easymysql模块,原因可以看Node中使用mysql模块遇到的问题,先小总结下数据库的基…
一.数据表 为了确保数据的完整性和一致性,在创建表时指定字段名称,字段类型和字段属性外,还需要使用约束(constraint),索引(index),主键(primary key)和外键(foregin key)等. 约束条件: not null 非空约束 unique 唯一性约束 primary key 主键约束 foreign key 外键约束 check 检查约束 auto_increment 自动标识列(值会自动增1) 创建表: 修改表: 修改表的结构,如修改列的类型,添加新的字段,删除原…
一.数据类型 1.整型 数据类型 存储空间 说明 取值范围 TINYINT 1字节 非常小的整数 带符号值:-128~127无符号值:0~255 SMALLINT 2字节 较小的整数 带符号值:-32768~32767无符号值:0~65535 MEDIUMNT 3字节 中等大小的整数 带符号值:-8388608~8388607无符号值:0~16777215 INT 4字节 标准整数 带符号值:-2147483648~2147483647无符号值:0~4294967295 BIGINT 8字节 大…
让你快速复习语句的笔记宝典. create table users(    username varchar(20) primary key,    userpwd varchar(20) ) alter table users add age int insert into stu (sname)values('sdfdsfdsfeeeeee') update cj set cj=60 where sid=1 delete from cj where sid=2 --所有行所有列 select…
本部分介绍如何使用JDBC 连接 MySQL 数据库. 驱动包下载 Java 连接 MySQL 需要驱动包,最新版下载地址为:http://dev.mysql.com/downloads/connector/j/. 解压后得到jar库文件,然后在对应的项目中导入该库文件. MySQL 8.0 以上版本的数据库连接有所不同: 1.MySQL 8.0 以上版本驱动包版本 mysql-connector-java-8.0.16.jar. 2.com.mysql.jdbc.Driver 更换为 com.…
一.sql语句执行顺序 from join on where group by avg,sum,count等各种函数 having select distinct order by(asc(升序),desc(降序)) limit 二.如何获取表记录,或者某字段不同值个数 select count(distinct a.user_id) as cnt from table a 三.如何在sql表(假设为表a)中删除重复行 方法1: stp1:筛选出不重复的表记录 select distinct a…
前提要述:参考书籍<MySQL必知必会> 6.1 更新数据 为了更新(修改)表中的数据,可使用UPDATE语句.可采用两种方式使用UPDATE: 更新表中特定的行: 更新表中所有的行. UPDATE语法的结构由3部分组成: 要更新的表: 列名和它们的新值: 确定要更新行的过滤条件(WHERE关键字). 格式: UPDATE SET field1=newValue1, field2=newValue2,... WHERE condition; 解释: SET命令用来将新值赋给被更新的列. 使用W…
8.1 排序数据 检索出的数据并不是以纯粹的随机顺序显示的.如果不排序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响.因此,如果不明确控制的话,不能依赖该排序顺序. 关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义. 子句的解释:一个子句通常由一个关键字和所提供的数据组成.SQL语句由子句构成,有些子句是必需的,而有些是可选的. 为了明确地排序用S…
9.1 计算字段 存储在数据库表中的数据一般不是应用程序所需要的格式.比如: 如果想要在一个字段中既显示公司名,又显示公式的地址,但这两个信息一般包含在不同的表列中. 城市.州和邮政编码存储在不同的列中,但邮件标签打印程序却需要把它们作为一个恰当格式的字段检索出来. 列数据是大小写混合的,但报表程序需要把所有数据按大写表示出来. 在上面举的例子中,存储在表中的数据都不是应用程序所需要的.我们需要直接数据库中检索出转换.计算或格式化过的数据:而不是检索出数据,然后在客户机应用程序或报告程序中重新格…
10.3 汇总数据 我们经常需要汇总数据而不用把它们实际检索处出来,为此MySQL提供了专门的函数.使用这些函数,MySQL查询可用于检索数据,以便分析和报表的生成.这种类型的检索例子有以下几种: 确定表中的行数(或者满足某个条件或包含某个特定值的行数). 获得表中行组的和. 找出表列(或所有行或某些特定的行)的最大值.最小值和平均值. 上述的例子都需要对表中数据(而不是实际数据本身)汇总.因此,返回实际表数据是对时间和处理资源的一种浪费(更不用说带宽了). MySQL提供了5个聚集函数. 聚集…
一.事务定义Transaction事务:一个最小的不可再分的工作单元:通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)一个完整的业务需要批量的DML(insert.update.delete)语句共同联合完成事务只和DML语句有关,或者说DML语句才有事务.这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同 三.事务四大特征(ACID) 原子性(A):事务是最小单位,不可再分 一致性(C):事务要求所有的DML语句操作的时候,必须保证同时成功或者同时失败…
主键可以是一个或者是多个列,但所有的列(或者是列的组合)必须是唯一的,非空的 关键字distinct 可以去重,实现该效果还可以使用group by limit 默认从 0 开始,limit 5 其实是 limit 0 5 , 0 为起始行,5 为读取的数量.limit 命令要放在 group by 后面. 如: select vend_id from products group by(vend_id) limit 0 5;从0开始,取 5行,一共5行 select disctinct ven…
事务隔离级别是针对读数据库数据的一种规则.事务隔离级别是数据库属性不是事务属性. 1.读未提交(read uncommited) 可以读到其他事务修改未提交的数据.(有 脏读,不可重复读,幻读) 事务A读到了事务B更新后但未提交的数据,然后事务B回滚,那么A刚才读到的数据就是脏数据,俗称脏读. 事务A读取两次,两次之间事务B更新了数据并提交,那么事务A前后读取的数据就会不一致,俗称不可重复读. 事务A更新一列然后查看,两次之间事务B插入了一条数据,那么事务A查看数据发现有未修改的一条记录,俗称幻…
(原创出处为本博客,http://www.cnblogs.com/linguanh/) 目录: 一,下载 二,解压 三,配置与启动 四,测试 Redis 五,配置 phpRedis 扩展 六,综合测试 前序  Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案.  Redis特点:   1,Redis数据库完全在内存中,使用磁盘仅用于持久性. 2,相比很多键值数据存储,Redis拥有一套较为丰富的数据类型 3,Redis可以将数据复制到任意…