| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MySQL(1) -> 正文阅读 |
|
[大数据]MySQL(1) |
一、基础1. 客户端和服务端是通过网络来进行交互的,而数据是存储在服务器上的。 ?内存和外存的区别: ? ? ? ? 内存的储存空间小、访问速度快、成本高、且内存上的数据容易丢失(一断电就没有了) ????????外存的储存空间大、访问速度慢、成本低、且内存上的数据不容易丢失,但是一般的硬盘存储时间有限,可能几年到几十年,特别是SSD固态硬盘存储时间更短。 注意:数据库是要把数据存储到外存上的,外存的数据能够持久化保存,而且数据库组织数据会很多。 2. 关系型数据库: 数据库服务器==》包含很多数据库==》包含很多数据表==》包含很多行(记录)==》包含很多列(字段) ?3. 非关系型数据库组织形式会更加灵活,通常是按照文档或者键值对方式来存储的。 二、基本操作1. 安装 参考博客园https://www.cnblogs.com/gaobo123/articles/13304745.html 2. 显示当前所有数据库:show databases;? ? ? ? ? ? 注意:databases是复数形式;末尾是英文的分号“ ; ". 3. 创建数据库?:create database 数据库名称 ;? ? ? ? ? 注意:database是单数形式;create是sql的关键字,所以不能当作名称,如果实在有需要可以写成create database `create`即加上反引号。 create database if not exist 数据库名称 ; ? ? ? ? 正常情况下如果数据库已经存在会出现报错,如果加上 if not exist则不会报错。 create database if not exist 数据库名称 create_specification ; ????????create_specification是指属性,有character set 和collate两个。 ????????character set:指定数据库采用的字符集,在表示中文的时候会用到字符集,例如:Unicode、GBK(使用两个字节表示一个汉字)、utf8(是变长编码,其可表示的范围比GBK大得多)。collate:指定数据库字符集的校验规则,即按照什么样的规则来比较字符串之间的大小和相等。 例如:create database if not exist test character set utf8mb4; 4. 选中数据集: use 数据库名称 ; 5. 删除数据库: drop database 数据库名 ; drop database if exists 数据库名 ; 注意:数据库一旦删除,里面的表和数据将会全部被删除 三、 数据类型1. 数值类型 注意: 1字节=8bit ? ? ? ? 有符号范围:-2^(类型字节数*8-1) ~??2^(类型字节数*8-1)-1 ? ? ? ? 无符号类型:0 ~?2^(类型字节数*8)-1 2. 字符串类型 文本数据:例如? .txt? .java? .c等等结尾的文件 二进制数据:例如? .docx? .ppt? .xlsx? .exe等等用记事本打开看不懂的文件 3. 日期类型 三、表基本操作?1. 创建表 : creat table 表名(列名 类型, 列名 类型... ... ); ????????creat table 表名(列名 类型 comment ’备注‘, ????????????????????????????????? ? ?列名 类型... ... ); 注意:创建表需要保证同一个数据库里不能有同名的表,且表名和关键字不能重复 ? ? ? ? ? ? comment是用来进行注释的,也可以用”--“来进行注释 2. 查看表 : show tables; 3. 查看指定表结构 : desc 表名 ;? 4. 删除表: drop table 表名; ? ? ? ? ? ? ? ? ? ?drop table if exists 表名; 三、表的增删查改?(CRUD)1. 新增 insert into 表名 values(值, 值,...);? ?值的类型要与列匹配 指定列插入 : insert into 表名(列名) values(值);? ? 多行插入 :?insert into 表名 values(值 类型),(值 类型),(值 类型)...; 注意:对于数据库来说,内部存储中文是需要指定对应的中文编码方式的,其默认的字符集是拉丁文(Latin1,它不存储中文),所以可以通过修改数据库字符编码。下面是修改默认方式的步骤: ?2. 查询语句 1)全列查找: select * from 表名; ? ? ? ? 注意: select *会让服务器大规模的读取磁盘上的数据,再把数据通过网卡写回客户端。但是如果数据量非常大,则会导致读取磁盘和网卡会很慢甚至卡死。 2)指定列查找:select 列名 from 表名; 3)查询字段为表达式: 即边查询边计算,但只影响临时表的数据展示,对原数据没有任何影响。 select 列名, 表达式??from 表名; ? ? ? ? 例:?select name, english+math? from exam; 4)给查询的列起个别名:select 列名, 表达式 as 别名?from 表名; 5)查询时进行去重:?select distinct 列名? from 表名; 6)查询结果进行排序: ????????升序:? select 列名? from 表名 order by 列名; ????????降序:?select 列名? from 表名 order by 列名 desc; 7)指定多个列进行查询:(哪个列靠前,哪个列优先级就高) ????????select 列名? from 表名 order by 列名,列名...; ????????select 列名? from 表名 order by 列名 desc , 列名 desc , ...; 8)条件查询:使用where子句来表示条件 ????????select 列名? from 表名 where 条件; 注意:在条件查询的时候,会先执行where,再执行select前半部分决定显示哪些列。 例:select * Chinese + math as total from exam where total>200;会报错,因为total是在各种条件判定后才定义的。 ? 9)like, 模糊查询,依赖一些通配符来表示要匹配的值是什么样的 ? ? ? ? %代替多个任意字符; _ 代替一个任意字符 例:select * from exam where name like '孙%';即找到名字以孙开头的人 10)NULL:判断空值 例:select * from exam where math <=> null; 11)分页查询:因为数据很多时,会分成几个页来显示 ? ? ? ??select 列名 from 表名 limit N;即查询前N条记录 ????????select 列名 from 表名 limit N offset M;即从第M条开始查询前N条记录 例:select name,english+math+chinese as total from exam where name != '猪八戒' order by total desc limit 3;即找到名字不是猪八戒的记录,并降序排列,只显示前3条 3. 修改(update) ? ? ? ? update 表名 set 列名 = 值 ,?列名 = 值 ... ... where 条件 ; 例:update exam set math=80, english = 90 where name = '孙悟空'; 4. 删除 ? ? ? ? delect from 表名 where 条件; 注意:若不写条件,则相当于表中内容全部删除,即空表。 三、表的增删查改?(进阶)1. 数据库约束 1)not null :指定列非空,写在某一列的类型的后面 例:create table student ( id int not null, name varchar(20)); 2)unique : 值唯一,保证其列的每行必须有唯一的值,不能重复,也是写在某一列的类型的后面 ? ? ? ? ? ? ? ? 使用unique时,会先查询再遍历 3)default : 修改默认值,本来默认值为null,默认值一般在指定列插入 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:20:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |