数据库的定义

数据库是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库

分类

非结构化数据:

数据相对来说没有固定的特点

半结构化数据:

数据之间有着相同的存储结构 属性 值

每一条数据的属性可以不同

结构化数据:

创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的

数据。

数据之间有着相同的存储结构 属性 值

同一个结构模型中每一条数据的属性都是相同的,但是值有可能不同,这些数据非常便于存储和管理。

SQL结构化查询语言

DDL:数据库定义语言

DML:数据库操作语言

DQL:数据库查询语言

DCL:数据库控制语言

数据库相关操作

  • show databases; 查看当前的所有数据库

  • create database 数据库名 default charset utf8 collate utf8_general_ci; 创建数据库,也可也直接create database 数据库名

  • drop database 数据库名; 删除数据库

  • use 数据库名; 进入数据库

  • show tables; 查看此数据库下的所有表

  • exit; 退出,或者输入ctrl+z

  • 创建一个表

create table tb1(
id int,
name varchar(16) not null, --
age int default 3
)default charset=utf8;
  • drop table 表名; 删除一个表
  • delete from 表名; 或 truncate table 表名;(速度快、无法撤销)
  • 修改表
  1. 添加列

    alter table 表名 add 列名 类型;

    alter table 表名 add 列名 类型 default 默认值;

    alter table 表名 add 列名 类型 not null default 默认值;

    alter table 表名 add 列名 类型 not null primary key auto_increment;
  2. 删除列

    alter table 表名 drop column 列名 类型;
alter table tb3 drop sex;
alter table tb3 drop column age;
  1. 修改列类型

    alter table 表名 modify column 列名 类型;
alter table tb3 modify column sex char(12);
  1. 修改列类型加名称

    alter table 表名 change 原列名 新列名 类型;
alter table tb3 change sex age varchar(12);
  1. 修改列默认值

    alter table 表名 alter 列名 set default 1000;
alter table tb3 alter age set default 1000;
  1. 删除列默认值

    alter table 表名 alter 列名 drop default;
  2. 添加主键

    alter table 表名 add primary key(列名);
alter table tb3 add primary key(id);
  1. 删除主键

    alter table 表名 drop primary key;

常见列类型

(常用的有int,varchar,decimal,datetime)

int[(m)][unsigned][zerofill]

int 表示有符号,取值范围:-2147483648 ~ 2147483647

int unsigned 表示无符号,取值范围:0 ~ 4294967295

int(5)zerofill 仅用于显示,当不满足五位时,按左边补0,例如:00002;满足时,正常显示

tinyint[(m)] [unsigned] [zerofill]`

有符号,取值范围:-128 ~ 127.

无符号,取值范围:0 ~ 255

bigint[(m)][unsigned][zerofill]

有符号,取值范围:-9223372036854775808 ~ 9223372036854775807

无符号,取值范围:0 ~ 18446744073709551615

decimal[(m[,d])] [unsigned] [zerofill]`

准确的小数值,m是数字总个数(负号不算),d是小数点后个数。m最大值为65,最大值为30.

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

单精度浮点数,非准确小数值,m是数字总个数,d是小数点后个数。

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。

char(m)

定长字符串,m最大255,即使内容长度小于m,也会占用m长度

varchar(m)

变长字符串,m最大65535,内容小于m时会按真实数据长度存储,如果超出m长度限制会报错。

text

text数据类型用于保存变长的大字符串,长文本会用,如文章、新闻

mediumtext

A TEXT column with a maximum length of 16,777,215 (2**24 − 1) characters.

longtext

A TEXT column with a maximum length of 4,294,967,295 or 4GB (2**32 − 1)

datetime

YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59)

timestamp

YYYY-MM-DD HH:MM:SS(1970-01-01 00:00:00/2037年)
对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储,查询时,将其又转化为客户端当前时区进行返回。

对于DATETIME,不做任何改变,原样输入和输出。

date

YYYY-MM-DD(1000-01-01/9999-12-31)

time

HH:MM:SS('-838:59:59'/'838:59:59')

DQL数据库查询语言

概念

  • 关系:可以理解为一张二维表,每个关系都有一个关系名,就是通常说的表名
  • 元组:二维表中的一行,在数据库中经常被称为记录
  • 属性:二维表中的一列,在数据库中经常被称为字段
  • 域:属性的取值范围,也就是数据库中某一列的取值限制
  • 关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成
  • 关系模式:指对关系的描述。其格式为:关系名(属性1,属性2, ... ... ,属性N),在数据库中成为表结构

DQL查询语句

格式:

select 列名*N from 表名 where 查询条件1 and/or 查询条件2 group by 列 Having 分组条件 Order by 排序

规则: sql在书写的时候除了查询条件之外,大小写都可以

​ select * from user where uname ='zs';

​ SELECT * FROM USER WHERE UNAME = 'zs';

-- 属于SQL语句的注释

​ 所有的查询条件为字符串时,需要用'xxx'进行修饰,否则就会当做列名去处理

select查询

--查询姓名为bfy的学生信息
select *(通配符,默认查询所有列) from emp(表名) where(过滤符合条件的信息)
name='bfy'(查询条件为字符串时,需要用'xxx'进行修饰) (条件查询:= > < != <> >= <=其中<>和!=是一个意思)
and(并列查询条件) id in(001,002,003)(in 在某个范围中查找)
and phone is null(空值查询用 is null/is not null)
and score between 90 and 100 (范围比较)
and sex like '%S%'(模糊查询,%代表任意个字符,这里的意思是带有s的字符串,
同理,'%S'是最后一个字符是s的字符串,'S%'第一个字符是s的字符串。'_S%'中的
_代表占位符,占一个字符的位置,这里的意思就是第二个字符是S的字符串,由于是模糊查询,字母的大小写都会查询出来,这点要注意)
order by age(结果排序,使用asc是升序排列(默认),使用desc可以降序排序,也可也多列排序如:order by deptno,sal desc)
--显示不带有"R"的员工的姓名
select ename from emp where ename not like '%R%'; --显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.
select ename,job,sal from emp order by job desc,sal;

select结果分页

--每次查询前N行
select * from student limit 4;
--查询第N页,每页显示M个
select * from student limit 0,3;

MySQL数据库的创建和基本的查询语句的更多相关文章

  1. 不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句

    在不同数据库中的使用的分页查询语句: 当前页:currentpage 页大小:pagesize 1. Oracle数据库 select * from (select A.*,rownum rn fro ...

  2. 在mysql数据库中创建oracle scott用户的四个表及插入初始化数据

    在mysql数据库中创建oracle scott用户的四个表及插入初始化数据 /* 功能:创建 scott 数据库中的 dept 表 */ create table dept( deptno int ...

  3. 在mysql数据库中创建Oracle数据库中的scott用户表

    在mysql数据库中创建Oracle数据库中的scott用户表 作者:Eric 微信:loveoracle11g create table DEPT ( DEPTNO int(2) not null, ...

  4. 先排序然后union all失效,mysql数据库多个表union all查询并排序的结果为什么错误

    mysql数据库多个表union all查询并排序的结果为什么错误? 群主,我想进行一个表的查询,先把表中某个字段的内容查出,然后其他的再排序,我用union all连接两个表的查询结果排序是错的 比 ...

  5. MySQL数据库的创建&删除&选择

    1.MySQL数据库的创建 方法1和2      方法3.使用PHP脚本 PHP中使用mysqli_query函数来创建或删除MySql数据库 mysqli_query函数:两个参数 返回值:执行成功 ...

  6. 使用Navicat定时备份mysql数据库和创建报表并邮件自动发送

    数据库备份在现代计算机高速发展的今日变得日益重要,程序员往往因为不重视而忽略备份数据,导致数据丢失,造成非常严重的后果.定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和 ...

  7. mysql数据库优化方法大数据量查询轻松解决

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  8. MySQL数据库(4)- 多表查询、可视化工具Navicat的使用、设计模式MVC

    一.多表查询 准备工作:创建两张表,部门表(department).员工表(employee),代码和表格如下: # 创建表 create table department( id int, name ...

  9. MySQL 数据库的创建、修改、删除、跳转

    一. 创建数据库 []代表可选项. IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作. <数据库名>:创建数据库的名称.MySQL 的数据存储区 ...

随机推荐

  1. 通过CSS让图片变的清楚

    image { width: 100%; height: 100%; border-radius: 10upx; //让图片变清楚 image-rendering: -moz-crisp-edges; ...

  2. MySQL - 数据库的隔离级别

    MySQL - 数据库的隔离级别 隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read) 未提交读(Read uncommitte ...

  3. ”只用 1 分钟“ - 超简极速 Apk 签名 & 多渠道打包神器

    众所周知,渠道包作为当下国内 Android 应用市场常见的分发方式,当 APP 和后台交互或进行数据上报时,会带上各自的 channel 渠道信息,以此方便企业 & 开发者统计 APP 在各 ...

  4. 中国天气api接口xml,json

    http://m.weather.com.cn/data/101110101.html 大坑有木有??反应慢不说了,还老不更新!! 想贴段代码的,现在又打不 开了(貌似3月4号以后没更新过) ==== ...

  5. 编程技巧│浏览器 Notification 桌面推送通知

    目录 一.什么是 Notification 二.弹窗授权 三.弹窗使用 四.浏览器支持检测 五.授权回调 六.3秒后关闭弹窗 一.什么是 Notification Notification 是浏览器最 ...

  6. linux-基于tensorflow2.x的手写数字识别-基于MNIST数据集

    数据集 数据集下载MNIST 首先读取数据集, 并打印相关信息 包括 图像的数量, 形状 像素的最大, 最小值 以及看一下第一张图片 path = 'MNIST/mnist.npz' with np. ...

  7. vue.js中英文api

    全局配置 Vue.config is an object containing Vue's global configurations. You can modify its properties l ...

  8. 聊聊Adapter模式

    今天我们聊一个最简单的设计模式,适配器Adapter.跟以往一样,我们还是从一个例子出发. 一个例子 最开始的结构 假设我们有个数据分析软件,其中包含了数据收集器和数据分析器,数据收集器基于XML格式 ...

  9. MySql查看索引以及各字段含义

    查看表的索引: show index from userInfo(表名) show index from 数据库名.表名 查看某表某一列上的索引使用下面的SQL语句: show index from ...

  10. Codeforces Round #801 (Div. 2)

    题集链接 A Subrectangle Guess 代码 #include <bits/stdc++.h> #define endl "\n" using namesp ...