专业做皮草的网站/网站自助搭建
视频各位可以看哔站:狂神说mysql教程
下一篇文章地址:https://blog.csdn.net/weixin_46635575/article/details/122821991
一、事前准备
1、mysql的安装
mysql5.7下载:下载地址
- 下载后解压到指定目录
- 添加环境变量【可以按下win搜索查看高级设置配置,具体的配置参数可以去找一下网上的,由于我已经安装过了,这里就不细入的写笔记了】
- 编写ini文件
[mysqld]
basedir=D:\Program Files\mysql-5.7\
datadir=D:\Program Files\mysql-5.7\data\
port=3306
skip-grant-tables
- 启动管理员模式下的CMD,并将路径切换至mysql下的bin目录,然后输入mysqld –install (安装mysql)
- 再输入 mysqld --initialize-insecure --user=mysql 初始化数据文件
- 然后再次启动mysql 然后用命令 mysql –u root –p 进入mysql管理界面(密码可为空)
- 进入界面后更改root密码
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
- 刷新权限
- flush privileges;
- 再次修改我们的my.ini文件,删除最后一句话skip-grant-tables
- 启动mysql
- net stop mysql
- net start mysql
- 可以连接测试了
2、数据库可视化工具
你可以像如下这样子登录数据进行文件的创建。
但是对我们初学者不太友好,用可视化工具更好。这里我是使用的如下,如果你也想用这个的话,自己走网上找教程,自己安装。
上面过程如果是第一次安装的朋友,第一次点这个程序就会配置,就在里面,你就可以点你对应的图标进行创建数据库了
到现在为止,你可以随便登录你自己的mysql文件进行文件的,记住下面的几个命令。
-
update user set password=password(‘123456’)where user=‘root’; 修改密码
-
flush privileges; 刷新数据库
-
show databases; 显示所有数据库
-
use dbname;打开某个数据库
-
show tables; 显示数据库mysql中所有的表
-
describe user; 显示表mysql数据库中user表的列信息
-
create database name; 创建数据库
-
use databasename; 选择数据库
-
退出mysql:exit; 退出Mysql
? 命令关键词 : 寻求帮助
– 表示注释
二、结构化查询语句
总体分类如下
1、数据库的操作
(1)命令行操作
-
创建数据库 : create database [if not exists] 数据库名;
-
删除数据库 : drop database [if exists] 数据库名;
-
查看数据库 : show databases;
-
使用数据库 : use 数据库名;
上面的代码是,比先创建,然后再查看,然后再使用,最后可以删除。
使用比较特殊的是,你进去了,里面就可以创建表了,接下来我们看表的创建
(2)可视化工具创建
2、数据表的操作
(1)表的统一操作格式
- 创建表的格式
create table [if not exists] `表名`('字段名1' 列类型 [属性][索引][注释],'字段名2' 列类型 [属性][索引][注释],#...'字段名n' 列类型 [属性][索引][注释]
)[表类型][表字符集][注释];
代码编写必须是“;”结尾,不变的格式create table 表明 ();
,然后具体后面的列类型,属性什么的接下来慢慢讲解。
(2)表字段能声明的类型
- 可以声明的字段类型
- 数值类型:比价常用的是int和bigint和double
- 字符串类型(比较常用的是varchar)
char和varchar的区别,我们在写类型的时候会这样写char(你想设置的大小值]), 比如char(2)
,vharchar(你想设置的大小值,最大能设置255),如varchar(200)
,他们两个的区别是:比如我们的QQ昵称,有的人是7位,8位,最大长度假设为20位,我们设置在20一下都可以,我们设置的大小,就是varchar(20),那假设你的QQ昵称为10位,那后面是不是申请得到的内存就多余了,浪费了内存,其实我们的varchar就可以自动的变长度,多余的空间自己回收。 - 日期类和事件类型(比价常用的DATETIME)
- 数值类型:比价常用的是int和bigint和double
(3)字段能设置的属性
-
null值
它的意思是没有值,或未知值。
不要用null 来进行算数运算。结果任然为null -
数据字段的属性
- UnSigned:它表示无符号的,声明该数据列不允许为负数。
- ZEROFILL:0填充的,不足位数的用0来填充,比如int(3),5你要用005来表示。
- Auto_InCrement:自动增长的,没天剑一条数据自动在上面 记录上加1(默认)
- 通常用于设置主键,且为整数类型。比如我们的id。
- 可以定义起始值和步长。
- 当前表设置为步长(AUTO_INCREMENT=100),只影响当前表。
- SET@@auto_increment_increment=5,只影响当前表的自增的表。
- NULL 和 NOT NULL:默认为null,即没有插值进来前,默认为null,如果设置为NOT NULL,则你这个字段必须添加值。
- DEFALUT:默认的,用于设置默认值,比如你创建某一个年龄字段,默认为0.
(4)分析一个案例
- 分析练习
//下面这行是创建表的标志字段:你可以直接写create table `jjj` ();当然你也可以这样写create table `数据库名字`.`jjj` ();
CREATE TABLE `blog`.`ms_article` (//下面这句话就是创建一个名字叫id,类型为bigint类型的属性,not null ,然后自增长`id` bigint(0) NOT NULL AUTO_INCREMENT,//类型为int,可以为null,默认值为null,注释`comment_counts` int(0) NULL DEFAULT NULL COMMENT '评论数量',//类型为bigint, 可以为null , 默认值为null 注释`create_date` bigint(0) NULL DEFAULT NULL COMMENT '创建时间',//这行一会再讲解`summary` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '简介',//一会讲解`title` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标题',//类型为int 可以为null 默认值为null`view_counts` int(0) NULL DEFAULT NULL COMMENT '浏览数量',//类型为int,不可以为null,无默认`weight` int(0) NOT NULL COMMENT '是否置顶',//类型为bigint,可以为null,默认为null`author_id` bigint(0) NULL DEFAULT NULL COMMENT '作者id',//类型为bigint,可以为null,默认为null`body_id` bigint(0) NULL DEFAULT NULL COMMENT '内容id',//类型为int,可以为null,默认为null`category_id` int(0) NULL DEFAULT NULL COMMENT '类别id',//这个一会再讲解PRIMARY KEY (`id`) USING BTREE//下面的一会再讲解
) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
- 自己练习一下
-- 目标 : 创建一个school数据库
-- 创建学生表(列,字段)
-- 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email
-- 创建表之前 , 一定要先选择数据库
如果通过Navicat进行创建的话,这样写
3、数据表的类型
(1)什么是表的类型
create table `student` (`id` int(10) not null auto_increment,`pwd` varchar(20) not null default 12345 comment '密码',`name` varchar(10) not null comment '名字',`sex` varchar(2) null default null comment '性别',`birthday` datetime default null ,primary key(`id`) using btree
)ENGINE=InnoDB DEFAULT CHARSET=utf8
不难发现我们最后有这样一句话:ENGINE=InnoDB DEFAULT CHARSET=utf8
,它是我们的引擎。
引擎是什么呢?文章参考地址,你可以看这篇文章
查看mysql支持的引擎
不同的引擎就对应着不同的表的类型,mysql默认的是InnoDB引擎。
(2)比较常见的表类型
MyISAM与InnoDB类型
-
适用 MyISAM : 节约空间及相应速度
-
适用 InnoDB : 安全性 , 事务处理及多用户操作数据表
(3)我们创建的数据库在哪个位置
4、设置引擎和设置数据表字符集
我们可为数据库,数据表,数据列设定不同的字符集,设定方法 :
- 创建时通过命令来设置 , 如 : CREATE TABLE 表名()CHARSET = utf8;
- 如无设定 , 则根据MySQL数据库配置文件 my.ini 中的参数设定
这里最建议的是我们在创建表的时候设置。
5、修改数据表
- 修改表格语法:用alter table 就表明 rename as 新表明的格式
- 添加字段: ALTER TABLE 表名 ADD字段名 列属性[属性]
- 修改字段:
- ALTER TABLE 表名 MODIFY 字段名 列类型[属性]
- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[属性]
- ALTER TABLE 表名 DROP 字段名【删除字段】
6、删除数据表
- 语法:drop table [if exists] 表明
- IF EXISTS为可选 , 判断是否存在该数据表
- 如删除不存在的数据表会抛出错误
7、其他重要语句
1. 可用反引号(`)为标识符(库名、表名、字段名、索引、别名)包裹,以避免与关键字重名!中文也可以作为标识符!2. 每个库目录存在一个保存当前数据库的选项文件db.opt。3. 注释:单行注释 # 注释内容多行注释 /* 注释内容 */单行注释 -- 注释内容 (标准SQL注释风格,要求双破折号后加一空格符(空格、TAB、换行等))4. 模式通配符:_ 任意单个字符% 任意多个字符,甚至包括零字符单引号需要进行转义 \'5. CMD命令行内的语句结束符可以为 ";", "\G", "\g",仅影响显示结果。其他地方还是用分号结束。delimiter 可修改当前对话的语句结束符。6. SQL对大小写不敏感 (关键字)7. 清除已有语句:\c