![](https://img-blog.csdnimg.cn/20200616084235258.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
数据库一站式学习
xiaofenzhao
这个作者很懒,什么都没留下…
展开
-
数据库用户管理
用户管理如果我们只能使用root用户,这样将会存在安全隐患,这时就需要使用MySQL的用户管理张三只能操作mytest这个库,李四只能操作msg这个库,如果个他们root账户,那他门可以操作所有的库,那么风险就太大了。用户用户信息MySQL中的用户,都存储在系统数据库mysql的user表中字段解释:host:表示这个用户可以从哪个主机登录,如果是localhost,表示只能从本机登录user:用户名authentication_string:用户密码通过password函数加密后的原创 2020-06-28 09:28:03 · 324 阅读 · 0 评论 -
数据库视图特性
视图视图是一个虚拟表,其内容由查询定义,如同真实的表一样,视图包含一系列带有名称的列和行数据,视图的数据变化会影响到基表,基表的数据变化也会影响视图基本使用创建视图create view 视图名 as select 语句案例create view v_ename as select ename,dname from EMP,DEPT where EMP.depno=DEPT.deptno;select* from v_ename_dname;修改了视图,对基表数据有影响update原创 2020-06-26 17:49:34 · 1108 阅读 · 0 评论 -
数据库(事务管理)
事务管理事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MySQL提供一种机制,保证我们达到这样的效果,事务还规定不同的客户端看到的数据是不相同的事务基本操作案例:银行转账的例子更需要考虑事务的问题创建一个测试表开始一个事务创建一个保存点事务操作的注意事项1.如果没有设置保存点,也可以回滚,只能回滚到事务的开始,直接使用rollback(前提是事务还没有提交)2.如果一个事务被提交了(commit),则不可以回退原创 2020-06-25 16:48:04 · 210 阅读 · 0 评论 -
数据库索引特性
索引特性索引:提高数据库的性能,索引是物美价廉的东西,不用加内存,不用改程序,不用调sql,只要执行正确的create index,查询速度就可能提高成百上千倍,但是这是有代价的,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO,所以他的价值,在于提高一个海量数据的检索速度。常见索引分为:1.主键索引2.唯一索引3.普通索引4.全文索引—解决中子文索引问题案例分析先整一个还量表,在查询的时候,看看是否有索引有什么问题?基本原理创建索引创建主键索引原创 2020-06-24 10:01:51 · 431 阅读 · 0 评论 -
表的内连和外连
表的链接分为内连和外连内连接:内连接实际上就是利用where子句对两种表形成的 笛卡尔积进行筛选语法:select 字段 from 表1inner join 表2 on 连接条件 and 其他条件案例:显示SMITH的名字和部门名称select ename,dname from EMP,DEPT where EMP.deptno and ename='SMITH';标准内连接写法:select ename,dname from EMP inner join DEPT on EMP.de原创 2020-06-23 09:08:00 · 222 阅读 · 0 评论 -
数据库的复合查询
复合查询之前所说的mysql表的查询都是对一张表进行查询,但是在实际开发中还远远不够。select * from where (sal>500 or job='MANAGER')and eame like 'J%'按照部门号升序而雇员的工资降序排序select * from EMP rorder by deptno,sal desc;按照年薪进行降序排序select ename,sal*12+ifnull(comm,0) as'年薪'from EMP order by 年薪 desc;原创 2020-06-22 10:43:58 · 1299 阅读 · 0 评论 -
数据库函数
函数日期函数获得年月日获得时分秒获得时间戳在日期的基础上加上日期在日期的基础上减去日期计算两个日期之间相差多少天案例1:创建一张表,记录生日添加当前 日期案例2:创建一个留言表插入数据显示所有留言信息,发布日期只显示日期,不用显示时间查询在2分钟内发布的帖子字符串函数案例:获取emp表的ename列的字符集select charset(ename) from EMP;要求显示student表中的信息,显示格式:“XX的语文是XX分,数学是原创 2020-06-21 11:55:49 · 475 阅读 · 0 评论 -
关于表的一些常用操作(增删改查)
表的增删改查CURD: Create,Retrieve,Update,DeleteCreate语法:INSERT [INTO] table_name [(column [,column]...)] VALUE (value_list) [,(value_list)]...value_list:value,[,value]...案例:创建一张学生表单行数据+全列插入插入两条记录,value_list数量必须和定义表的列的数量及顺序一致多行数据+指定列插入插入否则更新由于主原创 2020-06-20 17:57:54 · 308 阅读 · 0 评论 -
数据库综合案例(商店买商品)
有个商店的数据,记录客户及购物情况,有以下三个表组成:1.商品goods(商品编号goods_id,商品名goods_name,单价unitprice,商品类别category,供应商provider)2.客户customer(客户号cusomer_id,姓名name,住址address,邮箱email,性别sex,身份证card_id)3.购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)要求:每个表的主外键客户的姓名不能原创 2020-06-18 15:16:46 · 1368 阅读 · 0 评论 -
数据库中关于表的约束
表的约束真正约束字段的是数据类型,但是数据类型约束很单一,需要一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性,比如有一个字段是name,要求是唯一的。表的约束有很多:null/not null,default,comment,zerofill,primary key,auto_increment,unique key**空属性**两个值:null(默认的)和not null(不为空)数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办原创 2020-06-18 10:18:19 · 391 阅读 · 0 评论 -
数据库的数据类型
数据类型分类数值类型:数值类型:tinyint类型数值越界测试create table tt1(num tinyint);insert into tt2 values(128);--数组越界,报错说明:在MyAQL中,整型可以指定是由符号和无符号的,默认是有符号的可以通过UNSIGNED来说明某个字段是无符号的无符号案例create table tt2(num tinyint unsigned);其他类型自己推导尽量不使用unsigned ,对于int 类型可能存放不下原创 2020-06-17 10:54:31 · 237 阅读 · 0 评论 -
数据库表的操作
创建表语法:CREATE TABLE table_name( field1 datatype, field2 datatype, field3 datatype)说明:field表示列名datatype表示列的类型character set字符集,如果没有指定字符集,则以所在数据集的字符集为准collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准创建表案例create table users( id int, name varchar(20) commen原创 2020-06-17 08:37:14 · 104 阅读 · 0 评论 -
关于数据库的一些操作
1.创建数据库案例分析进入数据库环境:mysql -h 127.0.0.1 -P 3306 -u root -p输入密码:***创建名为db1的数据库create database db1;说明:当创建数据库没有指定字符集和校验规则时,系统默认使用utf8字符集,校验规则是:utf8_general_ci创建一个使用utf8字符集的db2数据集create database db2 charset=utf8;创建一个使用utf字符集,并带校验规则的db3数据集create dat原创 2020-06-16 10:41:25 · 227 阅读 · 0 评论