Mysql基础知识



CH1 RDBMS简介

RDBMS 即关系型数据库管理系统。

数据库的优点:冗余度、一致性、共享、标准化、完整性、安全性。

数据库存储形式:层次结构、网状模型、关系模型(表的形式,一对一,一对多,多对多),对象模型。

面向对象:即把一切事物看做对象。

实体:客观存在的相互区别的事物。

关系模型:实体和联系构成。

关系模型数据库有:

一、DB2:IBM提供的付费数据库,企业级用。具有速度快、可靠性好的优点。但是,只有硬件平台选择 了IBM的AS/400,才能选择使用

DB2数据库管理系统。

   DB2能在所有主流平台上运行(包括Windows),最适于海量数据。

   DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上都用DB2数据库服务器,而国内到1997年约占5%。

二、orcale:收购java,后收购sql,主要大型游戏。

(1)兼容性Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与IBM SQL/DS、DB2、INGRES、 IDMS/R等兼容。

   (2)可移植性Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上不同的大、 中、小型机上;

可VMS、DOS、UNIX、Windows等多种操作系统下工作。

   (3)可联结性Oracle能与多种通讯网络相连,支持各种协议(TCP/IP、DECnet、LU6.2等)。

   (4)高生产率 Oracle产品提供了多种开发工具,能极大地方便用户进行进一步的开发。

   (5)开放性Oracle良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。

三、mysql,免费,小型。

(1)MySQL是一个关系数据库管理系统。

   (2)MySQL是开源的。

   (3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。

    (4)MySQL服务器工作在客户/服务器或嵌入系统中。

    (5)有大量的MySQL软件可以使用。

四、sql server 微软,性能较mysql好,免费。广泛用于电子商务、银行、保险、电力等与数据库有关的行 业,只能在Windows上运行,

操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很 难处理日益增多的用户数和数据卷,伸缩性有限。

五、acess:本地数据库。

六、sql3:安卓系统用。

SQL即结构化查询语句。分:

DDL:data define language 数据定义语言,库与表的管理。

DQL:data qurey language 数据查询语言,表中数据查询。

DML:data manager language 数据管理语言,表中数据添、删、改。

DCL:data control language 数据控制语言,登录、权限控制。

CH2 管理数据库和表

--  单行注释
-- 创建一个数据库
CREATE DATABASE data_name;
-- 删除数据库
DROP DATABASE data_name;
-- 连接数据库
USE data_name;

数据类型

整  型 smallint int bigint

字符型 char varchar text

浮  点 float double decimal

日  期 year date datetime

逻  辑 true false

-- 创建表
CREATE TABLE t_name(
   id INT,
   NAME CHAR,
   address VARCHAR(50),
   price FLOAT
);
CREATE DATABASE lovo;
USE lovo;
CREATE TABLE t_class(
  c_id INT,
  c_classname  VARCHAR(50),
  c_sco VARCHAR(20)
)CHARSET='utf8';
CREATE TABLE t_student(
  s_id INT,
  s_name VARCHAR(50),
  s_age INT,
  s_address VARCHAR(50),
  s_phone VARCHAR(50),
  s_sex VARCHAR(2) 
)CHARSET='utf8';
--  删除列
ALTER TABLE t_student DROP s_phone;
--  添加列
ALTER TABLE t_student ADD s_phone5 VARCHAR(50);
-- 修改列名称
ALTER TABLE t_student CHANGE s_phone5 s_phone6 VARCHAR(100);
-- 删除表

DROP TABLE t_student;

Archive,Innodb,Myisam myisam引擎不支持外键,innodb引擎支持外键myisam引擎执行速度比innodb引擎快

CH3 DML数据操控语句

INSERT INTO s_student(s_id,s_name,s_address) VALUES(NULL,'王浩','成都市金牛区');

DELETE FROM s_student WHERE s_name LIKE'%h_';

DELETE FROM s_student WHERE s_id>=3;

DELETE FROM s_student WHERE s_id BETWEEN 3 AND 5;

DELETE FROM s_student WHERE s_id IN(3,7);

TRUNCATE TABLE s_student;直接删除整个表中所有数据,后边不能加条件,删除日志,不可恢复,不能删除带有外键的表,效率高。

UPDATE t_student SET s_name='华为' WHERE s_id>=3;

CH4 DQL数据查询语句

SELECT s_name AS 名字 FROM t_student -- 别名

SELECT DISTINCT s_name FROM t_student;

SELECT YEAR(NOW())-1;-- 年份格式化当前系统时间,或者datedatetime,可加减

 SELECT MAX(c_professorid) FROM class;
SELECT AVG(c_professorid) FROM class;

select group_concat (name) from yza group by name; -- 若全为int 要注意转char cast(a as char)

SELECT s_class,COUNT(*)AS xx FROM t_student GROUP BY s_class HAVING xx>3;

顺序 :select from->where->group by->having->order by

-- any 满足其中一个数据就可以 
-- all 满足所有的数据才行
-- exists 判断其后面子查询的结果值,若为真,则执行前面的查询,为假则不作任何操作。

--union 连接2个表,列数必须相等,类型可以不一样。

联接 (两个表进行笛卡尔积,表1的每行与表2的每行进行交叉)可以分为内联接和外联接。

SELECT * FROM student,class; 运行图1

内联接

SELECT * FROM student,class WHERE student.fk=class.info; -- student.fkclass.info进行匹配。运行图2。或如下:
SELECT * FROM student INNER JOIN class ON  student.fk=class.info; -- INNER可以省略,运行图2,可继续join on
外联接
 A 左外联接 

SELECT * FROM student LEFT OUTER JOIN class ON  student.fk=class.info;-- outer可以省略,运行图3
B 右外联接

SELECT * FROM student RIGHT OUTER JOIN class ON  student.fk=class.info;-- outer可以省略,运行图4
C 全联接

SELECT * FROM student FULL OUTER JOIN class ON  student.fk=class.info;-- outer可以省略(不支持mysql


id  name       
------  ------------
     2  zhang san3 
     3  345        
     5  zhang san       表单旋转
     6  zhang san  

SELECT
MAX(CASE id WHEN 2 THEN NAME ELSE NULL  END) AS a1,
MAX(CASE id WHEN 3 THEN NAME ELSE NULL  END) AS a2,
MAX(CASE id WHEN 4 THEN NAME ELSE NULL  END )AS a3,
MAX(CASE id WHEN 5 THEN NAME ELSE NULL  END) AS a4,
MAX(CASE id WHEN 6 THEN NAME ELSE NULL  END) AS a5
FROM
  person a

a1          a2      a3      a4         a5        
----------  ------  ------  ---------  -----------
zhang san3  345     (NULL)  zhang san  zhang san 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值