sql语句

~创建数据库

create database 数据库名称;

~创建数据库,判断不存在,再创建

create database if not exists 数据库名称;

~删除数据库

drop database 数据库名称;
drop database if exists 数据库名称;

~删除表

drop table 表名;
drop table if exists 表名 ;

~使用数据库

use 数据库名称;

~创建表

create table 表名(
列名1 数据类型1,
列名2 数据类型2,

列名n 数据类型n
);

~查询表结构

DESC student3

~查询某个数据库中所有的表名称

show tables;

~往表中添加数据

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

~删除数据

delete from 表名 [where 条件]

~修改数据

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

~查询表中的记录语法:

select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定

~查询去除重复数据

select distinct 字段名1 from 表名

~查询年龄大于等于20 小于等于30

SELECT * FROM student WHERE age >= 20 AND age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;

~查询年龄22岁,18岁,25岁的信息

SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
SELECT * FROM student WHERE age IN (22,18,25);

~查询英语成绩为null

SELECT * FROM student WHERE english IS NULL;

~查询英语成绩不为null

SELECT * FROM student WHERE english IS NOT NULL;

~查询名字中第一个字是’马’的有哪些? like

SELECT * FROM student WHERE NAME LIKE ‘马%’;

~查询姓名第二个字是化的人

SELECT * FROM student WHERE NAME LIKE “_化%”;

~查询姓名是3个字的人

SELECT * FROM student WHERE NAME LIKE ‘___’;

~查询姓名中包含德的人

SELECT * FROM student WHERE NAME LIKE ‘%德%’;

~聚合函数

  1. count:计算个数
    一般选择非空的列:主键
    count(*)
    2. max:计算最大值
    3. min:计算最小值
    4. sum:计算和
    5. avg:计算平均值
    SELECT MAX(age) FROM student3–最大年龄

~根据年龄降序排列

SELECT * FROM student3 ORDER BY age DESC
–ASC升序(默认值)
–DESC降序

~分组查询

where 和 having 的区别?
---- where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
---- where 后不可以跟聚合函数,having可以进行聚合函数的判断。

– 按照性别分组。分别查询男、女同学的平均分

SELECT sex , AVG(math) FROM student GROUP BY sex;

– 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人

SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;

~分页查询

SELECT*FROM student3 LIMIT 3,3
第一个参数表示从第几条数据开始查
第二个数据表示查几条数据

————————————————————
~约束
概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。

  • 分类:
    1. 主键约束:primary key
    2. 非空约束:not null
    3. 唯一约束:unique
    4. 外键约束:foreign key

非空约束:not null,某一列的值不能为null

CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL – name为非空
);
创建表完后,添加非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
删除name的非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20);

唯一约束:unique,某一列的值不能重复

CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE – 手机号
);
删除唯一约束
ALTER TABLE stu DROP INDEX phone_number;
在表创建完后,添加唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;

主键约束:primary key。非空且唯一

删除主键
ALTER TABLE stu DROP PRIMARY KEY;
创建完表后,添加主键
ALTER TABLE stu MODIFY id INT PRIMARY KEY
自动增长:
1. 概念:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长
在创建表时,添加主键约束,并且完成主键自增长
create table stu(
id int primary key auto_increment,-- 给id添加主键约束
name varchar(20)
);

内连接

通过条件将两个表中符合条件的数据列出来。
SELECT * FROM 表1 JOIN 表2 ON emp.dept_id = dept.id;

左连接

以左边的表为基准,列出左表所有记录,右表中若无记录,用NULL表示
SELECT*FROM 表1 LEFT JOIN 表2 ON t1.dept_id = t2.id;

右连接

和左连接相反
SELECT*FROM 表1 RIGHT JOIN 表2 ON t1.dept_id = t2.id;

创建索引

CREATE INDEX index_name ON table(column)

修改表的索引

ALTER TABLE table_name ADD INDEX (column)

删除索引

DROP INDEX index_name ON table

查看表中存在的索引

show index from mytable

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值