一、数据库概述

关系型数据库:面对关系,Java面向对象。html

·常见数据库mysql

Oracle(神喻):甲骨文

DB2:IBM

SQL Server:微软

Sybase:赛尔斯

MySQL:甲骨文,最先是开源的SUN;

1.1理解数据库linux

·RDBMS-Relational database management system关系型数据库管理系统sql

RDBMS-database-table-表结构&表记录数据库

RDBMS=管理员(Manager)+仓库(database)安全

database=N个table服务器

table=表结构(定义列名称和类型)和表记录(真实数据)函数

表结构ui

表记录编码

1.2 应用程序与数据库

应用程序使用数据库完成对数据的存储!

备注:数据库的端口为3306

二、数据库基本操做

/usr/bin/mysqladmin -u root -p shutdown

数据库中止

/etc/init.d/mysql start

数据库启动

ps -ef|grep mysql

linux下MySQL数据库状态查看

mysql -uroot -p密码-h地址

mysql -uroot -p密码-h27.0.0.1

根权限进入数据库,能够开启多个客户端

quit、exit

退出数据库

mysqld.exe

是服务的启动标准(服务器端)

mysql.exe

是客户端程序

my.ini

配置文件

USE bookstore;

进入数据库,大小写均可以可是通常要求标准是大写

SHOW TABLES;

显示数据表,注意必定要以【;】结尾

SHOW DATABASES;

显示全部数据库名称

CREATE [IF NOT EXUSTS] 数据库名称

[CHARSET=utf8]

若是不存在时建立数据库

DROP DATABASE 数据库名称;

删除数据库

ALTER DATABASE 数据库名

CHARACTER SET uft8;

修改数据库编码

三、SQL语言概述

3.1,什么是SQL:结构化查询语言(Structured Query Language);

3.2,SQL的做用:客户端使用SQL语句来操做服务器;

3.3,SQL标准由国际化标准组织(ISO)制定,对DBMS的统一操做方式;

3.4,SQL方言,某种数据库有本身特有的控制语句;

3.5,SQL语法:

①SQL语句能够单行或多行,以分号结尾;

②可以使用空格和缩进来加强语句的可读性;

③MySQL不区分大小写,建议关键字都写大写;

3.6,SQL语句分类:

①DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

》建立、删除、修改:库、表结构;

②DML(Data Manipulation Language):数据操做语言,用来定义数据库记录(数据);

》增、删、改:表记录(内容)

③DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

④DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

四、DDL

SHOW DATABASES;

USE 数据库名称;

CREATE DATABASE mufasa;//建立数据库

1064错误语法错误

4.一、数据类型

int整型;

double浮点型,例如double(5,2)表示最多五位,其中必须有2位小数,即最大999.99;

decimal浮点型,在表单钱方面使用该类型,由于不会出现精度缺乏问题;

char固定长度字符串,char(255)长度不够的自动加空格补足!

varchar可变长度字符串类型,varchar(65535),utf8汉字一个3个字节byte

text(clob):字符串类型

——tinytext 2^8-1B

——text 2^16

——mediumtext 2^24

——longtext 2^32-1B~4GB-1B内存大小

varbinary

tinyblog

blog 2^16-1B

mediublog 2^24

longblog 2^32

date日期类型,yyyy-mm-dd;

time时间类型,hh:mm:ss;

timestamp时间戳;

4.二、表操做

CREATE TABLE [IF NOT EXISTS] 表名(列名 列类型,列名 列类型,....);

SHOW TABLES; 显示表

DESC 表名称; 显示表结构

DROP TABLE 表名称; 删除表

ALTER TABLE 表名ADD(列名 列类型,列名 列类型,列名 列类型);增长列

ALTER TABLE 表名 MODIFY 列名 列类型; 修改列类型

ALTER TABLE 表名DROP列名;

ALTER TABLE 原表名RENAME TO新表名;

五、DML

DQL:SELECT * FROM 表名;查询表中的数据

DML(数据操做语言,它是对表记录的操做:增、删、改!)

5.1,插入数据

INSERT INTO 表名(列名1,列名2,...) VALUES (列值1,列值2,...);//对应列名称插入

INSERT INTO 表名VALUES(列值1,列值2);//值的顺序,必须与给出的列的顺序相同

INSERT INTO tb_stu (number,name,age,gender,SCORE) VALUES ('mufasa_0007','ZSS',20,'female',75);

INSERT INTO tb_stu (number,name) VALUES ('mufasa_0002','zhangsan');

INSERT INTO tb_stu (number,name,age,gender) VALUES ('mufasa_0001','万雨',25,'男');//中文易出错

INSERT INTO tb_stu VALUES('mufasa_0003','wanyu',30,'man');//与原始列相同,不建议使用可读性差

5.2,修改数据

UPDATE 表名SET列名=列值,列名=列值;//所有数据都修改

UPDATE 表名SET列名=列值WHERE列名=列值;

范例:UPDATE tb_stu SET name='mufasa' WHERE number='mufasa_0001';

条件(条件可选的):

>条件必须是一个boolean类型的值或表达式;

>运算符=、!=、<>、>、=、<=、BETWEEN...AND、IN(...)、IS NULL、NOT、OR、AND

注意:列名=NULL;永远是false,可使用IS NULL替换

5.3,删除数据

DELETE FROM 表名WHRER表中的条件数据;

DELETE FROM tb_stu WHERE number='mufasa_0001';//删除特定一项

DELETE FROM tb_stu;//所有删除

六、DCL

一个项目建立一个用户!一个项目对应的数据库只有一个!

6.1,建立用户

CREATE USER 用户名@IP地址IDENTIFIED BY 'cipher';

CREATE USER 用户名@'%' IDENTIFIED BY 'cipher';//全部IP地址均可使用

范例:CREATE USER user@'%' IDENTIFIED BY 'cipher';

6.2,给用户权限

GRANT 权限1,...权限n ON数据库.* TO用户名@IP地址;

范例:GRANT SELECT,CREATE,ALTER,DELETE,UPDATE ON mufasa.* TO user@'%';

范例:GRANT ALL ON mufasa.* TO user@'%';

6.3,撤销受权

REVOKE 权限1,...权限n ON数据库.* FROM用户名@IP地址;

>撤销指定用户在指定数据库上的制定权限

>例如:REVOKE CREATE,ALTER,DROP, ON mufasa.* FROM user@'%';

范例:REVOKE SELECT ON mufasa.* FROM user@'%';

6.4,查看权限

SHOW GRENTS FOR 用户名@IP地址;

范例:SHOW GRANTS FOR user@'%';

6.5,删除用户

DROP USER 用户名@IP地址;

七、DQL

DQL-数据库查询语言

查询不会修改数据库表记录

7.1,基本查询

1)查询全部列

SELECT * FROM 表名;

范例:SELECT  * FROM tb_stu;

2)查询指定列

SELECT 列名称1,列名称2 FROM表名;

范例:SELECT name FROM tb_stu;//查看name这一列的数据值

3)彻底重复的记录只一次

SELECT DISTINCT 列名1,列名2 FROM表名;

范例:SELECT DISTINCT name FROM tb_stu;

查询结果去重,显示;

4)列运算

①数据类型的能够进行加【+】、减【-】、乘【*】、除【/】;

SELECT *,age*2 FROM tb_stu;

SELECT *,IFNULL(age,0)*2 FROM tb_stu;

②字符串能够进行连续运算

SELECT CONCAT(列名1,列名2) FROM表名;

范例:SELECT CONCAT(name,gender) FROM tb_stu;

③转换NULL值

IFNULL(列名,想要的显示)

④给列起别名

SELECT 列名[AS]别名FROM表名;//其中AS能够选,标准是加上

范例:SELECT name AS NAME FROM tb_stu;

7.2,条件控制

1)条件查询

SELECT * FROM tb_stu WHERE name in ('wanyu','mufasa');//定向选择

SELECT * FROM tb_stu WHERE age BETWEEN 20 AND 30;//数值范围查询,包含!!

SELECT * FROM tb_stu WHERE age IS NOT NULL;//非空查询

SELECT * FROM tb_stu WHERE age=30;//非空查询

2)模糊查询

SELECT * FROM tb_stu WHERE name LIKE 'w____';//查询w开头,定长度模糊查询

SELECT * FROM tb_stu WHERE name LIKE '___';//查询三个长度的数值

SELECT * FROM tb_stu WHERE name LIKE '%u';//查询u结尾数值,全部长度均可以查出

SELECT * FROM tb_stu WHERE name LIKE '%u%';//查询有u字符的数值,开头结尾中间都行

7.3,排序

SELECT * FROM tb_stu ORDER BY age;//经过age(默认升序)排序显示

SELECT * FROM tb_stu ORDER BY age ASC;//升序排列

SELECT * FROM tb_stu ORDER BY age DESC;//降序排列

SELECT * FROM tb_stu ORDER BY IFNULL(age,25) ASC, score DESC;//多列联合排序

7.4,聚合函数

SELECT COUNT(*) FROM tb_stu;//查询数据行非NULL的总数

SELECT COUNT(age) FROM tb_stu;//查询某列中非NULL个数

SELECT COUNT(DISTINCT age) FROM tb_stu;//查询某列非NULL、非重复个数

SELECT COUNT(4) FROM tb_stu;//查询第1列的个数与【*】效果相同

SELECT SUM(score) FROM tb_stu;//求和查询

SELECT MAX(score) FROM tb_stu;//求最大

SELECT MIN(score) FROM tb_stu;//求最小

SELECT AVG(score) FROM tb_stu;//求均值

SELECT count(*) AS 人数,SUM(score) AS汇总分数,MAX(score) AS最高分数,MIN(score) AS最低分数,AVG(score) AS平均分数FROM tb_stu;

7.5,分组查询

SELECT gender,count(*) FROM tb_stu GROUP BY gender;

//主信息只有两列,1分组列,2集合函数

SELECT gender,count(*),MAX(score) FROM tb_stu GROUP BY gender;//显示最大值

SELECT gender,count(*),MIN(score) FROM tb_stu WHERE score>80 GROUP BY gender;//先验条件

SELECT gender,count(*),MIN(score) FROM tb_stu WHERE score>80 GROUP BY gender having count(*)>=2;

执行顺序:SELECT,FROM,WHERE,GROUP BY,HAVING,ORDER BY,

7.6,limit子句(方言)

LIMIT用来限定查询结果的起始行,以及总数行。

例如:查询起始行为第2行,一共查询3行记录

SELECT * FROM tb_stu LIMIT 2,3;

①一页的记录数为10行;②查询第3页;

SELECT * FROM tb_stu LIMIT (3-1)*10,10;

1MySQL是面向对象型数据库_数据库及MySQL基础(1)相关推荐

  1. mysql 新增从数据库_从零开始学 MySQL - 创建数据库并插入数据

    目录 1.实验内容 2.实验知识点 3.开发准备 4.实验总结 1.实验内容 本次课程将介绍 MySQL 新建数据库,新建表,插入数据以及基本数据类型的相关知识.本节实验将创建一个名为 mysql_s ...

  2. 数据库_数据库篇-第一章:数据库基本概念

    基础知识学习,面试必备,关注吧 骚年 01 第一,什么是数据库? 维基百科上是这样定义的: 所谓"数据库"是以一定方式储存在一起.能予多个用户共享.具有尽可能小的冗余度.与应用程序 ...

  3. mysql 备份压缩数据库_备份压缩mysql 数据库

    适用于Linux平台下的一个定时备份压缩数据库代码 压缩备份Mysql数据库 #!/bin/bash shijie=`date +%Y%m%d` backRenRenDb=renren_minishi ...

  4. 打开数据库_数据库客户端navicat遇到问题怎么办?

    前面的文章介绍了:mysql数据库如何安装,客户端navicat如何安装. 下面是客户端navicat使用过程中常见问题的解决办法. [问]使用navicat连接数据库报错信息:1251 1251Cl ...

  5. mysql语句数据库_数据库的Mysql语句

    数据库的mysql语句: 1.连接数据库 mysql -u root -p 2.显示数据库 show databases(db); 3.选择数据库 use 数据库名; 4.显示数据库中的表 show ...

  6. mysql拆分盘数据库_数据库拆分

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. 如何在mysql中录入数据库_如何向MySQL数据库的表中录入数据

    当你建好了数据库及表时,你首先想到的就是向数据库的表中输入数据.这就牵涉到如何向数据库增加数据.下面我们就来探讨一下这个问题: 1.一般我们常用的方法是insert语句(这里假定各位的版本都不是很低) ...

  8. 电脑如何共享mysql数据库_如何共享mysql数据库?

    网友解答: 共享数据库,你说的是多个人同时使用一个数据库吧,说的清楚一点就是,在一个数据库上,给不同的人授予不同的权限,大家共同来使用这个数据库.这个实现起来挺简单的,下面以我本地的mysql数据库为 ...

  9. 数据库整理一:Mysql基础知识

    文章目录 1.MySQL的架构: 1.Server 层 2.存储引擎层 InnoDB和MyISAM比较 3.锁及粒度 4.InnoDB MVCC 5.关系型数据库和非关系型数据库 2.基础语句 1.创 ...

最新文章

  1. Python过滤掉numpy.array中非nan数据
  2. 借助Docker单机秒开数十万TCP连接
  3. 4、MySQL修改存储过程(ALTER PROCEDURE)
  4. 深度学习模型保存_Web服务部署深度学习模型
  5. Java读写二进制文件
  6. 等差数列划分Python解法
  7. 2019年技术盘点云数据库篇(二):阿里云携手MongoDB率先上线4.2数据库 云上数据库已是大势所趋...
  8. AD维护管理工具详解(一)dcdiag
  9. VOC标签转化为YOLO标签
  10. linux有名管道大小,Linux中的pipe与named pipe(FIFO),即管道和命名管道
  11. pandas 提取某几列_用Pandas做数据清洗,我一般都这么干……
  12. Extjs的数据读取器store和后台返回类型简单解析
  13. Matlab 2016a 安装及破解教程
  14. 关于foobar2000中Convolver,大家觉得哪个Impulse效果最好?
  15. PHP获取身份证年龄和性别
  16. 三菱FX5U多冲一切追剪程序。 无需40SSC运动模块,通过软件电子凸轮算法实现追剪功能
  17. Vue常用的组件库大全【前端工程师必备】【实时更新】【移动端、PC端(web端)、数据可视化组件库(数据大屏) 、动画组件库、3D组件库】
  18. ffmpeg中vf与filter_complex的区别
  19. 【Hack The Box】linux练习-- Doctor
  20. Java代码实现非对称加密RSA算法示例

热门文章

  1. 编程中函数的返回值的定义问题的解决
  2. delphi编码规范文档
  3. 汇编中数据处理的基本问题
  4. docker容器指定ip
  5. Android 在 NDK 层使用 OpenSSL 进行 RSA 加密
  6. Android6.0 Log的工作机制
  7. bat删除计算机用户,自动清除电脑垃圾及删除windows默认共享盘符的批处理bat
  8. JZOJ 5933. 【NOIP2018模拟10.27】百鸽笼
  9. linux nfs时间不对,NFS挂载主机或不稳定的原因与解决方法
  10. php接收rs485的数据如何处理,为什么485不能连续接收?