SQL的执行顺序
step 1.执行 from 找到表格
step 2.进行 where 条件过滤
step 3.进行 group by分组
step 4.执行 select 投影
step 5.进行 having 条件过滤
step 6.执行 order by 排序
SQL结构化查询语言
创建数据库:create database XXX(数据库名字);
数据库名字与java类似,但是不包含美元符号
显示数据库:show databases;
删除数据库:drop database xxx(数据库名字)
使用数据库:use xxx(数据库名字);
数据库的分类
整数,浮点型,字符串,日期时间,二进制数据类型
创建表的语法
create table<表名>(<列名><列的数据类型>[<列的约束>]);
创建 表 表名 列名 列的数据类型
添加表
alter table 表名 add 列名 列的数据类型
修改表名称
rename
数据完整性
实体完整性:一行数据表示一个实体,让表中的每一行有一个唯一的标识符
主键约束
每一张表,必须有主键
在表中定义一个主键,给主键加上约束后来确定表中每一行的数据都是唯一的
主键列必须是唯一的非空的
两种主键的设置方式
id int primary key;直接在最开始设置主键
primary key(id);在最后给赋予主键
唯一约束
创建唯一约束的时候也可以在建表时添加
唯一约束必须唯一,但是可以为null;不过在设置的时候可以设置不为null
id int unique not null;
/*设置not null是不允许为null,称之为非空约束
*意思是如果你要往里面添加数据,那就必须要填入相应的数据进行约束
*/
创建索引
create index idx_name on UserInfo(name);
DML语句:指增加删除修改查
insert 插入数据
插入挡寒数据语法:
1.insert into 表名(依次写上表的东西)value(xxx);
//括号内部是与表的东西相对应的信息,其中,字符串需要用引号隔出来,单引号双引号都可以
2.insert into 表名 value(<列表值>);
/*两者都可以用来插入数据,区别是第二种插入默认你全部都要进行插入
*第一种则是:你前面写一个,那么value就要跟一个,写几个,跟几个
*/
//查看数据:
select*from employee;
//主键设置自动增长:
auto_increment
//使用例:
id int primary key auto_increment;
//修改主键的自动增长初始值:
alter table 表名 auto_increment = 要修改的值;
修改:
update 表名 set 修改的东西 where 限定语句;
使用例:
update UserInfo set name = ‘list’ where id = 1;
删除行:
delete from 表名 where 过滤条件
delete from 表名 (无法删除自增
truncate table 表名(删库跑路
无法删除自增指的是:假设我已经设置了一个自增长,那个自增长已经从1涨到了6,此时如果我进行删除操作,下一次新添加进来的数据也会用7开始进行排序,之前的不会进行占位