mysql的单行注释_MySQL学习笔记(一)

https://blog.csdn.net/weixin_44051608/article/details/85163823

一、启动MySQL

1、 win+R或者CMD中输入“services.msc”打开服务,在里面找到MYSQL服务进行控制

2ac4bde90499152a44cc6b7c46ee446c.png

2、cmd下我们输入 net stop mysql80 来禁用MYSQL服务

7aa977bfd80d77e78f1d7be5ef70c586.png

3、cmd下我们输入 net start mysql80 来启用MYSQL服务

0e90bb7c23efd16598288408292ecadf.png

二、连接MySQL服务器

  1. 连接本地MySQL
mysql 

295516af3c3be53df314a393dcf98e1f.png

2、指令集

连接好后我们输入 h 来查看一下命令集:

fa34cef6863ab7d01df5876761af906c.png

3、退出:

q
exit
quit

eac8a58c7f7fc16a28ea9bab74150004.png

70b9d0e2aad6da05b805bc8b579c8fb2.png

4、连接远程MySQL

mysql -h127.0.0.1 -uroot -p

11c4834b17374f3ab9e6b2130e1075ae.png

或者使用:

mysql --host=127.0.0.1 --user=root --password

cd5574f6d0c01e7eb7708e9cb4a12b0b.png

三、MySQL目录结构

1、安装目录

34eae0f9938931c3e482a8a86f36feb3.png

2、数据目录

397c1597712eda284a3997049dc0efbb.png

d47d2bfe28a79e50e29c489be89eef7c.png

数据库:文件夹

表:文件夹中的文件

数据记录:文件内存储的内容

四、SQL通用语法

1、SQL可以单行或多行书写,以分号结尾。遇到分号之前随意换行

5ad07b177bd2962c09706b6dcb92731e.png

2、使用空格或者Tab提高可读性

3、不区分大小写,但关键字推荐用大写

4、单行注释 :① -- (两个横杠一个空格)② # (mysql特有)

5、多行注释:/*。。。。*/

五、MySQL数据类型

1、数值类型

cb8b6eba239faac838a13ebc54dc87ec.png

double(5,2) 表示总共5位,小数点后2位;

2、日期和时间类型

c08c1d3125f345c8c879968032bec282.png

如果使用TIMESTAMP类型,则如果不赋值或者赋值为NULL,则默认保存系统当前时间。

3、字符串类型

e331b51710d698b660267b23d458051c.png

varchar(20) 表示最大20个字符

六、SQL分类

1 DDL :用来定义数据库对象:数据库、表、列等;关键字:create drop alter

2 DML:用来对数据库表中的数据进行增删改;关键字:insert delete update

3 DQL:用来查询数据库表中的记录;关键字:select where

4 DCL:定于数据库的访问权限和安全级别及创建用户 关键字:GRANT REVOKE

3189a7226ebe472ba1d3f7668b0fca86.png

七、DDL操作:数据库

1、创建

①、创建数据库 create database 数据库名;

1b7cfb0153b7721851700f1b4304cc48.png

②、防止重复创建 create database if not exists 数据库名;

5d28e4731cc986a926ed863c6103a6e1.png

③、指定字符集创建 create database 数据库名 character set 字符集名;

b24bf5e2667de26d316d2016ab078349.png

④、判断存在否并指定字符集:create database if not exists 数据库名 character set 字符集名;

effcc45b811ba480d445d6fd991c0f23.png

2、查询

①、show databases; 显示所有数据库

9ba9d335510b56a2bfb6e28285a9b55d.png

数据库对应文件夹:

d1f9ed821aef25d517762fb5d059a783.png

其中information_schema数据库是特殊视图,并没有对应的物理文件。

mysql对应的是核心数据库

performance_schema对应的是性能数据库

以上数据库不要乱动。

②、查询创建某数据库时使用的语法(主要为了查看字符集)

show create database 数据库名;

2978a46e169a1ef3a930f11619e602fc.png

3、修改

①、修改字符集:alter database 数据库名 character set 字符集名;

54178f7028367f5b870768da895ed2c3.png

4、删除

①、删除数据库:drop database 数据库名;

697fdaaa140c37ab3fe4725f662f3d92.png

②、先检查有没有再删除:drop database if exists 数据库名;

df76a69c4b75ec7ba08021d5f58078f9.png

5、使用

① 查询当前正在使用的数据库名称:select database();

8981af3b93166ce97fd1f4ef45dc9b82.png

②、使用数据库: use 数据库名;

9a387730db817f21be5ba598cf4388a8.png

八、DDL操作:表

1、创建

①、创建表:create table 表名(列名1 数据类型1,列名2 数据类型2,...,列名n 数据类型n);

e9252a99f38a898b2551b11d3e8c1a23.png

完成后查一下:

08fc2e4f53507e5a00da162b96b4a2f4.png

2、查询

①、查询表集合: show tables;

3f4c4c48e2cc98bf6ebbd2a0f292c21b.png

②、查询表结构: desc 表名;

138b9b4d72e7ff6f719e8e589fdab549.png

3、修改

①、修改表名

alter table 表名 rename to 新表名;

640a308a858e136c3277f969873d64f1.png

②、修改表的字符集

alter table 表名 character set 字符集名;

ff953e6a3c9bf25d0d7a16598f4f3dd9.png

③、添加一列

alter table 表名 add 列名 数据类型;

04f71eb2527e35471b8a2c9f968a450b.png

④、修改一列

alter table 表名 change 列名 新列名 新数据类型;

28785da48c81827348cc37661d7d1d34.png

⑤、只修改列的类型

alter table 表名 modify 列名 新数据类型;

a9c2e75603653c4365079bfa9942a6e4.png

⑥、删除列

alter table 表名 dorp 列名;

74faa1604f5f12c0e67aec97daf4bda7.png

4、删除

drop table 表名;

drop table if exists 表名;

九、一个图形化软件mysql workbench

使用图形化软件来更加直观方便的操作数据库,现在MySQL下载会自带

连接数据库后如图:

1cf7ab4144a53cc387b1b3f9b22b5c66.png

数据库在哪?

5f08847f25e599b9d4da286d598b7f93.png

如何直观的看到表格?

1a2e768a21de901545ef480b3807fe5b.png

b034e9a3f87bb0c672380cf35fef83d4.png

如何操作数据库?

全部执行:

882138cf5026d5d7676c4020b1f15bd6.png

快捷键 ctrl +enter

单步执行:

95695380ca8c7f9e0f51336fce2d55e2.png

如何图形化为表中添加数据?

9e25d37f686d91100ee0b77e7466b87e.png

86b3d1ace2c17a7dab944e96ea3f30e9.png

创建RE图:

b266a480b1112eb390a021ae56a2276c.png

一路next,选择自己的数据库

0163ccfc16192e36e2f8529a927ebaf4.png

十、DML

1、添加数据

①、添加数据

insert into 表名(列名1,列名2.。。。列名n) values (值1,值2,。。。,值n);

insert 

②、如果给所有列添加值,可以不写列名;

insert 

注意:除了数字类型,其他类型需要使用单/双引号 引起来。

e3211cccdccc6179e247b0a98d72d662.png

2、删除数据

如果MySql运行在safe-updates模式下,该模式会导致非主键条件下无法执行update或者delete命令。输入如下命令退出此模式:

SET 

①删除数据

delete from 表名 where 条件;

cc222d098adc85e58f2ccb569a35d517.png

②、删除所有数据

delete from 表名;

e2fcc2f054b16a183e9c0ead92b5550d.png

③、删除整个表

truncate table 表名;

3、修改数据

①、修改数据

update 表名 set 列名1=值1,列名2=值2,......列名n=值n,where 条件;

fd75abbbfc8a2935d64c769190031344.png

注意:1、执行此命令同样需要退出SAFE_UPDATES模式

SET SQL_SAFE_UPDATES = 0;

2、如果不加where就会把表里的数据都改了

十一、DQL

1、语法

select
    

2、基础查询

①、多个字段查询

select 列名1,列名2 from 表名;

179b0bb3d88941715c9fa61fdc58e50f.png

②、去除重复

SELECT DISTINCT 列名1,列名2 from 表名;

de2b6a428938aa7d554d95c33ca47193.png

③、计算列

SELECT 列名1+列名2 from 表名;

bfa33672d89064272517cde4538371d4.png

上面例子中柳青的成绩相加不对,原因处在null上,所以应引入ifnull判断

2dbac2e5e757a98e1753c768532746b6.png
附:判断null
ifnull(列名,替换值);
当列名出现null时替换为替换值

④、起别名

select 字段名 as 别名 from 表名; #as也可以用空格代替

69923c5fb17639476c453a15eac4bb68.png

起别名后任何位置都可以用别名代替此名。

3.条件查询

①、where后跟条件

400f1df1919de9933bacfb69748d61bd.png

②、运算符

> < >= <= = != <>(这个也是不等于)

and 并且

between 条件1 and 条件2

or 或者

in (22,18,15); #在。。。中

is null 是null

is not 不是null

注意:null不能用 =来判断 需要用 is来判断

46acdf8f81c0f7c92df03bebeafe2635.png

③、LIKE 模糊查询运算符

占位符:_单个任意字符 %多个任意字符

e30efe82bec71393db49a3693e097cd4.png

0ed2c5408ad69a95e533da18ea295c46.png

4.排序查询

①语法

order by 排序字段1 排序方式1,排序字段2 排序方式2,。。。。

其中排序方式:
ASC:升序(默认)
DESC:降序

e5d7421aa808c74766ae46d7f167f621.png

0cd03396db37a6fbeeda636e3b6fe240.png

5、聚合函数

将一列数据按照一个整体进行计算 #列的纵向计算

①、count 计算个数

select count(列名) from 表名;

7b4fd25ae15963be5cdfbd9bce702f7a.png

②、max 最大值

select max(列名) from 表名;

bd43d3c59c2afc31bc843ae23547b60b.png

③、min

select min(列名) from 表名;

④、sum

select sum(列名) from 表名;

4be8d30dc9b51696898c96bbafd86951.png

⑤、avg

select avg(列名) from 表名;

e22e1ee1666f948fb88db696168b6e0a.png

注意:聚合函数会排除null

6、分组查询

①、语法

group by 列名;

de0b4fcc196c76dd8367d4e3d88da499.png

注意:分组后应该查询 分组或聚合函数才有意义。

②、分组加条件where

6d8519dfc3356e8785d51db62917b318.png

③、分组加条件where,完成分组后再加having筛选

b89e3a0478d4324da5b2ba5b9c7c244e.png

where和having的区别:

-where在分组前限定,having再分组后限定

-where后不可以跟聚合函数 having后可以

④、分页查询

limit 开始的索引 ,每页查询的条数;

开始的索引=(当前页码-1)*3

bf022d550d8780b90854238bc330ef25.png

注意:分页操作是一个“方言”,只能用于MySQL。

十二、约束

约束是对输入数据库的数据进行限定,为了保证数据的正确性、有效性、完整性!

1、主键约束 primary key

主键表示非空且唯一,每张表只能有一列主键,主键是记录的唯一标识

①、创建时约束

424df5b90617ee134e8d9afb238f2216.png

②、追加约束(其实就是修改列的数据类型)

alter 

③、删除约束 (其实就是修改列的数据类型)

alter table stu drop primary key;

④、主键自动增长

如果一个列是数值类型的,那么可以使用auto_increment 让其自动增长,一般配合主键来用。

12089f2b53dda7bb34aa4e84da8f9037.png

注意:自动增长只与上一条数据有关系

⑤、追加主键自动增长

alter table stu modify id int AUTO_INCREMENT;

⑥、删除主键自动增长(其实就是修改列的数据类型)

alter table stu modify id int;

2、非空约束 not null

①、创建时约束

ede5dff39730eb1ccf62ea04c6c2281c.png

②、追加约束(其实就是修改列的数据类型)

alter table stu modify name varchar(10) NOT NULL;

③、删除约束 (其实就是修改列的数据类型)

alter 

3、唯一约束 unique

①、创建时约束

2f5864576fc90ba024d7c2bb39d130f9.png

②、追加约束(其实就是修改列的数据类型)

alter table stu modify phone varchar(10) unique;

③、删除约束 #此语法有些特殊

alter 

注意,唯一并不限定null

4、外键约束 foreign key

外键:让表格中的一列数据关联其他表的数据

①、创建时约束

create table 表名(

。。。。

外键列,

constraint 外键名称 foreign key(要连接外键的列名) references 主表名称(主列表名称)

);

99e03e77fd0b2f5b2f5e68fdfc1a098e.png

②、追加约束

alter table 表名 add constraint 随意取一个外键约束名 foreign key (本表列名) references 外键(外键列名);

③、删除约束

alter 

④、级联更新

设置级联更新 来确保被外键数据改动,本表的关联外键的数据一起改动

在外键后添加级联ON UPDATE CASCADE

aaf695c86388732478da9d8a0b321924.png

此时修改外键数据,本表数据会随之改变

2d2d486b9e237cc7545526c9a1b483b2.png

⑤、级联删除

在外键后添加级联ON DELETE CASCADE

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值