MYSQL数据库(一)

一、 数据库

概念: 数据存储的仓库,用于存储和管理数据。

数据库产品

Oracle:oracle公司             大型的关系型数据库 收费的
DB2:IBM公司                     大型的关系型数据库 收费的
Mysql:mysql公司             中小型关系型数据库 免费的
Sql Server:微软公司     中小型关系型数据库 收费的
Sqllite:安卓系统内置数据库 微型关系型数据库 免费的

NoSql系列数据库:not only sql    非关系型数据库   了解

关系型数据库:字段和值构成的二维列表

         数据库服务器:安装了数据库软件的计算机,类似于web服务器(安装了web服务软件的高性能计算机)

二、Mysql(数据库软件)

(1)安装:附图(引入其他链接)

(2)卸载:(计算机中未清理完毕,影响MYSQL的安装或更新)

    1.关闭mysql服务

1.手动关闭:我的电脑-->右键-->管理-->服务-->找对应的mysql的名称
2.cmd-->services.msc,打开服务面板
3.cmd-->net stop mysql(注意获取cmd管理员权限)

    2.控制面板--卸载(软件)

    3.卸载残留(临时存储文件)

    说明: 5.5版本--找到mysql的安装目录中my.ini文件,datadir目录(查询此关键字),删找到此路径的Mysql文件,然后删除。

(3)登陆数据库

            (1)启动MYSQL的后台服务(默认是启动的)

启动服务: net start mysql(根据你起的名称)

停止服务: net stop mysql(了解一下)

    (2)登陆数据库(黑窗口)

cmd-->mysql -uroot -p你自己的密码(5.6和5.7版本如果以明文的形式显示密码会给予警告)

        (4)配置密码

                问题:如果忘记密码怎么登陆呢?修改mysql的密码

1) 停止mysql服务----->运行输入services.msc,停止mysql服务或者 cmd --  net stop mysql
2) 在cmd下输入 mysqld --skip-grant-tables 启动服务器 光标不动(不要关闭该窗口)
3) 新打开cmd 输入mysql -u root -p 不需要密码---如果弹出需要密码,直接Enter即可 
use mysql;
update user set password=password('abc') WHERE User='root';
4) 关闭两个cmd窗口 在任务管理器结束mysqld 进程 

5) 在服务管理页面 重启mysql 服务

原理:MYSQL数据库已经内置了mysql的数据库,通过修改了此数据库终态的user表中的password字段,来达到修改密码目的

三、进入正题

     3.1  SQL概念

        概念:数据库操作语句,是用来操作所有的关系型数据库,理解为规范的语法(所有数据库厂商都要遵循),但是允许每种数

据库之间会存在差异,称为 "方言"

     3.2  SQL分类

 

DDL(Data Definition Language)      :数据定义语言,用来定义数据库对象(库、表、字段(列)等)(理解概念);
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(增、删、改);
DCL(Data Control Language)           :数据控制语言,用来定义访问权限和安全级别(了解);

 

DQL(Data Query Language)             :数据查询语言,用来查询记录(数据)(重点掌握);

    3.3  DDL的操作语句(没有触及数据---数据是灵魂)

        (1)关于数据库(database)的DDL语句(查询和修改以及删除)

                        * 查看(show)所有(s)库: show databases;
* 使用(use)库: use 库名  
* 创建数据库(总得起名吧):create database 数据库名称;
* 删除数据库(删除哪一个):drop database 数据库名称;
* 设置(set)数据库(必须指定)的字符集:alter database mydb1 character set 要修改的字符集名称;(gbk,utf8)

* 查询创建的数据库(前提是必须有该数据库):show create database 数据库名称;显示的是名字和编码信息等  

        注意:好好体会drop和alter的含义(应用场景)

        (2)关于查询表(table)的DDL语句(必须先进入某个数据库中,表是依赖于数据库存在的)

                        *显示某个库下(先进入--use)的所有表(s)     :show tables;

*显示某个的详细字段信息(表结构)           :desc 表名;(无show table的详情)

             表结构:Field | Type | Null | Key | Default | Extra等构成

     字段(列)的数据类型(常见的)

* int:整型(11位);id编号--注意:Oracle没有int是Number

* double:浮点型,例如double(5,2)表示最多5位数,其中必须有2位小数,最大值为999.99(占位符)工资

* char:固定长度字符串类型;例如:name char(10);性别

        * varchar:可变长度字符串类型(会扩容不会);例如:name varchar(10);

        注意1:char和varchar的区别?(前者字段的长度是固定,后者根据实际长度存储的)

* text:字符串类型;存大格式的文本,如存个小说一般不用(存的是链接)
* blob:字节类型;存字节类型的数据,如电影图片的字节但是一般不会把字节数据存到数据库当中(链接)
* date:日期类型,格式为:yyyy-MM-dd;
* time:时间类型,格式为:hh:mm:ss
* datetime:日期时间类型   yyyy-MM-dd hh:mm:ss  注意:MM是大写

* datestamp:时间戳类型    yyyy-MM-dd hh:mm:ss

        注意2:datetime和datestamp的区别?后者如果该类型的字段没有赋值,则默认当前系统时间

                注意3:二者的格式必须是 yyyy-MM-dd hh:mm:ss的形式

                        * 创建一个表(至少要定义一个字段(包括类型))

create table 表名(
		列名1 类型1,
		列名2 类型2,
		...
		列名n 类型n	
		);

                说明:字段名必须在字段类型之(SQL的语法规定),表创建完了,总得看看创建的表结构吧(desc)

 (3)修改表的DDL语句(范围--从大大小)

                                1.     重命名表名称:修改stu表名称为student:

ALTER TABLE stu RENAME TO student;

                                2. 修改字段类型:修改stu表的gender字段(列)类型为CHAR(2):

ALTER TABLE stu MODIFY gender CHAR(2);

3. 修改字段名(包含类型):修改stu表的gender列名为sex:

ALTER TABLE stu change gender sex CHAR(2);

                                        注意:修改一个字段的名称,此时一定要重新指定该字段的类型

4      添加字段:给stu表添加classname列(包含字段类型和字段名)

ALTER TABLE stu ADD (classname varchar(100));

                                        思考:批量为表添加多个字段?

5. 删除字段:删除stu表的classname列(无需再追加字段类型了)

ALTER TABLE stu DROP classname;

                                6.     删除表:drop table 表名;

补充1:只要不操作数据(触及灵魂),同时对表的操作之后,表结构仍然存在,必须以alter开头,表明关于表的某些内容发生变

化,比如(表的编码、表的名字、表的结构)。

        3.4 DML的操作语句(触及灵魂,数据发生变化)

               1、(插入一条数据---insert into)

       语法:insert into 表名(列名1,列名2,...)values(值1,值2,....);

               insert into stu(sname,age) values("lisi",23);//(1)总共三个字段,数据添加不完整,会显示对应的默认值
	       insert into stu(sname,age,sex) values("zhangsan",23,'1');//(2)
	       insert into stu values("ww",23,'2');//(3)简写形式

       注意:如果表的所有字段都添加值,则字段名可以省略,同时添加的字段名称和值(字段类型)要顺序匹配

       补充:添加日期类型的时候,日期要用单引号引起来,对于时间戳的日期类型(即使添加的是null,也会显示当前时间)

       2、(delete)

                删(删除表中的所有数据,还是条件删除,还是删除表结构)

语法:

        -- delete from 表名 [where 条件];
	delete from stu where sname = 'lisi';
	-- truncate table 表名;-- 删除所有记录(先删除表,再创建表结构)。 		

                 注意:对于不带条件的删除是最可怕的(会删除所有的数据)。

                 理解:delete、drop、trancate的区别?

                主要区别:TRUNCATE 和DELETE只删除数据(数据层面), DROP则删除整个表(结构层面),从效率表结构看。

详见:点击打开链接点击打开链接

3、改(更新--update):

语法:

update 表名 set 列名1 = 值1 , 列名2 = 值2... [where 条件]

                       理解:既然是更新(update),那必须知道是如何更新的,通过set来设置更新的数据。

未完待续。。。

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值