『实战-MySql』
mysql入门实战,小实验多练习。
Mr. Sun_
欢迎小伙伴来到博客,共同学习,一同进步。
展开
-
三十二、数据库设计的三范式【完】
数据库设计的三范式第一范式数据库表中不能出现重复记录,每个字段是原子性的不能再分不符合第一范式的示例 学生编号 学生姓名 联系方式 1001 张三 zs@gmail.com,1359999999 1002 李四 ls@gmail.com,13699999999 1001 王五原创 2020-09-09 10:16:41 · 320 阅读 · 0 评论 -
三十一、DBA命令
DBA命令(了解)新建用户 CREATE USER username IDENTIFIED BY 'password'; 说明:username——你将创建的用户名, password——该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器. 例如: create user hahahaidentified by '123456'; --可以登录但是只可以看见一个库 information_schema 授权 ..原创 2020-09-08 07:30:04 · 442 阅读 · 0 评论 -
三十、视图
视图什么是视图视图是一种根据查询(也就是SELECT表达式)定义的数据库对象,用于获取想要看到和使用的局部数据。视图有时也被成为“虚拟表”。视图可以被用来从常规表(称为“基表”)或其他视图中查询数据。相对于从基表中直接获取数据,视图有以下好处:访问数据变得简单 可被用来对不同用户显示不同的表的内容用来协助适配表的结构以适应前端现有的应用程序视图作用:提高检索效率 隐藏表的实现细节【面向视图检索】创建视图如下示例:查询员工的姓名,部门,工资入职信息等信...原创 2020-09-07 07:39:08 · 167 阅读 · 0 评论 -
二十九、索引
索引索引原理索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始,然后读完整个表直到它找出相关的行。表越大,花费时间越多。对于一个有序字段,可以运用二分查找(Binary Search),这就是为什么性能能得到本质上的提高。MYISAM和INNODB都是用B+Tree作为索引结构。(主键,unique 都会默认的添加索引)索引的应用(1)创建索引如果未使用索引,我们查询 工资大于 1500的会执行全表扫描什么时候需要给字段添加..原创 2020-09-06 12:05:16 · 197 阅读 · 0 评论 -
二十八、事务的提交与回滚演示
1、创建表2、查询表中数据3、开启事务START TRANSACTION;4、插入数据5、查看数据6、修改数据7、查看数据8、回滚事务9、查看数据自动提交模式自动提交模式用于决定新事务如何及何时启动。启用自动提交模式:如果自动提交模式被启用,则单条DML语句将缺省地开始一个新的事务。 如果该语句执行成功,事务将自动提交,并永久地保存该语句的执行结果。 如果语句执行失败,事务将自动回滚,并取消该语句的结果。 在自动.原创 2020-09-04 11:05:43 · 344 阅读 · 0 评论 -
二十七、事务隔离级别示例
1、设置服务器缺省隔离级别通过修改配置文件设置可以在my.ini文件中使用transaction-isolation选项来设置服务器的缺省事务隔离级别。该选项值可以是:READ-UNCOMMITTED READ-COMMITTED REPEATABLE-READ SERIALIZABLE例如:[mysqld]transaction-isolation = READ-COMMITTED通过命令动态设置隔离级别隔离级别也可以在运行的服务器中动态设置,应使用SET TRAN原创 2020-09-04 10:57:58 · 275 阅读 · 2 评论 -
二十六、事务的隔离级别
事务的隔离级别隔离级别事务的隔离级别决定了事务之间可见的级别。当多个客户端并发地访问同一个表时,可能出现下面的一致性问题:(1)脏读取(Dirty Read)一个事务开始读取了某行数据,但是另外一个事务已经更新了此数据但没有能够及时提交,这就出现了脏读取。(2)不可重复读(Non-repeatable Read)在同一个事务中,同一个读操作对同一个数据的前后两次读取产生了不同的结果,这就是不可重复读。(3)幻像读(Phantom Read)幻像读是指在同一个事...原创 2020-09-03 07:07:20 · 167 阅读 · 0 评论 -
二十五、事务概述
概述事务可以保证多个操作原子性,要么全成功,要么全失败。对于数据库来说事务保证批量的DML要么全成功,要么全失败。事务具有四个特征ACID原子性(Atomicity) 整个事务中的所有操作,必须作为一个单元全部完成(或全部取消)。 一致性(Consistency)在事务开始之前与结束之后,数据库都保持一致状态。 隔离性(Isolation) 一个事务不会影响其他事务的运行。 持久性(Durability) 在事务完成以后,该事务对数据库所作的...原创 2020-09-02 07:53:10 · 157 阅读 · 0 评论 -
二十四、存储引擎
存储引擎存储引擎的使用数据库中的各表均被(在创建表时)指定的存储引擎来处理。 服务器可用的引擎依赖于以下因素: MySQL的版本 服务器在开发时如何被配置 启动选项 为了解当前服务器中有哪些存储引擎可用,可使用SHOW ENGINES语句: mysql> SHOW ENGINES\G在创建表时,可使用ENGINE选项为CREATE TABLE语句显式指定存储引擎。CREATE TABLE TABLENAME (NO INT) ENGINE = MyISAM;...原创 2020-09-01 11:12:30 · 194 阅读 · 0 评论 -
二十三、外键约束
外键(foreign key)主要是维护表之间的关系的,主要是为了保证参照完整性,如果表中的某个字段为外键字段,那么该字段的值必须来源于参照的表的主键,如:emp中的deptno值必须来源于dept表中的deptno字段值。举例:建立学生和班级表之间的连接1.首先建立班级表t_classes2.在t_student中加入外键约束3.向t_student中加入数据出现错误,因为在班级表中不存在班级编号为10班级,外键约束起到了作用。存在外键的表就是子表,参照的表就是父.原创 2020-08-30 09:04:25 · 402 阅读 · 0 评论 -
二十二、主键约束
每个表应该具有主键,主键可以标识记录的唯一性。primary key 的字段既不能为空,也不能重复。主键分为单一主键和复合(联合)主键,单一主键是由一个字段构成的,复合(联合)主键是由多个字段构成的。向以上表中加入学号为1001的两条记录,出现如下错误,因为加入了主键约束。...原创 2020-08-28 10:13:08 · 424 阅读 · 0 评论 -
二十一、唯一约束
唯一性约束(unique),它可以使某个字段的值不能重复。如:email不能重复以上插入了重复的email,所以出现了“违反唯一约束错误”,所以unique起作用了同样可以为多个字段做约束drop table if exists t_student;create table t_student(student_id int(10),student_name varchar(20) not null,sex char(2) default 'm',bi...原创 2020-08-26 07:55:04 · 451 阅读 · 0 评论 -
二十、非空约束
非空约束,针对某个字段设置其值不为空,如:学生的姓名不能为空drop table if exists t_student;create table t_student(student_id int(10),student_name varchar(20)not null,sex char(2) default 'm',birthday date,email varchar(30),classes_id int(3))以上错误为加入的学生姓名为空。...原创 2020-08-25 07:28:02 · 431 阅读 · 0 评论 -
十九、约束作用及常见约束
1、什么是约束?在创建表得时候,可以给表得字段添加相应得约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。2、常见的约束有哪些?非空约束(not null): 约束的字段不能为NULL唯一约束(unique): 约束的字段不能重复主键约束(primary key): 玉树的字段既不能为NULL,也不能重复(简称PK)外键约束(foreign key): ....(简称FK)检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mys原创 2020-08-24 07:34:54 · 2430 阅读 · 0 评论 -
十八、增删改表结构
采用alter table来增加/删除/修改表结构,不影响表中的数据一、添加字段如:需求发生改变,需要向emp1表中加入联系电话字段,字段名称为:contatct_tel 类型为varchar(40)alter table emp1add contact_tel varchar(40);二、修改字段如:contact_tel 无法满足需求,长度需要更改为100alter table emp1modify contact_tel varchar(100) ;...原创 2020-08-23 09:57:46 · 385 阅读 · 0 评论 -
十七、删除数据
一、delete可以删除数据,可以根据条件删除数据(1)语法格式:delete from 表名 where 。。。。。(2)举例:删除津贴为500的员工delete from emp where comm=500;(3)删除津贴为null的员工delete from emp where comm is null;...原创 2020-08-22 22:33:20 · 275 阅读 · 0 评论 -
十六、修改数据
一、update可以修改数据,可以根据条件修改数据(1)语法格式:update 表名 set 字段名称1=需要修改的值1,字段名称2=需要修改的值2 where …….(2)举例:将job为manager的员工的工资上涨10%update emp1 set sal=sal+sal*0.1 where job='MANAGER';...原创 2020-08-22 22:27:46 · 188 阅读 · 0 评论 -
十五、添加数据
1、insert添加、修改和删出都属于DML,主要包含的语句:insert、update、delete(1)Insert语法格式Insert into 表名(字段,。。。。) values(值,………..)(2)省略字段的插入insert into emp values(9999,'zhangsan','MANAGER', null, null,3000, 500, 10);不建议使用此种方式,因为当数据库表中的字段位置发生改变的时候会影响到insert语句(3) 指定字段的原创 2020-08-21 09:32:46 · 548 阅读 · 2 评论 -
十四、创建表
一、语法格式create table tableName( columnName dataType(length), ……………….. columnName dataType(length));set character_set_results='gbk';show variables like '%char%';创建表的时候,表中有字段,每一个字段有: * 字段名 * 字段数据类型 * 字段长度限制 ...原创 2020-08-18 11:04:46 · 260 阅读 · 0 评论 -
十三、limit 的使用
MySql提供了limit,主要用于提取前几条或者中间某几行数据select * from table limit m,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条。select * from tablename limit 2,4即取出第3条至第6条,4条记录例:取得前5条数据例:从第二条开始取两条数据例:取得薪水最高的前5名 ...原创 2020-08-17 10:21:32 · 585 阅读 · 0 评论 -
十二、union
union可以合并集合(相加)例:查询job包含MANAGER和包含SALESMAN的员工采用union来合并合并结果集的时候,需要查询字段对应个数相同。在Oracle中更严格,不但要求个数相同,而且还要求类型对应相同。...原创 2020-08-13 11:45:56 · 189 阅读 · 2 评论 -
十一、子查询
子查询就是嵌套的select语句,可以理解为子查询是一张表。11.1、在where语句中使用子查询,也就是在where语句中加入select语句例:查询员工信息,查询哪些人是管理者,要求显示出其员工编号和员工姓名1、首先取得管理者的编号,去除重复的2、查询员工编号包含管理者编号的例:查询哪些人的薪水高于员工的平均薪水,需要显示员工编号,员工姓名,薪水1.取得平均薪水2.取得大于平均薪水的员工11.2、在from语句中使用子查询,可以将该子查询看做一张表例:原创 2020-08-12 13:11:10 · 360 阅读 · 0 评论 -
十、连接查询
10.1、SQL92语法连接查询:也可以叫跨表查询,需要关联多个表进行查询(1) 显示每个员工信息,并显示所属的部门名称以上输出,不正确,输出了56条数据,其实就是两个表记录的乘积,这种情况我们称为:“笛卡儿乘积”,出现错误的原因是:没有指定连接条件(2)指定连接条件以上结果输出正确,因为加入了正确的连接条件以上查询也称为 “内连接”,只查询相等的数据(连接条件相等的数据)(3)取得员工和所属的领导的姓名以上称为“自连接”,只有一张表连接,具体的查询方法,把一张表看作两原创 2020-08-07 07:25:37 · 337 阅读 · 0 评论 -
九、distinct
虽然distinct是sql的一个语法,并不属于mysql,但此处以mysql举例。用了那么多年的distinct,居然一直都是错的。一直以为distinct是去除重复的字段,原来它是去除重复的记录。重复的记录是指distinct后所有的字段都相同的记录。举例:假设在一个多店版的商城系统里,有一个记录销售记录的表,记录着每个店铺的每一笔销售额。如下:运行下面的查询,然后分别对比结果,我们就不难发现,distinct是去除重复的记录。第一条查询 select distinct uid from转载 2020-08-03 12:49:31 · 278 阅读 · 0 评论 -
八、分组查询
8、分组查询分组查询主要涉及到两个子句,分别是:group by和having8.1、group by例一、取得每个工作岗位的工资合计,要求显示岗位名称和工资合计select job, sum(sal) from emp group by job;如果使用了order by,order by必须放到group by后面例二、按照工作岗位和部门编码分组,取得的工资合计原始数据分组语句select job,deptno,sum(sal) from emp group b...原创 2020-08-02 09:54:18 · 485 阅读 · 0 评论 -
七、分组函数/聚合函数/多行处理函数
7、分组函数/聚合函数/多行处理函数 count 取得记录数 sum 求和 avg 取平均 max 取最大的数 min 取最小的数 注意:分组函数自动忽略空值,不需要手动的加where条件排除空值。select count(*) from empwhere xxx; 符合条件的所有记..原创 2020-06-15 23:22:26 · 487 阅读 · 0 评论 -
六、排序数据
6、排序数据6.1、单一字段排序排序采用order by子句,order by后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序,如果存在where子句那么order by必须放到where语句的后面按照薪水由小到大排序(系统默认由小到大) select * from emp order by sal; 2.取得job为MANAGER的员工,按照薪水由小到大排序(系统默认由小到大) select * f...原创 2020-06-15 22:13:39 · 482 阅读 · 0 评论 -
五、条件查询
5、条件查询条件查询需要用到where语句,where必须放到from语句表的后面支持如下运算符 运算符 说明 = 等于 <>或!= 不等于 < 小于 <= 小于等于 > 大于 >=原创 2020-06-14 22:58:41 · 940 阅读 · 0 评论 -
四、简单的查询
4、简单的查询4.1、查询一个字段查询员工姓名 select ename from emp; Select语句后面跟的是字段名称,select是关键字,select和字段名称之间采用空格隔开,from表示将要查询的表,它和字段之间采用空格隔开4.2、查询多个字段查询员工的编号和姓名 select empno, ename from emp; 查询多个字段,select中的字段采用逗号间隔即可...原创 2020-06-14 22:58:09 · 366 阅读 · 0 评论 -
三、查看“演示数据”的表结构
3、查看“演示数据”的表结构3.1、查看和指定现有的数据库3.2、指定当前缺省数据库3.3、查看当前使用的库3.4、查看当前库中的表3.5、查看其他库中的表show tables from <database name>;如查看mysql库中的表3.6、查看表的结构desc<table name>;如:3.7、查看表的创建语句show create table <...原创 2020-06-14 22:57:34 · 420 阅读 · 0 评论 -
二、常用命令
2、常用命令2.1、查看msyql版本MySQL程序选项具有以下两种通用形式: 长选项,由单词之前加两个减号组成 短选项,由单个字母之前加一个减号组成 C:\Users\Administrator>mysql --versionmysql Ver 14.14 Distrib 5.5.36, for Win32 (x86)C:\Users\Administrator>mysql-Vmysql Ver 14.14 Distrib 5.5.36, for Win32...原创 2020-06-14 22:56:57 · 268 阅读 · 0 评论 -
一、数据库概述及数据准备
1、数据库概述及数据准备1.1、SQL概述SQL,一般发音为sequel,SQL的全称(Structured Query Language),SQL用来和数据库打交道,完成和数据库的通信,SQL是一套标准。但是每一个数据库都有自己的特性别的数据库没有,当使用这个数据库特性相关的功能,这时SQL语句可能就不是标准了.(90%以上的SQL都是通用的)1.2、什么是数据库数据库,通常是一个或一组文件,保存了一些符合特定规格的数据,数据库对应的英语单词是DataBase,简称:DB,数据库软件称..原创 2020-06-14 22:56:22 · 579 阅读 · 0 评论 -
mysql从入门到搞定实战
原创 2020-06-13 22:30:10 · 323 阅读 · 0 评论