小编给大家分享一下使用vue开发移动端管理后台的注意事项有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Vue的优点Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快等优势,Vue中页面使用的是局部刷新,不用每次跳转页面都要请求所有数据和dom,可以大大提升访问速度和用户体验。1.对于项目的一些心得与体会首先的一点,就是,对于图形界面框架的选型,这个很重要,对于一项目来说,开始动手前就要对项目的设计图有个完整的了解,以便于自己选择插件或者框架;然后就是,对于交互性操作,比如:上传图片,预览图片啥的,应该选择是否是用图形界面框架来实现还是另选专门的插件来实现在完成项目中,我又新学到了上传图片插件vue-core-image-upload,移动端富文本编辑器vue-quill-editor还有个地址的三级联动mt-picker,(是基于mint-ui图形界面框架的)2.rem与px的转换从同事传授中获到的经验,对于rem与px的转换,就是在index.html模板文件中加入下面的脚本,然后就是1rem=100px(这个可能不准确,有更好的方法,各位大佬请在评论中留下,感激不尽)<script type="text/javascript"> document.getElementsByTagName("html")[0].style.fontSize = 100 / 750 * window.screen.width + "px";</script>3.对于上传图片插件vue-core-image-upload中遇到的坑对于跨域问题,有好多方法可以解决,这里讲的挺多的前端跨域解决方法还有就是后台设置响应头access-control-allow-origin可以指定特定的域名,我这里的后台设置的就是access-control-allow-origin:*,就是因为这样,用这个上传图片的插件就会报错Access to XMLHttpRequest at 'https://....' from origin 'http://localhost:8080' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.这个问题我蒙圈了好久,和后台也讲了,就是处于蒙圈状态,已经允许跨域了,怎么还报错呢?很烦然后,终于找了个方法解决(有用过其他的上传插件,感觉不好用,代码或者思路好乱)其实这个插件中的文档也有提示,只是刚用,还不是很会就是在使用这个插件的代码中加上这个字段就可以了<vue-core-image-upload class="btn btn-primary" :crop="false" input-of-file="file" @imageuploaded="loadMainImg" :max-file-size="5242880" :url="serverUrl" :credentials="false" //允许携带cookie></vue-core-image-upload>对于附带身份凭证的请求,服务器不得设置 Access-Control-Allow-Origin 的值为“”。这是因为请求的首部中携带了 Cookie 信息,如果 Access-Control-Allow-Origin 的值为“”,请求将会失败。也就是说Access-Control-Allow-Credentials设置为true的情况下Access-Control-Allow-Origin不能设置为*4.基于mint-ui的三级地址选择效果图template文件<div class="modal" @click="handleCloseAddress"> <div class="cateContainer" @click.stop> <div class="operateBtn"> <div class="cancelBtn" @click="handleCloseAddress">取消</div> <div class="confirmBtn" @click="handleCloseAddress">确定</div> </div> <mt-picker class="addressPicker" :slots="myAddressSlots" @change="onAddressChange"></mt-picker> </div></div>js文件json文件地址地址文件// 定义一个包含中国省市区信息的json文件import addressJson from '@/assets/common/address'export default { data() { return { myAddressSlots: [ { flex: 1, values: Object.keys(addressJson), className: 'slot1', textAlign: 'center' }, { divider: true, content: '-', className: 'slot2' }, { flex: 1, values: ['市辖区'], className: 'slot3', textAlign: 'center' }, { divider: true, content: '-', className: 'slot4' }, { flex: 1, values: ['东城区'], className: 'slot5', textAlign: 'center' } ], province:'省', city:'市', county:'区/县', } }, methods: { onAddressChange(picker, values) { if(addressJson[values[0]]) { picker.setSlotValues(1, Object.keys(addressJson[values[0]])); picker.setSlotValues(2, addressJson[values[0]][values[1]]); this.province = values[0]; this.city = values[1]; this.county = values[2]; } }, } }5.关于对是否登录的处理开始也有做过登录的管理后台,不过,在进行登录时,总会一闪过登录的界面,这种感觉很不好,在这里记录下相比之前更好点的方法在main.js文件中添加对router的钩子函数router.beforeEach((to, from, next) => { let token = localStorage.getItem('token'); if (!token && to.path !== '/login') { next('/login'); } else { next(); } });通过判断缓存里是否有token来进行路由的跳转相对于之前的那种方法,这里对路由的跳转进行的拦截,在路由进行跳转前,进行判断6.上拉加载mescroll.js插件这里对于分页加载第二页使用的上拉加载的插件还是用了原来的插件,还是感觉挺好用的这里有讲述上拉加载,下拉刷新,滚动无限加载7.移动端富文本插件Vue-Quill-Editor效果图这里有相关案例代码vue-quill-editor<template> <quill-editor v-model="richTextContent" ref="myQuillEditor" :options="editorOption" @change="onEditorChange($event)"> </quill-editor></template><script> import { quillEditor } from "vue-quill-editor"; import 'quill/dist/quill.core.css'; import 'quill/dist/quill.snow.css'; import 'quill/dist/quill.bubble.css'; export default{ data() { return {} }, methods: { onEditorChange(e) {} } }</script>响应事件onEditorChange(e){ console.log(e) this.richTextContent = e.html; },8.移动端图片预览插件vue-picture-preview<img :src="url" v-preview="url" preview-nav-enable="false" />需要在app.vue中加入如下代码<lg-preview></lg-preview>效果图以上是“使用vue开发移动端管理后台的注意事项有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注辰讯云资讯频道!...
这篇文章将为大家详细讲解有关java中Count怎么计算流中的元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。1、说明count是终端操作,可以统计stream流中的元素总数,返回值为long类型。count()返回流中元素的计数。这是归纳的特殊情况(归纳运算采用一系列输入元素,通过重复应用组合运算将其组合成一个总结结果)。这是终端操作,可能会产生结果和副作用。执行终端操作后,管道被视为消耗,无法再利用。2、实例// 验证 list 中 string 是否有以 a 开头的, 匹配到第一个,即返回 trueboolean anyStartsWithA = stringCollection .stream() .anyMatch((s) -> s.startsWith("a")); System.out.println(anyStartsWithA); // true // 验证 list 中 string 是否都是以 a 开头的boolean allStartsWithA = stringCollection .stream() .allMatch((s) -> s.startsWith("a")); System.out.println(allStartsWithA); // false // 验证 list 中 string 是否都不是以 z 开头的,boolean noneStartsWithZ = stringCollection .stream() .noneMatch((s) -> s.startsWith("z")); System.out.println(noneStartsWithZ); // true关于“java中Count怎么计算流中的元素”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。...
这篇文章将为大家详细讲解有关如何将原生JDBC封装实现CRUD,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。将原生JDBC封装实现CRUD1、项目结构pom.xml加入依赖2、思路初步1、加载数据库驱动连接数据库2、sql语句3、创建PreparedStatement对象执行sql语句4、关闭连接扩展1、数据库相关信息(url/username/password/driver)放配置文件中,再读取进行连接;2、sql语句模板样式3、PreparedStatement对象通过setObject()进行sql语句处理;3、根据不同需求(CRUD)调用不同方法; 如查询:使用ResultSet rs = preparedStatement.executeQuery();得到结果,同时通过某些操作变成我们想要的数据。插入:preparedStatement.executeUpdate();返回值=1表示插入成功。3、再扩展及代码3.1、 封装连接数据库操作,并返回连接对象;3.2、 将创建PreparedStatement对象、对sql语句模板样式传参进行处理、对执行sql的结果进行处理封装成为一个模板,返回处理结果;其中有用到lambda匿名函数、反射机制、泛型:3.3、其他封装…这里我将sql语句模板和执行sql得到的结果放在了·一块3.4、接口:CRUD4、效果数据库4.1、按uid查4.2、获取所有4.3、插入4.4、删除4.5、更新关于“如何将原生JDBC封装实现CRUD”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。...
小编给大家分享一下电脑如何切换用户,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!电脑切换用户的方法:首先打开控制面板,点击【更改账户类型】;然后点击【在电脑设置中添加新用户】、【添加账户】,填写邮箱地址;最后点击开始菜单,切换用户账户即可。本文操作环境:windows10系统、thinkpad t480电脑。具体方法:首先我们打开电脑设置,在电脑设置里面找到打开控制面板,在控制面板下的用户账户和家庭安全下找到并点击更改账户类型,如下图所示。然后进入管理账户页面,找到“在电脑设置中添加新用户”,点击“在电脑设置中添加新用户”,如下图所示。接着点击“添加账户”,在弹窗中填写邮箱地址,点击下一步即可添加新用户账户,如下图所示。最后我们回到桌面,点击开始菜单,点击当前登录的用户账户名即可弹出其他用户账户名,然后选择点击想要切换的用户账户名即可切换,如下图所示。以上是“电脑如何切换用户”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注辰讯云资讯频道!...
小编给大家分享一下如何在swarm集群里通过service部署wordpress,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!创建一个overlay驱动的网络docker network create -d overlay wordpress [vagrant@swarm-manager ~]$ docker network ls NETWORK ID NAME DRIVER SCOPEq3rp3i79eud7 wordpress overlay swarm创建mysql容器docker service create --name mysql --env MYSQL_ROOT_PASSWORD=root --env MYSQL_DATABASE=wordpress --network wordpress --mount type=volume,source=mysql-data,destination=/var/lib/mysql mysql创建wordpressdocker service create --name wordpress -p 80:80 --env WORDPRESS_DB_PASSWORD=root --env WORDPRESS_DB_HOST=mysql --network wordpress wordpress查看节点分布# 服务列表[vagrant@swarm-manager ~]$ docker service ls ID NAME MODE REPLICAS IMAGE PORTS vxz0bfmul9th mysql replicated 1/1 mysql:5.7.22cpe3wqrsoqxi wordpress replicated 1/1 wordpress:latest *:80->80/tcp# wordpress服务的节点分布[vagrant@swarm-manager ~]$ docker service ps wordpress ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS tnh5f0ldyidl wordpress.1 wordpress:latest swarm-manager Running Running 4 minutes ago# mysql服务的节点分布[vagrant@swarm-manager ~]$ docker service ps mysql ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS jns8bllzbz94 mysql.1 mysql:5.7.22 swarm-work1 Running Running 33 minutes ago虽然 wordpress 只分布在了swarm-manager(192.168.205.10)这一个节点上,但是我们发现使用如下链接访问,效果都是一样的,是不是很神奇。。。具体原因详见7.6http://192.168.205.10/http://192.168.205.11/http://192.168.205.12/在 swarm 模式下,无需安装etcd,swarm会自动帮我们维护好分布式的overlay网络以上是“如何在swarm集群里通过service部署wordpress”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注辰讯云资讯频道!...
本篇文章和大家了解一下css设置元素缩放效果的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。在css中,可以使用transfrom属性的scale()方法设置缩放,语法格式为“transfrom:scale(方向)”。scale()方法用于修改元素的大小,通过向量形式定义的缩放值来放大或缩小元素,同时可在不同方向设置不同缩放值。在CSS3中,我们可以使用transform属性的scale()方法来实现元素的缩放效果。缩放,指的是“缩小”和“放大”的意思。语法:transform: scaleX(x); /*沿X轴方向缩放*/transform: scaleY(y); /*沿Y轴方向缩放*/transform: scale(x, y); /*沿X轴和Y轴同时缩放*/说明:缩放有3种情况:scaleX()、scaleY()、scale()。参数x表示元素在x轴方向的缩放倍数,参数y表示元素在y轴方向的缩放倍数。当x或y取值为0~1之间时,元素进行缩小;当x或y取值大于1时,元素进行放大。大家思考一下“倍数”的概念,很快就懂了。举例:scaleX(x)<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title></title> <style type="text/css"> /*设置原始元素样式*/ #origin { width:200px; height:100px; border:1px dashed gray; } /*设置当前元素样式*/ #current { width:200px; height:100px; color:white; background-color: rgb(30, 170, 250); opacity: 0.6; transform:scaleX(1.5); } </style></head><body> <div id="origin"> <div id="current"></div> </div></body></html>浏览器预览效果如下图所示。分析:transform:scaleX(1.5);表示元素在x轴方向放大为原来的1.5倍。如果把1.5改为0.5,则元素会在x轴方向缩小为原来的0.5倍,此时预览效果如下图所示。实际上,transform:scaleX(1.5);其实可以等价于transform:scale(1.5, 0);,小伙伴们可以自行测试一下。举例:scaleY(y)<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title></title> <style type="text/css"> /*设置原始元素样式*/ #origin { width:200px; height:100px; border:1px dashed gray; } /*设置当前元素样式*/ #current { width:200px; height:100px; color:white; background-color: rgb(30, 170, 250); opacity: 0.6; transform:scaleY(1.5); } </style></head><body> <div id="origin"> <div id="current"></div> </div></body></html>浏览器预览效果如下图所示。分析:transform:scaleY(1.5);表示元素在y轴方向放大为原来的1.5倍。如果把1.5改为0.5,则元素会在y轴方向缩小为原来的0.5倍,此时浏览器预览效果如下图所示。实际上,transform:scaleY(1.5);其实可以等价于transform:scale(0, 1.5);,小伙伴们可以自行测试一下。举例:scale(x, y)<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title></title> <style type="text/css"> /*设置原始元素样式*/ #origin { width:200px; height:100px; border:1px dashed gray; } /*设置当前元素样式*/ #current { width:200px; height:100px; color:white; background-color: rgb(30, 170, 250); opacity: 0.6; transform:scale(1.2, 1.5); } </style></head><body> <div id="origin"> <div id="current"></div> </div></body></html>浏览器预览效果如下图所示。分析:transform:scale(1.2, 1.5);表示元素在x轴和y轴两个方向上同时放大,x轴方向放大为原来的1.2倍,y轴方向放大为原来的1.5倍。实际上,transform:scale(1.2, 1.5);其实可以等价于以下代码:transform:scaleX(1.2);transform:scaleY(1.5);什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定义样式结构如字体、颜色、位置等的语言,并且css样式可以直接存储于HTML网页或者单独的样式单文件中,而样式规则的优先级由css根据这个层次结构决定,从而实现级联效果,发展至今,css不仅能装饰网页,也可以配合各种脚本对于网页进行格式化。以上就是css设置元素缩放效果的方法的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注辰讯云行业资讯频道哦!...
这篇文章主要介绍了数据库的基本特点有哪些,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。数据库的基本特点是:数据非结构化、数据独立性、数据冗余小,易扩充、统一管理和控制。数据库采用复杂的数据模型表示数据结构;使用数据库管理系统对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。数据库的基本特点是:数据非结构化、数据独立性、数据冗余小,易扩充、统一管理和控制。数据库采用复杂的数据模型表示数据结构;数据共享性高、冗余度小、易扩充:有较高的数据独立性;数据库系统为用户提供方便的用户接口;系统提供数据库的恢复、并发控制、数据完整性和数据安全性4个方面的数据控制功能。在数据库系统中,提供数据统一管理和控制的是“数据库管理系统”。数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。以上就是数据库的基本特点有哪些的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎来辰讯云资讯!...
今天小编给大家分享的是css怎么实现元素不随滚动条滚动,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定义样式结构如字体、颜色、位置等的语言,并且css样式可以直接存储于HTML网页或者单独的样式单文件中,而样式规则的优先级由css根据这个层次结构决定,从而实现级联效果,发展至今,css不仅能装饰网页,也可以配合各种脚本对于网页进行格式化。css中可以使用position属性设置元素不随滚动条滚动,语法“position:fixed”。position属性规定元素的定位类型,当值为fixed时,元素以相对浏览器窗口进行定位,无论怎样移动滑动条,都会固定在浏览器窗口的同一位置。在CSS中,可以使用固定定位(position:fixed;)来固定元素的位置,让元素不随滚动条滚动。fixed 生成固定定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于浏览器窗口进行定位。固定定位的元素以相对浏览器窗口为基准进行定位的,无论怎样移动你的滑动条,它都会固定在相对于浏览器窗口的固定位置,另外要注意,它的兄弟元素将会在位置排布上忽视它的存在。这个时候用的top,bottom,left,right也是相对于浏览器窗口而言的。示例:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <style type="text/css"> .logo { width: 540px; height: 258px; position: fixed; background: url(猫/images/1.jpg) no-repeat; margin: auto; left: 0; right: 0; top: 0; bottom: 0; } </style> </head> <body> <div class="logo"> </div> 布偶猫<br/> 布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫 <br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/>布偶猫<br/> </body></html>效果图:从上面的示例看出:可以使用position: fixed来固定图片位置不变,让图片位置可以不随着文字的拖动而改变图片位置。注:在IE7以上版本及firefox、opera、safari里,都支持css属性"position:fixed",它的作用就是将元素相对于窗口固定位置。但是在IE6下,并不支持position:fixed属性,这个时候我们需要对IE6进行hack处理。关于css怎么实现元素不随滚动条滚动就分享到这里了,希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。...
今天小编给大家分享的是简单的创建数据库sql语句分析,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。创建数据库的sql语句是“CREATE DATABASE”,语法为“CREATE DATABASE 数据库名 [[DEFAULT] CHARACTER SET 字符集名] [[DEFAULT] COLLATE 校对规则名];”。在 MySQL 中,可以使用 CREATE DATABASE 语句创建数据库,语法格式如下:CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];[ ]中的内容是可选的。语法说明如下:<数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。注意在 MySQL 中不区分大小写。IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。[DEFAULT] CHARACTER SET:指定数据库的字符集。指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集。[DEFAULT] COLLATE:指定字符集的默认校对规则。MySQL 的字符集(CHARACTER)和校对规则(COLLATION)是两个不同的概念。字符集是用来定义 MySQL 存储字符串的方式,校对规则定义了比较字符串的方式。后面我们会单独讲解 MySQL 的字符集和校对规则。实例1:最简单的创建 MySQL 数据库的语句在 MySQL 中创建一个名为 test_db 的数据库。在 MySQL 命令行客户端输入 SQL 语句CREATE DATABASE test_db;即可创建一个数据库mysql> CREATE DATABASE test_db;Query OK, 1 row affected (0.12 sec);实例2:创建 MySQL 数据库时指定字符集和校对规则使用 MySQL 命令行工具创建一个测试数据库,命名为 test_db_char,指定其默认字符集为 utf8,默认校对规则为 utf8_chinese_ci(简体中文,不区分大小写)mysql> CREATE DATABASE IF NOT EXISTS test_db_char -> DEFAULT CHARACTER SET utf8 -> DEFAULT COLLATE utf8_chinese_ci; Query OK, 1 row affected (0.03 sec)这时,可以使用SHOW CREATE DATABASE查看 test_db_char 数据库的定义声明,发现该数据库的指定字符集为 utf8,运行结果如下所示:mysql> SHOW CREATE DATABASE test_db_char; +--------------+-----------------------------------------------------+| Database | Create Database | +--------------+-----------------------------------------------------+ | test_db_char | CREATE DATABASE `test_db_char` /*!40100 DEFAULT CHARACTER SET utf8 */ |+--------------+-----------------------------------------------------+1 row in set (0.00 sec)关于简单的创建数据库sql语句分析就分享到这里了,希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。...
今天小编给大家分享的是三种数据库完整性约束介绍,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。数据库的三种完整性约束:1、实体完整性,对关系中的记录唯一性,即主键的约束;2、参照完整性,对关系数据库中建立关联关系的数据表间数据参照引用的约束,即对外键的约束;3、用户定义的完整性,针对某一具体关系数据库的约束条件。关系模型中的三类完整性约束1.实体完整性2.参照完整性3.用户定义的完整性实体完整性若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性规定基本关系的所有主属性,都不能取空值。参照完整性外码: 关系R中,有一个或一组属性,其不是主码,并且该属性和另一关系S中的主码相对应。则该属性为R的外码。该属性或属性组可以和当前关系的主码相关联。比如下图的先修课程号和课程号相关联。参照完整性规定:外码或者取空值,或者等于另一关系中的主码值。用户自定义完整性1.unique(唯一)2.check(满足某一条件)3.not null(不为空值)用户定义的完整性是针对某一具体关系数据库的约束条件。反映某一具体应用所涉及的数据必须满足的语义要求。用户定义的完整性没有统一的规则,由数据库设计人员根据具体应用中数据的语义要求来创建。关于三种数据库完整性约束介绍就分享到这里了,希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。...