MySQL---MySQL基础:

MySQL基础:

SQL简介:

​ 当面对一个陌生的数据库时,通常需要一种方式与它进行交互,以完成用户所需要的各种工作,这个时候,就要用到 SQL 语言了。

​ SQL,它是使用关系模型的数据库对应的语言。

SQL语句分类:

DDL语句:

​ 数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。

DML语句:

​ 数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 和select 等。

DCL语句:

​ 数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

DDL语句:

1.连接MySQL服务器:

mysql -u root -p 
#-u 后面还是用户名 ,-p后面还是密码

2.创建数据库:

create database dbname;
#其中dbname是要创建的数据库的名字,要加分号
#SQL语句用分号代表结尾

3.查看数据库:

show databases;

4.选择/切换数据库:

use dbname

5.查看当前数据库里的数据表:

show tables;

6.删除数据库:

drop database dbname;

7.创建数据表:

create table stus(name varcahr(10),age int);
#其中stus是要创建的数据表名字,name、age是字段名,varchar、int数据类型

8.查看数据表结构:

desc stus;

9.删除数据表:

drop table stus;

10.修改数据表的表名:

alter table stus rename stus1;

11.修改数据表的字段:

alter table stus modify name varchar(30);
#其中stus是表名,name varchar(30)是要修改name字段为varchar(30)

12.增加数据表的字段:

alter table stus add weight int;

13.删除数据表的字段:

alter table stus drop weight;

14.更改数据表的字段名:

alter table stus change weight tizhong int(4);

DML语句:

1.插入记录:

insert into stus(name,age) values("shao",20);

2.更新记录:

update stus set age=18 where name="shao";

3.删除记录:

delete from stus where name="shao";

4.查询记录:

select * from stus;
#查询出stus中所有的记录(全部字段都展示出来)
select name from stus;
#查询出stus中所有的记录(只将name字段都展示出来)
select distinct age from stus;
#查询出stus中age不重复的记录(只将age字段都展示出来)
#条件查询
select name from stus where age=18;
#查询出stus中age是18的记录(只将name字段都展示出来)
#排序
select name,age from stus order by age desc;
#查询出stus中age所有的记录(只将name、age字段都展示出来)
#并且是按照age的大小降序排序,dexc表示降序,asc表示升序
#限制
select name,age from stus order by age limit 1,3;
#查询出stus中age所有的记录(只将name、age字段都展示出来)
#并且是按照age的大小排序(默认是升序)
#将排序完的第二条数据开始,展示三天数据(其中limit 1,3 表示从第2条开始,取3条数据)
#limit x,y ; X:起始偏移量默认从0,y:显示的行数
#聚合
select age,count(1) from stus group by age having count(1)>1;
#统计人数大于1的年龄
#count(1) 字段名
#having count(1)>1 过滤
#常用的聚合操作:sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)
#表连接
select name1,name2 from stus,stus1 where stus.age=stu1.age;
#根据stus的age=stu1中的age,将两个表连接到一起,在展示出name1,name2
#左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录
#select name1,name2 from stus left join stus1 where stus.age=stu1.age;
#右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录
#select name1,name2 from stus right join stus1 where stus.age=stu1.age;

DCL语句:

grant select,insert on dbname.* to "shao123"@"localhost" identified by "123";
#创建一个用户名为shao123,密码为123的用户,具有对dbname数据库里的所有表的select、insert权限
revoke insert on dbname.* from "shao123"@"localhost";
#将用户shao123的insert权限去除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值