数据库的定义

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

分类

非结构化数据:

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

半结构化数据:

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

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

结构化数据:

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

数据。

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

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

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

  • 创建一个表

  1. create table tb1(
  2. id int,
  3. name varchar(16) not null, --
  4. age int default 3
  5. )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 列名 类型;
  1. alter table tb3 drop sex;
  2. alter table tb3 drop column age;
  1. 修改列类型

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

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

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

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

    alter table 表名 add primary key(列名);
  1. 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

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

longtext

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

datetime

  1. YYYY-MM-DD HH:MM:SS1000-01-01 00:00:00/9999-12-31 23:59:59

timestamp

  1. YYYY-MM-DD HH:MM:SS1970-01-01 00:00:00/2037年)
  1. 对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储,查询时,将其又转化为客户端当前时区进行返回。
  2. 对于DATETIME,不做任何改变,原样输入和输出。

date

  1. YYYY-MM-DD1000-01-01/9999-12-31

time

  1. HH:MM:SS'-838:59:59'/'838:59:59'

DQL数据库查询语言

概念

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

DQL查询语句

格式:

  1. 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查询

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

select结果分页

  1. --每次查询前N
  2. select * from student limit 4;
  3. --查询第N页,每页显示M
  4. 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. Linux 中递归删除文件

    递归删除当前目录下以 .json 结尾的文件 find . -name "*.json" | xargs rm -f find . -name "*.json" ...

  2. (干货)基于 veImageX 搭建海报生成平台 -- 附源码

    前言 618 年中促销即将来临,很多公司都会通过海报来宣传自己的促销方案,通常情况下海报由设计团队基于 PS.Sketch 等工具创作,后期若想替换海报文案.商品列表等内容则需打开原工程进行二次创作, ...

  3. 6月6日,HTTP/3 正式发布了!

    经过了多年的努力,在 6 月 6 号,IETF (互联网工程任务小组) 正式发布了 HTTP/3 的 RFC, 这是超文本传输协议(HTTP)的第三个主要版本,完整的 RFC 超过了 20000 字, ...

  4. c++ 快速乘

    First 在一些数学题中,两个数相乘运算很多,同时又很容易溢出,如两个 long long 相乘 今天本蒟蒻来总结一下快速乘的两种方法 1:二进制 和快速幂的原理一样,优化一个一个加的算法,复杂度\ ...

  5. Acwing 428

    可以找到规律,将第 N 项的 N 对应的二进制表示,转换为以 k 为基底的数即可. N=1=1 ----> 1 ----> \(a^b\) N=2=2 ----> 10 ----&g ...

  6. C语言:如何给全局变量起一个别名?

    作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...

  7. vue根据后端菜单自动生成路由(动态路由)

    vue根据后端菜单自动生成路由(动态路由) router.js import Vue from 'vue' import Router from 'vue-router' import store f ...

  8. 关于vue项目中搜索节流的实现

    我们经常会遇到这种需求,现在我们在使用百度搜索的时候他们的思想也是根据防抖节流而实现的,至于用防抖还是节流根据自己需求. <template> <input type="t ...

  9. ABAP CDS - DEFINE VIEW, name_list

    Syntax ... ( name1, name2, ... ) ... Effect Defines the element names of a CDS view in ABAP CDS in a ...

  10. RPA工单查询和下载流程机器人

    1.登录业务系统,输入用户名和密码 2.进入下载模块 3.输入下载查询条件 4.进入文件明细单 5.下载文件 视频地址:https://www.bilibili.com/video/BV1964y1D ...