数据库和SQL
数据库:一个存放数据的仓库,按照一定的数据结构来存储的。用户可以对文件中的数据运行新增、截取、更新、删除等操作。
SQL:结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统同时也是数据库脚本文件的扩展名
SQL的分类
DDL: 数据库定义语言, 与数据库/表结构: create, drop, alter
DML: 数据操纵语言: 操作表数据 insert update delete
DCL: 数据控制语言: 设置用户的访问权限 安全
DQL: 数据查询语言: select from where
数据库相关操作
-
创建数据库: create database 数据库的名字
create database leecore;
-
删除数据库 :drop database 数据库名字
drop database leecore;
-
修改数据库: alter database character set 字符集
alter database leecore character set utf8 ;
查看数据库:
查看所有数据库
show databases;
-
查看数据库定义: show create database 数据库名字
show create database leecore ;
-
查看当前正在使用的数据库
select database();
-
选中数据库: use 数据库的名字
use leecore
数据表的操作
1. 创建表 :
create table 表名(
列名 列的类型(长度) 约束,
列名1 列的类型(长度) 约束,
列名2 列的类型(长度) 约束
);
create table user(id int primary key auto_increment,
name varchar(20) not null,
sex int,
info varchar(20)
);
- 列的约束
主键约束: primary key
唯一约束: unique
非空约束: not null
2. 删除表 : drop table 表名
drop table user;
3. 修改表:
添加列 :alter table 表名 add 列名 列的类型 列的约束
alter table user add age int ;
修改列 : alter table 表名 modify 列名 列的类型 列的约束
alter table user modify info varchar(30);
修改列名 : alter table 表名 change 旧列名 新列名 列的类型 列的约束
alter table user change info userinfo varchar(20) not null;
删除列 : alter table 表名 drop 列名
alter talbe user drop userinfo;
修改表的字符集 : alter table 表名 character set 字符集
alter table user character set utf8;
修改表名 : rename table 旧表名 to 新的表名
rename table user to puser
4. 查看表 :
查看当前数据库中所有的表名:
show tables;
查看表的定义结构/创建语句(建表语句):show create table 表名:
show create table user;
查看表的结构:desc 表名
desc user;
数据的增删改查
1. 插入数据:
insert into 表名(列名1,列名2)values(值1,值2);
insert into 表名 values(值1,值2);
批量插入:insert into 表名values(值1,值2),(值1,值2),(值1,值2);
以下表为例
insert into user values(null,'饼干',24,'木子饼干');
2. 删除数据
delete from 表名 [where 条件]
delete from user where name='饼干';
truncate table 表名: 先删除表,再重建表
3. 更新数据
update 表名 set 列名=值, 列名=值 [where 条件]
update user set age=3 where name='饼干';
4. 查询数据
-
4.1. 通用格式: select [distinct] [*] [列名1,列名2] from 表名 where 条件 group by ..having 条件过滤 order by排序
select * from user where name='饼干';
-
4.2. 关系运算符:
<> 不等于 ;
!= 不等于;select * from user where age > 0;
4.3. 逻辑运算符:
and or not ;in 在范围中
select * from user where age in(3);-
4.4. 模糊查询 like:
_ 表示的单个字符
% 表示的是多个字符
查询所有姓饼两个字的学生成绩。select * from user where name like '饼%';
查询所有姓饼的学生成绩。
select * from user where name like '饼%';
别名查询 as
- 4.5. 聚合函数:
sum : 求和
select sum (age) from user;
avg() : 平均值
select avg(age) from user;
count() : 统计数量
select count(id) from user where age>3;
max() : 最大值
select max(age) from user;
min() : 最小值
select min(age) from user;
- 4.6. 排序 order by:
asc : ascend 升序
select * from user order by age ascend
desc : descend 降序
select * from user order by age desc
- 4.7. 分组 group by