1、数据库概述

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

·常见数据库

Oracle(神喻):甲骨文
DB2:IBM
SQL Server:微软
Sybase:赛尔斯
MySQL:甲骨文,最早是开源的SUN;

1.1理解数据库

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

RDBMS-database-table-表结构&表记录

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

database=N个table

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

表结构

表记录

1.2 应用程序与数据库

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

备注:数据库的端口为3306

2、数据库基本操作

/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;

修改数据库编码

3、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):数据查询语言,用来查询记录(数据)。

4、DDL

SHOW DATABASES;

USE 数据库名称;

CREATE DATABASE mufasa;//创建数据库

1064错误语法错误

4.1、数据类型

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.2、表操作

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

SHOW TABLES; 显示表

DESC 表名称; 显示表结构

DROP TABLE 表名称; 删除表

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

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

ALTER TABLE 表名 DROP 列名;

ALTER TABLE 原表名 RENAME TO 新表名;

5、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;//全部删除

6、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地址;

7、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;

数据库及MySQL基础(1)的更多相关文章

  1. 数据库及MYSQL基础(2)

    数据库及MySQL基础(1) SQL进阶及查询练习 1,单表的查询练习 SELECT * FROM emp WHERE deptno=30; SELECT ename,empno,deptno FRO ...

  2. 数据库02 /MySQL基础数据类型、完整性约束、sql_mode模式

    2.MySQL基础数据类型.完整性约束.sql_mode模式 目录 2.MySQL基础数据类型.完整性约束.sql_mode模式 1. MySQL常用数据类型 MySQL常用数据类型预览 1. 1 数 ...

  3. python day10 数据库(mysql基础)

    一.数据库的概念 数据:事物的特征 数据库的本质是:通过套接字进行通信,来读存数据的一种软件,由于每次开发人员写程序都得写数据的套接字,所以诞生了数据库这个软件,减少重复劳动.(sql语句通用) 数据 ...

  4. 关系型数据库之MySQL基础总结_part1

    一:数据库的操作语言的种类 MySQL 是我们最常使用的关系型数据库,对于MySQL的操作的语言种类又可以分为:DDL,DML,DCL,DQL DDL:是数据库的定义语言:主要对于数据库信息的一些定义 ...

  5. 数据库及MYSQL基础(3)-JDBC

    教学视频链接:https://edu.aliyun.com/course/1694?spm=5176.11400004.0.0.29254768sg2H5P 程序文件链接:https://pan.ba ...

  6. 前端笔记之服务器&Ajax(中)MySQL基础操作&PHP操作数据库&Ajax

    一.数据库基础 1.1什么是数据库? 什么是数据库? 答:就是一个很大的一个文件,只不过这个文件可以通过一些‘命令’操作数据: 增.删.改.查数据: 数据库等于持久数据和数据操作的一个统称. 数据库是 ...

  7. 数据库学习之MySQL基础

    数据库基础 一.数据库简介 数据库:存放数据的仓库 sql及其规范 sql是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能 ...

  8. (3.15)mysql基础深入——mysql默认数据库/系统数据库

    (3.15)mysql基础深入——mysql默认数据库 关键词:Mysql默认数据库,mysql系统数据库 系统数据库的组成 一共4个 [1]information_schema(可以理解成字典表) ...

  9. mysql数据库优化课程---13、mysql基础操作

    mysql数据库优化课程---13.mysql基础操作 一.总结 一句话总结:mysql复制表,索引,视图 1.mysql如何复制表? like select * 1.复制表结构 create tab ...

随机推荐

  1. jQuery Ajax calls and the Html.AntiForgeryToken()

    jQuery Ajax calls and the Html.AntiForgeryToken() https://stackoverflow.com/a/4074289/3782855 I use ...

  2. IIS URL Rewriting and ASP.NET Routing

    IIS URL Rewriting and ASP.NET Routing With the release of the URL Rewrite Module for IIS and the inc ...

  3. Bitmap之getDensity和setDensity函数

    package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...

  4. sed替换 - 含反斜杠(/)和Shell变量

    sed替换 - 含反斜杠(/)和Shell变量 摘自: https://blog.csdn.net/zhenyongyuan123/article/details/6616263 2011年07月19 ...

  5. PAT 甲级 1032 Sharing (25 分)(结构体模拟链表,结构体的赋值是深拷贝)

    1032 Sharing (25 分)   To store English words, one method is to use linked lists and store a word let ...

  6. 【pep8规范】arc diff 不符合 pep 8 规范

    arc land 的时候,arc报错提示代码不符合pep8规范: 1.单行代码过长(括号中的换行不需要加 /) python代码换行加 / https://blog.csdn.net/codechel ...

  7. Python之汉诺塔递归运算

    汉诺塔问题是一个经典的问题.汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆 ...

  8. Docker 镜像的推送(六)

    目录 一.为镜像命名 二.推送到官方 Docker Hub 1.首先得在 Docker Hub 上注册一个账号. 2.在 Docker Host 上登录 3.修改镜像命名 4.镜像上传 5.登录查看上 ...

  9. 【计算机视觉】Selective Search for Object Recognition论文阅读1

    Selective Search for Object Recognition 作者: J. R. R. Uijlings, K. E. A. van de Sande, T. Gevers, A. ...

  10. 最新 创蓝253java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.创蓝253等10家互联网公司的校招Offer,因为某些自身原因最终选择了创蓝253.6.7月主要是做系统复习.项目复盘.Le ...