数据库基础
1、数据库的基础操作
一 创建数据库(重点)
1、创建数据库的语法
基本的语法:create database 数据库名称;
另一种语法:create database 数据库名称 character set 编码 collate 校对规则;
2、校对规则(了解):决定当前数据库的属性。
创建一个名称为my1的数据库。
create database my1;
创建一个使用utf-8字符集的my2数据库。
create database my2 character set 'utf-8';
二 查看数据库
1、show database; --查看所有的数据库
2、use 数据库名称;(*****) --使用数据库
3、show create database 数据库名称; --查询数据库的建的信息
4、select database(); --查询当前正在使用的数据库
三 表结构操作
1、语法:
create table 表名称(
字段1 类型(长度)约束,
......
字段n 类型(长度)约束
);
2、创建一张表结构(员工表练习)
create table employee(
id int,
name varchar(30),
gender char(5),
birthday date,
entry_date date,
job carchar(50),
);
3、执行SQL语句
查询当前正在使用的数据库 select database();
选择你要使用的数据库 use 数据库名;
执行创建表的SQL语句。
4、使用desc employee;查询表的信息
四 查看表和删除表
1、查询所有的表结构,前提条件,先切换到数据库中。
show tables;
2、查询表结构的详细的信息
desc 表名称;
3、查看表结构定义的信息
show create table 表名称;
删除表:
1、删除表结构
drop table 表名称;
五 修改表
1、添加一个新的字段
alter table 表名称 add 字段名称 数据类型;
2、修改字段的数据类型、长度或者约束
alter table 表名称 modify 字段名称 数据类型;
3、删除某一个字段
alter table 表名称 drop 字段名称;
4、修改字段的名称
alter table 表名称 change 旧字段 新字段 数据类型;
5、修改表的名称
rename table 旧表名 to 新表名;
六 <1>插入数据(insert添加)(掌握)
1、添加数据,使用insert关键字来添加数据
insert into 表(字段1,字段2,字段3)valuse(值1,值2,值3);---向表中的指定的字段中添加值
insert into 表 values (值1,值2,值3...); ---向表中的所有的字段添加值
七 修改数据的语句update
1、修改数据,使用update关键字来完成修改数据
update 表名称 set 字段1=值1,字段2=值2 where 条件;
修改字段1和字段2的值
如果没有where的关键字,说明修改的默认所有的记录
如果有where的关键字,修改的是符合条件的记录
2、注意
如果要是没有where的条件子句,默认是修改所有的数据。
如果有where的条件子句,修改的符合条件的数据。
八 删除数据的语句
1、删除语法的语法
delete from 表 where 条件;
如果不加where,默认删除所有的数据
如果添加where条件,删除符合条件的数据
2、例如:
删除表中名称为‘tom’的记录。
delete from user where username = ‘tom’;
delete from user where username = ‘tom2’;
九 查询数据的语句(select)
查询语句的语法
select * from 表; --默认查询所有的字段的数据
select 字段1,字段2,字段3 from 表; --查询指定的字段的数据
DISTINCT --去除重复的关键字
可以对查询的列进行运算
查询语句中可以使用as的关键字,起别名。
别名的真正的用法,采用的多表的查询,为了区分每张表,表起个别名。
as的关键字可以省略不限。中间需要使用空格
一般都是给表来起别名
select s.username,s.math from stu s;
select s.username,u.username from stu s,user u;
使用where的条件语句,进行查询条件的过滤
2. DQL语句
一 where子句后可以使用的符号
1、常用的符号
> < <= >= <>(不等于)
n --代表的范围。
select *from stu where math in(18,88,90) ---查询的结果可能是多条数据,数学的成绩
需要在in值的范围内
like ---模糊查询
like关键字的值的写法
select * from stu where username like '张_';----使用占位符,结果:张飞,张三,张x,张翼德(不符合)
select *from stu where username like '张%'; ----使用%占位符,结果是姓张的都会查询出来
like '%张'; ----结果:以张结尾的,飞张 医德张
*总结like的关键字
*条件需要使用单引号
*需要使用占位符
_ --代表的一个位置
% --代表的多个位置
and --与
or --或
not --非
between...and
二 order by 对结果进行排序
1、语法
order by 字段 asc | desc;
asc --代表升序(默认值)
desc --代表降序
2、注意
*order by 自己放在select的语句末尾。
三 聚集函数
1、求和,平均值,最大值,最小值。
2、聚集函数操作的都是某一列的数据。
count()---求数量
例如:select count(*)| count(列名)from 表; --某一列数据行的总数
sum() ---求某一列数据的和
例如:select sum(列名)from 表; --某一列数据行的和
注意:没有sum(*),求的某一列,sum对数值类型起作用。
4、总结
聚集函数、是函数,不要忘记编写()
计算都是某一列的数据
聚集函数
count() --求数量
sum() --求和
avg() --平均值
*ax() --最大值
min() --最小值
四 分组查询概念
1、分组产生聚集函数与分组效果。
2、select * from stu; --查询所有数据。默认是一组。
3、可以使用关键字 group by sex 根据字段进行分组。
注意
使用where的条件,如果有分组,where的条件是分组之前的条件。
新的关键字,having关键字进行分组的条件过滤。
总结
where关键字后不能使用聚集函数,而是having可以使用聚集函数!!