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. ArcGIS超级工具SPTOOLS1.7升级说明

    ArcGIS超级工具1.7升级说明:多了:5个工具,总87工具. 5.11   数据打包 44 5.11.1.  mxd批量打包MPK:对一个文件夹所有MXD打包MPK 5.11.2.  mxd文档发 ...

  2. OpenJudge计算概论-整数的个数

    /*========================================================== 整数的个数 总时间限制: 1000ms 内存限制: 65536kB 描述 给定 ...

  3. Tosca 注意事项(持续更新)

    #浏览器不能同时打开两个,不然不知道选哪个 #浏览器必须是100% 不能zoom in zoom out #浏览器 internet options 必须要配置,不然跑的很慢 照着这个配  https ...

  4. Win10系统安装VMware-viclient-6.0无响应问题解决方法

    背景:笔记本重做系统升级至Win10系统后,由于工作需要,得安装VMware-viclient-6.0软件进行远程连接. 问题:没有出现网上那种各种报错情况,只是在点击“安装”按钮的时候没弹出任何等待 ...

  5. ISO/IEC 9899:2011 条款6.3.2——其它操作数

    6.3.2 其它操作数 6.3.2.1 左值,数组,与函数指派符 1.一个左值是潜在地指派一个对象的一个表达式(具有一个对象类型,而不是void):[注:名字“左值”源自于赋值表达式E1 = E2,在 ...

  6. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_14-认证接口开发-需求分析

    4 认证接口开发 4.1 需求分析 用户登录的流程图如下: 执行流程: 1.用户登录,请求认证服务 2.认证服务认证通过,生成jwt令牌,将jwt令牌及相关信息写入Redis,并且将身份令牌写入coo ...

  7. PAT 甲级 1039 Course List for Student (25 分)(字符串哈希,优先队列,没想到是哈希)*

    1039 Course List for Student (25 分)   Zhejiang University has 40000 students and provides 2500 cours ...

  8. python 运算符和小数据池

    计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算.比较运算.逻辑运算.赋值运算.成员运算.身份运算.位运算,今天我们暂只学习算数运算.比较运算.逻辑运算.赋值运算 算数运 ...

  9. (十二)class文件结构:魔数和版本

    一.java体系结构 二.class格式文件概述 class文件是一种8位字节的二进制流文件, 各个数据项按顺序紧密的从前向后排列, 相邻的项之间没有间隙, 这样可以使得class文件非常紧凑, 体积 ...

  10. Jenkins占用内存较大解决办法

    主机启动jenkins后导致内存占用较大 登录主机top按键M按消耗内存排序 未调优前查看进程 修改配置文件 /usr/local/jenkins-tomcat/bin/catalina.sh 增加一 ...