数据库基础-sql基础语法-mysql基础【更新中】

数据库基础-sql基础语法-Mysql

DDL

操作数据库,表等

数据类型
  • MYSQL支持多种类型

score double(总长度,小数点后保留的位数)

在这里插入图片描述

删除表

Drop TABLE 表名;

删除表时判断表是否存在

Drop table if EXISTS 表名;

创建(creat)

create table 表名(

​ 字段名1 数据类型,

​ …

​ 字段名n 数据类型n

最后一行末尾,不能加逗号

查询(retrieve)

show table;

当前数据库下所有表得名称;

use mysql;

进入表

show mysql;

查询

desc func;

desc 表名称;

查询表的结构

修改(update)
1.修改表名

ALTER TABLE 表名 RENAME TO 新的表名;

2.添加一列

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

3.修改数据类型

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

4.修改列名称

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

—ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 约束条件 ALTER TABLE mytable CHANGE col col1 CHAR(32) NOT NULL DEFAULT ‘123’;

删除(delete)
5.删除列

alter table 表名 drop 列名;

DML

对表中的数据进行增删改

添加数据

1.给指定列添加数据

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

2.给全部列添加数据

insert into 表名 values (值1,值2,…);

3.批量添加数据

insert into 表名(列名1,列名2,…)values(值1,值2,…),(值1,)…

– 查询所有数据

SELECT
	* 
FROM
	stu;-- 给指定列添加数据 insert into 表名(列名1,列名2,...)values(值1,值2,...);
INSERT INTO stu ( id, NAME )
VALUES
	( 1, '张三' );-- 给所有列添加数据 ,列名的列表可以省略
INSERT INTO stu ( id, NAME )
VALUES
	( 1, '张三' );
ALTER TABLE stu CHANGE gender sex CHAR ( 32 );
INSERT INTO stu ( id, NAME, sex, birthday, score, email, STATUS )
VALUES
	( 2, '李四', '男', '1999-11-11', 88.88, 'lisi@itcaet.cn', 1 ),	( 2, '李四', '男', '1999-11-11', 88.88, 'lisi@itcaet.cn', 1 );
	
	
	

	update stu set sex = '女'   where name = '张三';

update   stu set birthday = '1999-12-12',score =99.99 where name = '张三';


修改数据

1.修改表数据

update 表名 set 列名1=值1,列名2=值2,。。。[where条件];

  • 修饰语句中不加条件,则所有数据都修改!

删除数据

delete from 表名 [where 条件] ;

修饰语句中不加条件,则所有数据都修改!

DQL

对表中的数据进行查询

基础查询

去除重复记录

select distinct address from stu;

SELECT DISTINCT address from stu ;
–查询姓名,数学成绩,英语成绩

–as 起别名,可以省略

select name ,math 数学成绩,english as 英语成绩 from stu;

条件查询

1.条件查询语法

select 字段列表 from 表名 where 条件列表;

  • - 查询年龄大于20岁的学员信息
      select * from stu where age >20;
      --查询年龄大于等于20岁的学员信息
      select * from stu where age >=20;
      -- 查询年龄大于20岁并且年龄小于等于30岁年龄的学员信息
      select * from stu where age >20&& age <=30;
      select * from stu where age >20 and age <=30;
      select * from stu where age BETWEEN 20 and 30;
    
    --查询入学日期在‘1998-09-01’到‘1999-09-01’之间的学员信息
    select * from stu where hire_date BETWEEN '1908-09-01' AND '1999-09-01';
    -- 查询年龄等于18岁
    select * from stu where age = 18;
    -- 查询年龄不等于18
    select * from stu where age != 18;
    select * from stu where age <> 18;
    -- 查询年龄
    select * from stu where age = 18 or age=20 or age =22;
    select * from stu where age in (18,20,22);
    -- 查询英语成绩为null的学员信息
    -- 注意:null 值的使用不能使用=,!=。需要使用is is not 
    select * from stu where english is null;
    select * from stu where english is not null;
    

– 查询姓马的学员信息
select * FROM stu where name like ‘马%’;
– 查询第二个字是花的学员信息
select * FROM stu where name like ‘_花%’;
– 查询包含德的学员信息
select * FROM stu where name like ‘%德%’;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZlPiMbnm-1653909518646)(C:\Users\liguo\AppData\Roaming\Typora\typora-user-images\image-20220524214134743.png)]

排序查询
1.排序查询语法

排序方式

  • ASC:升序排列(默认值)
  • DESC:降序排列

如果有多个排序条件,当前边的条件值都一样时才会根据第二·条件进行排序

  • - 查询学生信息,按照数学成绩降序排序
      SELECT * from stu order by age ;
      -- 查询学生信息,按照数学成绩降序排序
      select * from stu order by math desc;
    
    -- 查询学生信息,按照数学成绩降序排序,如果数学成绩一样,再按照英语成绩升序排序
    select *from stu order by math desc , english asc ;
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kz2bTI7X-1653909518646)(C:\Users\liguo\AppData\Roaming\Typora\typora-user-images\image-20220525190737061.png)]

聚合函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0WssJBOM-1653909518646)(C:\Users\liguo\AppData\Roaming\Typora\typora-user-images\image-20220525213608262.png)]

-- 一共多少个
select count(id) from stu ;
select MAX(english) from stu;
分组查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c6Rva9Jr-1653909518647)(C:\Users\liguo\AppData\Roaming\Typora\typora-user-images\image-20220525214658038.png)]

select name, sex, AVG(math) from stu GROUP BY sex ;
-- name 没有意义,不分组字段。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2iMMcLFp-1653909518647)(C:\Users\liguo\AppData\Roaming\Typora\typora-user-images\image-20220525215403775.png)]

分页查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6m2zC7lT-1653909518647)(C:\Users\liguo\AppData\Roaming\Typora\typora-user-images\image-20220528101848276.png)]

select字段列表

from 表名列表

DCL

对数据库进行权限控制

约束
约束的概念和分类

1.约束的概念

约束是作用于表中列上的规则,用于限制加入表的数据

约束的存在保证了数据库中的数据正确性,有效性和完整性

2约束的分类

约束名称描述关键字
非空约束保证列中所有数据不能有null值NOT NULL
唯一约束保证列中所有数据各不相同UMIQUE
主键约束主键是一行数据的唯一标识PRIMARYKEY
检查约束保证列中的值满足某一条件CHECK
默认约束保存数据时,未指定值则采用默认值DEFAULT
外键约束外键用来让两个表的数据之间建立连接,保证数据的一致性和完整性FOREIGN KEY

Tips :MYSQL不支持检查约束

非空约束

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yncAFFQQ-1653909518648)(C:\Users\liguo\AppData\Roaming\Typora\typora-user-images\image-20220528204547073.png)]

*约束案例
Drop table if exists emp;

CREATE table emp(
id int primary key auto_incremaent ,-- 主键且自增长
ename varchar(50) not null unique ,-- 非空且唯一
joindate date not null,
salary double(7,2) not null ,
bonus double(7,2) default 0 -- 奖金,如果没有奖金默认为0
);

select * from emp;

insert into emp(id,ename,joindate,salary,bonus) values(1,'张三','1999-11-11',8800,5000);

insert into emp(id,ename,joindate,salary,bonus) values(3,'王五','1999-11-11',8800,null);

-- 自动增长:auto_increment:当列是数字类型并且是唯一约束
在非空约束下可以省略关键字的赋值
外键约束
1.概念

外键用来让两个表的数据建立连接,保证数据的一致性和完整性

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值