网站开发语言识别,网站众筹该怎么做,广州互联网公司,素材下载免费MySQL
MySQL是一个数据库软件
mysql
mysql是一个“客户端—服务器”结构的软件 (1) a.客户端#xff1a;主动发起请求的一方#xff08;Client#xff09; b.服务器#xff1a;被动接收请求的一方#xff08;Server#xff09; 客户端和服务器之间通过网络 进行通信 (…MySQL
MySQL是一个数据库软件
mysql
mysql是一个“客户端—服务器”结构的软件 (1) a.客户端主动发起请求的一方Client b.服务器被动接收请求的一方Server 客户端和服务器之间通过网络 进行通信 (2) a.客户端给服务器发起的数据称为请求Request b.服务器给客户端返回的数据称为响应Response 服务器是被动的一方它不知道客户端什么发起请求真正的服务器它是需要7*24进行服务的 (3)大部分服务器是给多个客户端提供服务的但也有只给一两个客户端提供服务的
分布式系统
一台机器能够处理的数据是有限的往往就需要引入多台机器相互配合完成更复杂的工作 分布式系统中机器之间也是需要进行网络通信的 如图所示在系统中客户端服务器的身份是可以相互转换的
mysql安装
安装的是mysql客户端和mysql服务器 mysql的真正本体是服务器负责保存和管理数据数据 都是存储在硬盘上的
内存和硬盘的差别
1.内存速度快硬盘速度慢差几千倍数万倍 2.内存空间小硬盘空间大 3.内存贵硬盘便宜 4.内存中存储数据是易失的硬盘中存储的数据是持久的 Eg像断电/重启之后内存中存储的数易丢失 数据库存储的数据希望存储的数据量比较大持久化存储像mysql这些数据库使用硬盘存储但是也有少数数据库是使用内存的追求速度最大化egredis
mysql的使用 以上是mysql可能出现的错误一定要学会看抛出的是什么异常
数据库的操作
一个 mysql 服务器上,有很多很多的表就可以把有关联关系的一些表放到一起,就构成了一个数据集合,此时就称为**“数据库”**而且一个 mysql服务器上可以有多个这样的数据库
创建数据库
基本创建操作 create database 数据库名;1sql中有特定含义的单词关键字数据库名表名列名都不能和关键字重复 2sql的关键字是大小写不敏感的所以我们可以写成create database也可以写成CREATE DATABASE
mysql create database java109;
Query OK, 1 row affected (0.02 sec)2.数据库创建的时候要求不能重复此时就可以在创建的时候加上一个修饰来应对这个问题
mysql create database if not exists java107;
Query OK, 1 row affected (0.01 sec)1此时就不会因为数据库同名而报错了发现数据库已经存在是不会继续创建数据库的 2if not exists的用途是避免sql报错实际工作中很多时候是把一系列sql写到一个文件中批量进行的很少会这样一条一条的进行所以在批量执行的情况下如果一条sql报错了后面的sql就无法继续执行了
字符集
每种字符集都是一个很大的码表 3.创建数据库的时候可以手动指定一下字符集的 character set 字符集名字/charset 字符集名字
CHARACTER SET charset_name;1咱们需要在数据库中保存中文mysql默认的字符集是拉丁文不支持中文所以必须在创建数据库的时候手动指定编码方式为支持中文的编码**GBKUTF8**
2不同的字符集不同的编码方式下一个汉字占几个字节是不同的 学习C语言时使用的是VS在windows上写的代码windows简体中文版默认字符集是gbkVS默认的字符集是和系统一致gbk 在这个情况下一个汉字是占2个字节
3 a.gbk现在已经用的越来越少了主要使用utf8作为编码方式
b.utf8是变长编码utf8不仅仅可以表示中文也可以表示世界上的任何一种语言文字
c.如果使用utf8编码一个汉字通常是3个字节
d.unicode 是给字符串进行编码的但是无法给“字符串“进行编码 比如把多个unicode编码的字符串放在一起构成一个字符串就可能会乱套了因为它无法识别字符和字符之间的边界
e.基于unicode就演化出了一些可以给”字符串“ 编码的版本 在java中谈到char类型——内部编码 unicode 谈到String内部的编码一般是utf8Java内部自动完成了编码转换
mysql create database java106 charset utf8;
Query OK, 1 row affected, 1 warning (0.02 sec)
注意 mysql的utf8是一个”残本“不是完全体的utf8少了一些emoji表情所以后来mysql使用了utf8mb4则是完全体的utf8了
查看数据库
列出当前mysql服务器上一共有哪些数据库
show databases;mysql create database- if not exists- java109- charset utf8;
Query OK, 1 row affected, 2 warnings (0.01 sec)mysql show databases;
--------------------
| Database |
--------------------
| information_schema |
| java106 |
| java107 |
| java109 |
| mysql |
| performance_schema |
| sys |
--------------------
7 rows in set (0.02 sec)注意像mysql,performance_schema这些都是属于系统自带的数据库而mysql这个比较重要它是用来修改一些配置所以要慎重操作
选中数据库
use 数据库名;数据库中最关键的操作就是针对表进行增删改查表是从属于数据库的所以要针对表操作就需要把哪个数据库的表这个事情指定清楚
删除数据库
drop database 数据库名;mysql drop database java109;
Query OK, 0 rows affected (0.03 sec)删除之后我们使用show databases来查看数据库是否被删除
mysql show databases;
--------------------
| Database |
--------------------
| information_schema |
| java106 |
| java107 |
| mysql |
| performance_schema |
| sys |
--------------------
6 rows in set (0.01 sec)注意删除操作删掉的不仅仅是database而且也删除了database中所有的表和表里所有的数据
常用数据类型
数值类型
分为整型和浮点型 使用decimal表示小数精度是更高了但是它的运算速度会变慢占用空间也越多
字符串类型 1此处的size表示该类型最多存储几个字符不是字节 eg:像一个汉字算是一个字符但是可能对应多个字节
2解释可变长字符串VARCHAR当你写了size为10但是不会立即分配10个字符的存储空间是会先分配一个比较小的空间如果不够自动扩展但是最大空间不会超过10
3BLOB存储的是二进制的数据而像VARCHAR这样的存储的是文本数据; 文本数据存储的都是字符这些字符都是可以在对应码表上查到的在码表上查不到的就是二进制数据音乐、图片、视频都属于二进制的
4一般很少会在数据库的某一列中存储特别大的数据几十M几百M这么做会大大影响到数据库的增删改查的效率 实际开发中如果需要保存图片一般都是把图片单独放到专门的目录中然后让数据库保存照片的路径
日期类型 1TIMESTAMP时间戳使用时间戳来表示时间以1970 年1月1日0时0分0秒 作为基准,计算当前时刻和基准时刻的 秒数/毫秒数/微秒数 之差 2DATATIME只能表示年月日不能表示时分秒
总结
上述数据类型我们只需要重点掌握以下几个 1.int 2.long 3.double 4.decimal 5.varchar 6.datetime
数据表的操作
针对数据表的操作前提是先选中数据库 一个表,包含很多行, 每一行也称为 一条记录一个行里可以有很多列,每一列也称为是一个字段 每个列都是有一个具体的类型的.
注意在创建关于价格的列的时候我们在写类型的时候一般写成int类型
创建表
进行表操作的前提是必须要先能够选中数据库
create table 表名(列名 类型,列名 类型....);如果确实想让表名/列名和关键字一样可以使用反引号位置在ESC下面与~ 一格;注意一定是英文输入情况下
mysql create database java109 charset utf8;
Query OK, 1 row affected, 1 warning (0.01 sec)mysql use java109;
Database changed查看该数据库中的所有表
查看当前数据库中的所有表
show tables;注意一定要先选中数据库再查看数据表
mysql use java109;
Database changed
mysql show tables;
-------------------
| Tables_in_java109 |
-------------------
| product |
| 商品表 |
-------------------
2 rows in set (0.03 sec)数据库中的数据内容都是持久化存储你在重启电脑后数据依旧存在
查看指定表的结构
desc 表名;mysql desc product;
-------------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-------------------------------------------------------
| name | varchar(20) | YES | | NULL | |
| price | decimal(11,2) | YES | | NULL | |
| storage | int(11) | YES | | NULL | |
| description | varchar(100) | YES | | NULL | |
-------------------------------------------------------
4 rows in set (0.02 sec)删除表
drop table 表名;注意删除表的同时也会把表中的所有数据都删掉