
数据库
数据库基础
衰小孩、519
这个作者很懒,什么都没留下…
展开
-
mysql总结
mysql安装原创 2021-10-20 12:50:16 · 65 阅读 · 0 评论 -
mysql用户管理
用户管理意义当做项目开发时,可以根据不同的开发人员,赋予他相应的操作权限。所以,mysql数据库管理人员(root),根据需要创建不同用户,赋予相应权限供他人使用不同的数据库用户,登录到DBMS后,根据相应的权限,可以操作的数据库和数据对象(表、视图、触发器)都不一样基本操作创建新用户CREATE USER ‘用户名’@‘登录地址’ IDENTIFIED BY ‘密码’;删除用户drop user ‘用户名’@‘登录地址’ ;修改密码修改自己密码:set password=passwo原创 2021-10-20 12:41:35 · 73 阅读 · 0 评论 -
mysql视图
基本概念视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含列,其数据来自对应的真实表(基表)通过视图可以修改基表的数据基表的改变会影响到视图的数据,对视图的操作也会影响到基表视图的基本使用create view 视图名 as select语句:创建视图alter view 视图名 as select语句:修改视图show create view 视图名:显示创建视图语句drop view 视图名 1,视图名2…:删除视图视图细节创建视图后,在数据库中只有一个视图结构文原创 2021-10-19 21:20:21 · 72 阅读 · 0 评论 -
表类型和存储引擎
表类型和存储引擎mysql表类型由存储引擎决定,主要包括MYISQM、INNODB、MEMORY等MYSQL数据表主要支持六种类型,分别是:csv、memory、archive、mrg_myisam、myisam、innodb这六种又分为两类,一类是“事务安全型”(transaction-safe),比如:innodb;其余都属于第二类,称为“非事务安全性”(non-transaction-safe)【myisam和memory】细节说明重点介绍三种:MYISAM、INNODB、MEMORY原创 2021-10-18 14:47:40 · 140 阅读 · 0 评论 -
mysql事务
事务概念事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败事务和锁当执行事务操作时(dml语句),mysql会在表上加锁,防止其他用户改表的数据结构,这对用户来讲十分重要mysql数据库控制台事务的几个重要操作start transaction:开始一个事务savepoint 保存点名:设置保存点rollback to 保存点名:回退事务rollback:回退全部事务commit:提交事务,所有操作生效,不能回退事务细节如果不开始事原创 2021-10-18 13:06:41 · 71 阅读 · 0 评论 -
mysql索引
索引概念没有索引查找时将会进行全表扫描使用索引本质上是形成一个索引的数据结构,比如二叉树索引的代价磁盘占用对dml(delete、update、insert)语句效率影响索引类型主键索引,主键自动的为主索引(类型primary)唯一索引(unique)普通索引(index)全文索引(fulltext)【适用于MYISAM】,一般开发不使用mysql自带的全文索引,开发中考虑使用:solr和elasticsearch创建索引规则较频繁的作为查询条件字段应该创建索引唯一性太差原创 2021-10-18 12:26:42 · 67 阅读 · 0 评论 -
数据自增长
自增长概念在某张表中,存在一个id列(整数),我们希望在添加记录的时候,该列从1开始,自动的增长字段名 INT PRIMARY KEY AUTO_INCREMENT自增长使用细节一般来说自增长是和 primary key 配合使用的自增长也可以单独使用(但是需要配合一个unique)自增长修饰的字段为整数型的(虽然小数也可以,但很少这样使用)自增长默认从1开始,可通过命令修改ALTER TABLE 表名 AUTO_INCREMENT=默认值;如果添加数据时,为自增长字段赋了值,则以赋的值原创 2021-10-16 21:16:32 · 226 阅读 · 0 评论 -
mysql约束
约束用于确保数据库的数据满足特定的商业规则。在mysql中,约束包括:not nulluniqueprimary keyforeign keycheckprimary key(主键)字段名 字段类型 primary key用于唯一的表示表行的数据,当定义主键约束后,该列不能重复且不能为空#主键的使用细节use db_02;CREATE TABLE t14(id int PRIMARY key,`name` VARCHAR(32),email VARCHAR(32));#1.原创 2021-10-15 16:30:38 · 57 阅读 · 0 评论 -
外连接需求
左外连接(左侧的表完全显示)右外连接(右侧的表完全显示)#左外连接和右外连接USE db_02;#创建stu表CREATE TABLE stu(id int,`name` VARCHAR(32));INSERT INTO stu VALUES(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono');SELECT * FROM stu;#创建exam表CREATE TABLE exam(id int,grade INT);INSERT INTO.原创 2021-10-15 12:22:13 · 69 阅读 · 0 评论 -
表合并查询
有时在实际应用中,为了合并多个select语句的结果,可以使用集合操作符号 union,union allunion all:该操作符用于取得两个结果集的并集,当使用该操作符时,不会取消重复行union:该操作符用于取得两个结果集的并集,当使用该操作符时,会取消重复行#合并查询USE db_02;SELECT ename,sal,job FROM emp WHERE sal>2500;SELECT ename,sal,job FROM emp WHERE job='MANAGER';原创 2021-10-15 12:19:56 · 172 阅读 · 0 评论 -
表复制和去重
自我复制数据(蠕虫复制)有时,为了对某个sql语句进行效率测试,我们需要海量数据时,可以使用此方法为表创建数据#表复制和去重#自我复制数据(蠕虫复制)#有时为了对某个sql语句进行效率测试,我们需要海量数据时,可以使用此方法为表创建海量数据use db_02;CREATE TABLE my_tab01(id int,`name` VARCHAR(32),sal DOUBLE,job VARCHAR(32),deptno INT);DESC my_tab01;SELECT * FR原创 2021-10-15 12:14:25 · 105 阅读 · 0 评论 -
mysql表子查询
什么是子查询子查询是指单行子查询多行子查询子查询可当作临时表使用在多行子查询中使用 all 和 any 操作符多列子查询原创 2021-10-15 12:06:22 · 166 阅读 · 0 评论 -
多表笛卡尔积
多表查询:指基于两个和两个以上的表查询。在实际应用中,查询单个表可能不能满足需求#多表查询#多表查询where子句的条件不能少于表的数量-1,如三张表至少需要两个连接条件,否则会出现笛卡儿积USE db_02;#笛卡尔积:两个表所有的组合方式SELECT * FROM emp,dept;SELECT COUNT(*) FROM emp,dept;#练习:1.显示员工名,员工工资以及所在部门名称,如果要显示deptno,需要指定是哪个表的deptnoSELECT ename,sal,dna.原创 2021-10-14 21:35:32 · 337 阅读 · 0 评论 -
分页查询limit
基本语法:select … from table limit start,rows表示从start+1行开始取,取出rows行,start从0开始计算#分页查询USE db_02;#练习:1.按员工id号升序取出,每页显示三条记录,分别显示123页#第一页SELECT * FROM emp ORDER BY empno LIMIT 0,3;#第二页SELECT * FROM emp ORDER BY empno LIMIT 3,3;#第三页SELECT * FROM emp原创 2021-10-14 21:26:04 · 72 阅读 · 0 评论 -
select查询增强
#查询加强USE db_02;#1.使用where子句,查找1998.1.1后入职的员工(在mysql中,日期类型可以直接比较)SELECT * FROM emp WHERE hiredate>'1980-01-01';#2.使用like操作符(模糊查询)#%:表示任意多个字符。_:表示单个字符#显示首字母为s的员工姓名和工资SELECT ename,sal FROM emp WHERE ename like 's%';#显示第三个字符为大写L的员工的工资和姓名SELECT en原创 2021-10-14 21:21:52 · 80 阅读 · 0 评论 -
流程控制函数
#演示流程控制函数#1.IF(expr1,expr2,expr3):如果expr1为true,则返回expr2,否则返回expr3SELECT IF(true,'北京','上海') FROM DUAL;#2.IFNULL(expr1,expr2):如果expr1不为空,则返回expr1,否则返回expr2SELECT IFNULL('北京','上海') FROM DUAL;SELECT IFNULL(NULL,'上海') FROM DUAL;#3.SELECT CASE WHEN expr1 T原创 2021-10-14 21:19:52 · 122 阅读 · 0 评论 -
加密和系统函数
#演示加密函数USE db_02;#1.USER():查询用户及ipSELECT USER() FROM DUAL;#2.DATABASE():查询当前使用数据库名称SELECT DATABASE() FROM DUAL;#3.MD5(str):为字符串加密,常用于用户密码加密#root真实密码为122800->加密->在数据库中存放的是加密后的密码SELECT MD5('122800') FROM DUAL;#演示用md5加密CREATE TABLE users(id i原创 2021-10-14 21:16:21 · 119 阅读 · 0 评论 -
时间日期相关函数
#日期时间相关函数USE db_02;#1. CURRENT_DATE():当前日期SELECT CURRENT_DATE() FROM DUAL;#2.CURRENT_TIME():当前时间SELECT CURRENT_TIME() FROM DUAL;#3.CURRENT_TIMESTAMP():当前时间戳SELECT CURRENT_TIMESTAMP() FROM DUAL;#创建测试表,信息表CREATE TABLE mes(id INT,content varchar(3原创 2021-10-14 21:12:42 · 81 阅读 · 0 评论 -
数学相关函数
#演示数学相关函数#1.ABS(num):绝对值SELECT ABS(-10) FROM DUAL;#2.BIN(num):十进制转二进制SELECT BIN(10) FROM DUAL;#3.CEILING(num):向上取整,得到比num大的最小整数SELECT CEILING(-10.25) FROM DUAL;#4.FLOOR(num):向下取整,得到比num小的最大整数SELECT FLOOR(-10.23) FROM DUAL;#5.CONV(num,from_base,to_原创 2021-10-14 20:59:36 · 84 阅读 · 0 评论 -
字符串相关函数
use db_02;#演示字符串相关函数的使用,使用emp表演示#1.CHARSET(str):返回字符串字符集SELECT CHARSET(ename) FROM emp;#2.CONCAT(str1,str2,...):连接字符串,将多个列拼接成一列SELECT CONCAT(ename,' job is ',job) FROM emp;#3.INSTR(string,substring):返回substring在string中出现的位置,没有返回0#DUAL:亚元表,系统表,可作为测试表原创 2021-10-14 20:58:00 · 61 阅读 · 0 评论 -
分组统计group by
使用group by子句对列进行分组SELECT column1,column2,column3… FROM table GROUP BY column使用having子句对分组后的结果进行过滤SELECT column1,column2,column3… FROM table GROUP BY column HAVING 过滤条件GROUP BY 用于对查询的结果分组统计,HAVING 子句用于限制分组显示结果USE db_02;#创建部门表CREATE TABLE dept(dept.原创 2021-10-14 20:52:45 · 707 阅读 · 0 评论 -
合计函数(统计函数)
合计函数(count)SELECT count (*)| count(列名) FROM table_name [WHERE where_definition];count:返回行的总数count(*):返回满足条件的记录的行数count(列):统计满足条件的某列的行数,但会排除null值合计函数(sum)SELECT sum(列名){,sum(列名)…} from table_name [WHERE where_definition]sum函数返回满足where条件的行的和——一般使用原创 2021-10-12 14:48:57 · 1747 阅读 · 0 评论 -
数据库的CRUD语句(create\read\update\delete)
insert 语句INSERT INTO table_name(column [, column…]) VALUES(value [, value…])insert 语句细节说明:插入的数据应与字段的数据类型相同。如:将’abc’插入int类型会报错数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中在values中列出的数据位置必须与被加入的列的排列位置相对应字符和日期型数据应包含在单引号中列可以插入空值(前提是该字段允许为空)insert into t原创 2021-10-12 12:58:26 · 511 阅读 · 0 评论 -
修改表结构
使用ALTER TABLE 语句追加、删除或修改列的语法添加列:ALTER TABLE tablename ADD column datatype[DEFAULT expr] [,column datatype]…;修改列:ALTER TABLE tablename MODIFY column datatype[DEFAULT expr] [,column datatype]…;删除列:ALTER TABLE tablename DROP column;修改表名:rename table 原表名原创 2021-10-09 12:46:50 · 178 阅读 · 0 评论 -
Mysql常用数据类型
一、数值型一、数值型(整数)的基本使用1. 使用规范:在能够满足需求的情况下,尽量选择占用空间小的类型#演示整型的使用#使用tinyint来演示范围,有符号范围-128~127,无符号0~255#1.如果没有指定 unsigned,则tinyint就是有符号USE db_02;CREATE TABLE t3(id TINYINT UNSIGNED); INSERT INTO t3 VALUES(129);SELECT * FROM t3;二、数值型(bit)的基本使用1. bit(m原创 2021-10-09 12:07:30 · 341 阅读 · 0 评论 -
数据库操作
创建数据库CREATE DATABASE [IF NOT EXIST] 数据库名 CHARACTER SET utf8 COLLATE utf8_bin;CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认utf8COLLATE:指定数据库字符集的校对规则(常用的utf8_bin(区分大小写)、utf8_general_ci(不区分大小写),默认为utf8_general_ci)#演示数据库的操作#创建一个名称为db_01的数据库#使用指令创建数据库CREATE DA原创 2021-10-08 11:53:59 · 89 阅读 · 0 评论 -
命令行连接到mysql
连接到mysql服务的指令mysql -h 主机ip -P 端口 -u 用户名 -p 密码(-p和密码之间不要有空格,如果-p后没有写密码,回车会要求输入密码)登录前保证mysql服务已启动如果没有写 -h 主机ip,默认就是本机如果没有写 -P 端口,默认就是3306...原创 2021-10-08 11:53:36 · 132 阅读 · 0 评论 -
数据库三层结构
数据库结构所谓安装数据库,就是在主机安装一个数据库管理系统(DBMS),这个管理程序可以管理多个数据库。DBMS(database manage system)一个数据库中可以创建多个表,以保存数据信息数据库管理系统(DBMS)、数据库和表的关系如图:数据在数据库中的存储方式行:row列:column表的一行称之为一条记录,在java中,往往一个对象就是一行记录sql语句分类DDL:数据定义语句(create 库,表…)DML:数据操作语句(增、删、改)DQL:数据查询语句(se原创 2021-10-08 11:52:53 · 431 阅读 · 0 评论 -
Navicat安装和使用
Navicat是可操作数据库的图形化界面工具,直接官网下载安装连接mysql数据库就可以使用原创 2021-10-08 11:52:29 · 133 阅读 · 0 评论 -
mysql的安装和配置
官网下载需要版本添加环境变量:电脑–属性–高级系统设置–环境变量,在Path环境变量添加mysql的bin目录在安装目录下创建my.ini文件,并输入内容(5.7版本需要)使用管理员身份打开 cmd,进入bin目录,使用 mysql -install 命令进行安装安装成功之后,初始化数据库,使用 mysqld --initialize-insecure --user=mysql 命令进行初始化,初始化成功后,在mysql目录下会生成data文件夹启动mysq..原创 2021-10-08 11:51:56 · 82 阅读 · 0 评论 -
数据库和表的基本操作
查看表describe 表名;//查看表结构show tables;//查看数据库中的表show create table 表名\G;//查看创表语句修改表drop table;//删除表alter table 旧表名 rename 新表名;//修改表名alter table 表名 change 旧字段名 新字段名 新数据类型;//修改表中字段名,并修改字段的数据类型(若不需要修改数据类型,可以设置为原数据类型,但不要空)alter table 表名 modify 字段名.原创 2021-06-07 14:36:44 · 78 阅读 · 0 评论 -
MySQL基础
创建数据库连接MySQL: mysql -u用户名 -p密码创建数据库: create database 数据库名;查看数据库: show database;创建表create table 表名(…字段名 数据类型,字段名 数据类型…);使用主键约束主键是表中一列或者多列的组合,主键约束(primary key constraint)要求主键列的数据唯一,并且不允许为空,主键能够唯一的标识表中的每一条记录,可以结合外键来定义与不同数据表之间的关系添加主键约束的方式..原创 2021-06-07 14:02:24 · 429 阅读 · 2 评论