目录
常用数据类型
1、int:整形
2、double(m,d)
decimal(m,d):浮点数类型 (m指定长度,d表示小数点位数)
3、varchar(size):字符串类型
4、timestamp:日期类型
数据库基本操作
不管执行什么语句,都要在语句的最后加上;(分号)。
1、创建数据库
create database 数据库名;
2、显示当前数据库
show databases;
3、删除数据库
drop database 数据库名;
4、使用数据库
use 数据库名;
5、创建表
create table 表名;
6、查看表结构
desc 表名;
7、插入数据
insert into 表名 values(对照列的类型写入);
8、查找语句
全列查找
select * from 表名;
指定列查询
select 列名,列名…… from 表名;
指定查询字段为表达式(在查询时,同时进行一些运算)
select 列名+(-*/)列名 from 表名;
查询字段指定别名
select 列名…… as 别名 from 表名;
针对查询结果去重
select distinct 列名 from 表名;
针对查询结果进行排序
select * from 表名 order by 列名 asc/desc;//升序/降序
分页查询
select * from 表名 limit n;// 从0开始,筛选n条结果 select * from 表名 limit n offset s;//从s开始,筛选n条结果
条件查询
select 列名 from 表名 where 条件;
常用运算符:
and,or,not 与或非 (and优先级比or高)
>,>=,<,<= 大于,大于等于……
= 比较相等,不比较NULL
<=>比较相等,比较NULL
!=,<> 不等于
between a and b 范围匹配,在闭区间 [a,b]范围内
in (option, ...) 如果是 option 中的任意一个,返回 TRUE(1)
is NULL 是 NULL
is not NULL 不是 NULL
like 模糊匹配,% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符
以上查找的结果都是一个"临时表",数据库的表都是在硬盘上的,而此处的这个查询结果临时表,不是在硬盘上,而是在内存中,随着进行了输出之后,数据也就被释放了。所以上面操作都是对临时表操作,对原始数据不会产生影响。
当用户输入sql之后,客户端就会把这个sql包装成网络请求,发给服务器,服务器这边收到请求之后,就会操作硬盘,从硬盘中读取数据把数据包装成响应。客户端收到这个响应数据之后,就会临时的在内存中把这个响应结果保存起来并且在显示器上输出(标准输出上打印)随着打印完毕,在客户端内存中保存的结果数据也就被释放了。
9、修改语句
update 表名 set 列名=值…… where 条件;
10、删除语句
delete from 表名 where 条件;
这里修改的是原始数据。
举例说明:
创建数据库:
显示当前数据库:
创建名为student的表(需要操作数据库中的表时,需要先使用该数据库):
查看表结构:
插入并查看:
insert进行插入的时候,可以只插入其中的某一列或者某几个列的. 此时其他的列将采用默认值
可一次性插入多列,用(),隔开
如果某一种类型是datetime,可以用以下三种方式插入
查找:
指定列查找
指定查询字段为表达式
查询字段指定别名
针对查询结果去重
针对查询结果进行排序
升序
降序
如果有NULL值,默认NULL值为最小值
条件查询
% 匹配任意多个(包括 0 个)字符 ,可以匹配到任意张开头的名字
_ 匹配严格的一个任意字符 ,一个_能匹配到一个字符。
分页查询
查询前三名的成绩
修改:
把张三语文成绩改为80
把所有人语文成绩进行修改
将总分前三的每个人语文成绩加上10
删除:
约束类型
1、not null--- 指示某列不能存储 NULL 值。
2、unique---保证某列的每行必须有唯一的值。
3、default---规定没有给列赋值时的默认值。
指定默认值后,没有给该列赋值时,该列默认值为指定默认值。
4、primary key(最重要的约束)not null 和 unique 的结合。确保某列(或两个列多个列的结合)有有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。 主键约束,相当于数据的唯一标识。对于一个表来说,只能有一个列被指定为主键。
自增主键 primary key auto_increment,当设定好自增主键之后,此时插入的记录,就可以不指定自增主键的值了(直接使用null来表示) ,交给mysql自行分配即可。
5、foreign key ---保证一个表中的数据匹配另一个表中的值的参照完整性。
也称外键约束,描述的是两张表的两个列之间的"依赖关系”子表依赖于父表(子表引用自父表)要求子表中对应的记录得在父表中存在。
举个例子:创建一个班级表和学生表如下,每个学生都要都属于一个具体的班级,这个班级首先得存在,这里学生表依赖班级表,就把学生表称为”子表“,班级表称为”父表“。
这种情况就可以用外键约束来描述。
外键约束,描述的是两张表的两个列之间的"依赖关系",子表依赖于父表(子表引用自父表)要求子表中对应的记录得在父表中存在,班级表中的班级只有1,2,3,此时我在子表学生表中插入一个班级为10,就会出现错误,插入失败。
插入班级表中有的班级就能插入成功。
外键约束也同样在约束父表,当父表中的某个记录被子表依赖的时候,此时尝试删除修改都会失败。