前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初识MySQL

初识MySQL

作者头像
用户9979303
发布2022-11-07 14:30:24
7900
发布2022-11-07 14:30:24
举报
文章被收录于专栏:over文章

 #1024程序员节|用代码,改变世界#

1.数据库和应用程序

应用程序

作用:响应操作并显示结果、向数据库请求数据 要求:美观、操作简单方便

数据库

作用:存储数据、检索数据、生成新的数据 要求:统一、安全、性能等

2.时下流行的数据库

Oracle

Oracle公司的产品 产品 免费、服务收费

SQL Server

针对不同用户群体的多个版本 易用性好

MySQL

开放源代码 网站应用广泛

MySQL的优势:

运行速度快 使用成本低 可移植性强 适用用户广

3.数据库的基本概念

数据库就是“数据”的“仓库 ” 数据库中包含表、关系以及操作对象 数据存放在表中

4.数据库管理系统(DBMS:data base manage system)

5.打开windows服务:Windows+r 输入services.msc

6.连接数据库时操作步骤:

(1.)首先打开管理员权限的cmd,输入net start musql80 开启服务(电脑每次重启都需要开启服务),然后再进普通权限的cmd,输入第(2)或(3)步骤里面的命令,如下:

(2)mysql -u root -p(-u 用户名 -p(密码) 注意:这是默认登录当前电脑省略了IP地址和端口号3306)

(3)mysql -h localhost -u root -P 端口号 -p

7.127.0.0.1或localhost(本机测试回环地址)

mysql -h 127.0.0.1

8.flush privileges:

(刷新缓冲区(设置了mysql相关配置之后,调用该命令就可以不需要重新启动mysql服务,使配置立即生效))

9.net start 服务名(例如:mysql80)(windows服务在管理员权限打开的cmd命令提示符里的启动服务命令)

net stop 服务名(例如:mysql80) :停止服务 net start 服务名(例如:mysql80) :启动服务 net restart 服务名(例如:mysql80) :重启服务

10.结构化查询语言:SQL(Structured Query Language)

名称

解释

命令举例

DML (数据操作语言)

用来操作数据库中所包含的数据

INSERT UPDATE DELETE

DDL (数据定义语言)

用于创建和删除数据库对象等操作

CREATE DROP ALTER

DQL (数据查询语言)

用来对数据库中的数据进行查询

SELECT

DCL (数据控制语言)

用来控制数据库组件的存取许可、存取权限等

GRANT COMMIT ROLLBACK

11.SQL中的运算符

一种符号,它是用来进行列间或者变量之间的比较和数学运算 包括算术运算符、赋值运算符、比较运算符、逻辑

运算符

说    明

+

加运算,求两个数或表达式相加的和,如6+8

-

减运算,求两个数或表达式相减的差

*

乘运算,求两个数或表达式相乘的积

/

除运算,求两个数或表达式相除的商,如5/3的值为1

%

取模运算,求两个数或表达式相除的余数,如:5%3的值为2

赋值运算符:=

把一个数或变量或表达式赋值给另一变量,如:Name='王华'

逻辑运算符

运算符

说     明

AND

当且仅当两个布尔表达式都为true时,返回TRUE。

OR

当且仅当两个布尔表达式都为false,返回FALSE。

NOT

布尔表达式的值取反

比较运算符

运算符

说     明

=

等于,例如:age=23

>

大于,例如:price>100

小于

<>

不等于

>=

大于等于

小于等于

!=

不等于(非SQL-92标准 )

12.创建数据库

语法:

CREATE DATABASE 数据库名;

示例:

CREATE DATABASE myschool;

13.查看数据库列表

语法:

SHOW databases;

14.选择数据库

语法:

USE 数据库名;

示例:

USE mybase; USE myschool;

15.删除数据库

语法:

DROP DATABASE 数据库名;

示例:

DROP DATABASE myschool;

16.安装mysql压缩包版本

1..下载相关压缩包版本

2.编写my.ini配置文件好之后并保存到解压好的mysql文件夹里

3. 管理员启动CMD,输入安装windows服务命令:sc install 服务名(安装windows服务) net start 服务名

4.服务启动失败,自己找错误代码原因

5.删除:以管理员的身份启动cmd =>进入mysql 的 bin 路劲 => 输入mysqld --remove,添加成功之后执行net stop mysql 命令关闭mysql服务

17.MySQL数据类型

类型

说明

取值范围

存储需求

TINYINT

非常小的数据

有符值: -27 ~ 27-1   无符号值:0 ~ 28-1

1字节

SMALLINT

较小的数据

有符值:  -215 ~ 215-1   无符号值:  0 ~ 216-1

2字节

MEDIUMINT

中等大小的数据

有符值:  -223 ~ 223-1   无符号值:  0 ~ 224-1

3字节

INT

标准整数

有符值: -231 ~ 231-1   无符号值:0 ~ 232-1

4字节

BIGINT

较大的整数

有符值: -263 ~263-1 无符号值:0 ~264-1

8字节

FLOAT

单精度浮点数

±1.1754351e -38

4字节

DOUBLE

双精度浮点数

±2.2250738585072014e -308

8字节

DECIMAL

字符串形式的浮点数(用于涉及到金钱的计算,不会丢失精度)

Decimal(M,D)

M+2个字节

(1) UNSIGNED属性

标识为无符号数

示例:

CREATE TABLE `tb_type` ( `sid` INT(4) ZEROFILL); INSERT INTO `tb_type1` VALUE(12) ,(1234),(123456);

(2)ZEROFILL属性

宽度(位数)不足以0填充

(3)若某数值字段指定了ZEROFILL属性, 将自动添加UNSIGNED属性

18.字符串、日期类型

字符串类型

说明

长度

CHAR[(M)]

定长字符串

M字节

VARCHAR[(M)]

可变字符串

可变长度

TINYTEXT

微型文本串

0~28–1字节

TEXT

文本串

0~216–1字节

日期类型

格式

取值范围

DATE

YYYY-MM-DD,日期格式

1000-01-01~ 9999-12-31

DATETIME

YY-MM-DD  hh:mm:ss:

1000-01-01 00:00:00 ~9999-12-31 23:59:59

TIME

hh:mm:ss:

-835:59:59 ~ 838:59:59

TIMESTAMP(时间戳)

YYYYMMDDHHMMSS

1970年某时刻~2038年某时刻,精度为1秒

YEAR

YYYY格式的年份

1901~2155

19.创建表

语法:

CREATE TABLE [IF NOT EXISTS] 表名 ( 字段1 数据类型 [字段属性|约束][索引][注释], …… 字段n 数据类型 [字段属性|约束][索引][注释] )[表类型][表字符集][注释];

示例:

#创建学生表 CREATE TABLE `student`( `studentNo` INT(4) PRIMARY KEY, ` name` CHAR(10), ……);

多字段使用逗号分隔

保留字用撇号括起来

单行注释:#...... 多行注释:/*……*/

20.字段的约束及属性

名称

关键字

说明

非空约束

NOT NULL

字段不允许为空

默认约束

DEFAULT

赋予某字段默认值

唯一约束

UNIQUE KEY(UK)

设置字段的值是唯一的  允许为空,但只能有一个空值

主键约束

PRIMARY KEY(PK)

设置该字段为表的主键 可唯一标识该表记录

外键约束

FOREIGN KEY(FK)

用于在两表之间建立关系,  需要指定引用主表的哪一字段

自动增长

AUTO_INCREMENT

设置该列为自增字段  默认每条自增1  通常用于设置主键

(1)主键

CREATE TABLE student( `studentNo` INT(4) PRIMARY KEY, ……);

(2.)注释

CREATE TABLE test ( `id` int(11) UNSIGNED COMMENT ‘编号’//注释此字段为编号字段 )COMMENT='测试表’ ;//注释此表为测试表

(3)设置字符集编码

CREATE TABLE [IF NOT EXISTS] 表名( #省略代码 )CHARSET = 字符集名;

21.创建学生表

代码语言:javascript
复制
/*如果表存在,先删除*/ 
DROP TABLE IF EXISTS `student`;
/*创建学生表*/
CREATE TABLE `student` (
`studentNo` int(4) primary key auto_increment comment '学号',
`loginPwd` varchar(20) not null comment '密码',
`studentName` varchar(50) not null  comment '姓名',
`sex` char(2) not null default '男' comment '性别',
`gradeID` int(4) comment '年级表ID外键',
`phone` varchar(50) comment '电子邮箱',
`address` varchar(255) default '地址不详' comment '地址',
`bornDate` datetime,
`email` varchar(50) comment '电子邮箱',
`iddentityCard` varchar(18) unique key comment '身份证号'
);

22.查看表(避免DOS窗口乱码,可执行SET NAMES gbk;)

(1)查看表是否存在

示例:

USE myschool; SHOW tables;

(2)查看表定义

DESCRIBE 表名; 或 DESC 表名;

示例:

USE myschool; DESCRIBE `student`;

23.删除表(在删除表之前,先使用IF EXISTS语句验证表是否存在 )

语法:

DROP TABLE [IF EXISTS] 表名;

示例:

USE myschool; DROP TABLE IF EXISTS `student`;

24.修改表(重点)

#修改表名 ALTER TABLE 旧表名 RENAME [TO] 新表名; #添加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [属性]; #修改字段 ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性]; #删除字段 ALTER TABLE 表名 DROP 字段名;

25.添加主键

语法一:(后期想要设置字段为主键的添加方法,原来不存在)

ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);

示例:设置grade表中gradeID字段为主键

ALTER TABLE `grade` ADD CONSTRAINT `pk_grade` PRIMARY KEY `grade`(`gradeId`);

语法二:(建表时就直接添加的方法)

`id` int(4) primary key auto_increment comment '年级编号',

26.添加外键

语法:

ALTER TABLE 从表表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 主表表名(关联字段);

示例:将student表的gradeID字段和grade表的gradeID字段建立外键关联

ALTER TABLE `student` ADD CONSTRAINT fk_student_grade FOREIGN KEY(`gradeId`) REFERENCES `grade` (`gradeId`);

27.MySQL系统帮助

语法:

HELP 查询内容;

示例:

HELP contents; HELP Data Types; HELP INT;

28.总结

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档