show databases
查看有什么库
show tables
查看有什么表
use 库名
[进入库]
desc 表名
查看表的结构
改变自己数据库结构
建立数据库:Create database 库名
删除数据库:Drop database 库名
建立表: create table 表名(字段名 字段类型,字段名2 字段类型)
出现了不知道的东西,字段类型是什么?
就是字段的格式,例如 int 数字 [只能存储数字]
varchar 字符串 [能存储字符串] varchar(255) [能储存255个字符]
删除数据表: Drop table 表名
添加表里面的字段:
Alter table 表名 add 字段名 字段类型
删除表里面的字段:
Alter table 表名 drop 字段名
修改表内字段名:
Alter table 表名 change 旧字段名 新字段名 新类型;
插入数据(增):
insert into 表名 values (值,值)
`insert into 表名(列名1,列名2) values(值1,值2)`
查询语句:
select *from 表名 where 条件
select 字段名 from 表名 where 条件
修改数据:
update 表名 set 列名 = 新列值 where 列名 = 旧列值
update 表名 set 列名 = 新列值,列名2 = 新列值 where 列名 = 旧列值
删除数据
Delete from 表 where 列名=列值
结果排序
order by 1
排序第一个字段
order by 字段名
排序写了字段名的这个字段
默认升序 [asc]
降序[desc]
分页
limit n,m
limit 从那里开始,取多少行数据
多行数据一起输出
group_concat()
模糊查询:
like %a%
查询包含a的所有值
like a%
查询a开头的所有值
like %a
查询a结尾的所有值
休眠函数
sleep(2)
服务器进入摸鱼模式,故意拖2秒返回数据
查询当前所在库
select database();
数学运算符号:
+ - * /
他和PHP中没有啥区别
逻辑运算符:
and
[满足两个条件才可以] 既要这样,又要那样
or
[满足一个条件就可以] 这个或那个都行
联合查询和子查询
联合查询: union 将两个查询语句的结果一起输出 [重复的不输出]
union all 将两个查询语句的结果一起输出 [重复也输出]
需要满足条件,相同列数
子查询:
在原本的SQL语句中写小括号,优先执行一个查询语句
select*from ssg where password=(select uname from nf where id=1); => select *from ssg where password=10
SQL 约束类型
NOT NULL
:字段不能存储空值。
UNIQUE
:保证字段的每行都是唯一的值。
PRIMARY KEY
:主键,NOT NULL和UNIQUE的结合,确保某列(或多列)有唯一标识,用于找到特定记录。
FOREIGN KEY
:保证表中的数据匹配到(指向)另一个表中的主键。
CHECK
:保证字段的值符合指定条件。
DEFAULT
:规定没赋值时的默认值
select sno from sc where grade>= 75 group by sno having count(*)>3;
where用于筛选由from指定的数据对象,group by 用于对where的结果进行分组,having 则是对group by以后的分组数据进行过滤。
查询将sc表中成绩大于或等于75的记录按学号分组,对分组记录计算,选出记录数大于3的各组的学号值形成结果表。
where子句与having短语的区别在于作用对象不同。
where子句作用于基本表或视图,从中选择满足条件的元组。
having短语作用于组,从中选择满足条件的组。
当等值连接字段相同,并且在select子句中去除重复字段时,则称为自然连接。
列名前都加上了表名前缀,这是为了避免混淆。如果列名在参加连接的各表中是唯一的,则可以省略表名前缀。
连接分为内连接,外连接。
内连接:结果集中只保留了符合连接条件的元组。
外连接:连接的结果不但需要包含满足条件的元组而且还需包含表中不满足条件的元组。
集合查询
并操作UNION、交操作INTERSECT和差操作EXCEPT。