MySQL入门学习

目录

一、CMD登录数据库

二、MySQL基础语句

 三、操作数据表

1、创建数据库

2、 数据表的增、删、改、查

增(Create)

删(Delete)

改(Update)

查(Retreive)


[]:文章中的[]表示可写可不写,即选择性选项

一、CMD登录数据库

在键盘上按下win+r键打开窗口,输入cmd,再在键盘上按下ctrl+shift+enter键使用管理员权限打开cmd(有管理员权限才可以直接在cmd中启动mysql服务),进入cmd后输入

net start mysql  # 启动MySQL服务,mysql为自己设置的服务名,默认是mysql

net stop mysql  # 关闭MySQL服务,没有使用MySQL服务后我会习惯性关掉,关闭时才输入

mysql -u root -p  # 登录MySQL,输入此语句后会让你输入密码,root为用户名,默认是root

quit/exit  # 退出MySQL

二、MySQL基础语句

我认为是较为基础的,但是有些不常用

注:MySQL语句要以分号结尾

#、/**/、-- (-- 后面有一空格,在MySQL里面为注释、其中/**/为多行注释)

select now();  显示当前数据库的时间                select version();  显示数据库版本

show warnings;  查看警告信息

show databases;  查看所有数据库                    use 数据库名;  使用数据库

select database();  查看当前使用的数据库        show tables;  查看该数据库下所有表

create database 数据库名 charset=utf8;  创建数据库,并将编码格式更改为utf-8,若在安装数据库时已设置编码格式为utf-8,则可不用添加charset

show create database 数据库名;  查看创建数据库的语句

drop database 数据库名;  删除数据库

 三、操作数据表

1、创建数据库

create database classes;

要创建数据表,先要进入数据库(use 数据库名)才能创建。创建数据表需要设置一个primary key(主键),要写明表中每个字段的数据类型和约束,类型和约束在另一篇文章会讲。

use classes;  # 进入数据库
create table students(
    id int unsigned primary key auto_increment not null comment '编号',
    name varchar(30),
    sex enum('男', '女', '保密') default '保密' comment '性别',
    age smallint unsigned default 0 comment '年龄',
    high decimal(5, 2) comment '身高'
);

comment:创建表时添加注释内容,并将其保存到表结构中

show tables;  查看所有数据表         

show tables like '匹配模式';  通过匹配模式查看数据表,%匹配零个或多个字符,_仅匹配一个字符,如 like 'stu%' 可以查到students表,而 like 'stu_' 不可以查到students表

show table status [from 数据库名] [like '匹配模式'];  查看当前数据库中数据表的状态

show create table 表名;  查看创建数据表时的语句

desc 表名;  简单查看数据表的结构

show full columns from 表名;  查看数据表的完整结构

rename table 旧表名 to 新表名;  更新表名

drop table 表名;  删除数据表

2、 数据表的增、删、改、查

增(Create)

添加字段(列):alter table 表名 add 列名 类型[与约束];

插入数据:

insert into 表名 values(data)[, (data)];  全部字段插入,要一一对应,可同时插入多行数据

insert into 表名 (id, name) values(data);  部分字段插入,不能为空的(not null)必须插入数据,主键必须插入数据(除非加了auto_increment约束,会自动增加,不用写)

alter table students add is_del bit default 0;
insert into students values(1, '小红', '女', 15, 160.00), (2, '小明', '男', 15, 169.00);
insert into students (id, name, age) values(3, '小刚', 15);
insert into students (name, sex) values('西施', 2), ('貂蝉', default);

删(Delete)

注:进行删除操作的时候一定要谨慎,保证你和数据库必定有一个能跑

删除字段删除的是一整列的数据,删除数据的是一整行(该行所有字段)的数据

删除字段:

alter table 表名 drop 列名;

alter table students drop is_del;

物理删除数据:

delete from 表名 [where 条件];  指定删除条件

delete from 表名;  将表中的数据全部删除

delete from students;
delete from students where name='小刚';

逻辑删除数据:用一个字段来表示,这条信息已经不能再使用了

alter table students add is_del bit default 0;
update students set  is_del=1 where name='小刚';
select * from students where is_del=0;

改(Update)

对字段进行修改:

修改字段(列)名及类型:alter table 表名 change 原列名 新列名 类型[与约束];

修改字段类型:alter table 表名 modify 列名 类型[与约束];

移动字段位置:alter table 表名 modify 列名 类型[与约束] after 列名/first;

对数据进行修改:
update 表名 set 列 1=值 1, 列 2=值 2 where 条件; 

update students set age=15;
update students set sex=2 where name='貂蝉';
update students set age=18, is_del=1 where sex='女';

查(Retreive)

select * from 表名 [where 条件];

select 字段1, 字段2 from 表名 [where 条件];  查询指定列,先查询谁就先显示谁

select 字段 [as 字段别名] from 表名; 为字段起别名

select 表别名.字段, 表别名.字段 from 表名 as 表别名;

select distinct 字段 from 表名:用来查看字段中非重复的数据,不建议同时去重多个字段

select * from students where id>2;
select s.sex as '性别', s.age from students as s;
select distinct sex from students;

条件查询:(>, <, >=, <=, =, !=) ,MySQL中判断是否等于为=,而非==

逻辑运算符:(and, or, not)

模糊查询:like(%可替换零个或多个字符, _仅替换一个字符)

rlike(正则):select * from 表名 where 字段 rlike '正则表达式';正则表达式的简单介绍以及在Python的使用_ghostwxm的博客-CSDN博客https://blog.csdn.net/ghostwxm/article/details/123480487?spm=1001.2014.3001.5501​​​​​​​范围查询:

in()表示在一个非连续的范围内                         not in()表示不在一个非连续的范围内

between...and...表示再一个连续的范围内        not between...and表示不在一个连续的范围内

判空:

is null()查询为空的数据                                     is not null()查询非空的数据

select * from students where id=3;
# 判空以及逻辑运算下面语句都有体现
select * from students where high is not null and sex='女';
/*
__表示查询两个字符,小_表示查询以小开头的人,%小%表示查询名字里有小的人
因为我前面没有设置三四个名字的人,大家有兴趣自己尝试一下
*/
# 模糊查询
select name from students where name like '__';
select name, high from students where high like '%00';
# 正则查询
select name from students where name rlike '^小';
# 范围查询
select name, age from students where age in (14, 17);
select name, age from students where age between 14 and 17;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值