1. 数据库介绍
概念: 数据存储的仓库
存储介质: 磁盘
2. 为什么不用文件存储数据?
- 文件的安全性低
- 文件不利于数据查询和管理
- 文件不利于存储和查询海量数据
- 文件在程序中不方便控制
3. 数据库基本操作
sql -- 结构化查询语句: 有具体的格式和语法规则
1.每一条sql语句都要以一个英文分号结束
2.库表字段名称不能使用关键字, 如果非要使用则需要使用``括起来
3.sql中不区分大小写
库的操作
查看: show databases;
创建: create database dbname;
create database if not exists dbname;
使用: use dbname;
删除: drop database dbname;
查看当前使用的数据库: select database();
数据类型
整形: bit(16), int ,bigint
浮点型: float(m,d), double(数字个数,数字中小数个数) 666.6 --> double(4,1)
decimal(m,d) 比较常用, 不容易精度损失
字符串型: varchar(32) 可变长度字符串, 32指最多存储32个字符, text 长文本类型
日期型: datetime
表的操作
创建: create table student(name varchar(32), age int, sex varchar(32));
create table if not exists student(name varchar(32), age int, sex varchar(32));
查看: show tables;
描述: desc student;
删除: drop student;
表中数据的增删改查
查询表中数据: select * from student;
新增: insert insert student values(‘张三‘, 18,1);
insert student(name, sex) value(‘李四‘,1);
insert student values(‘张三‘, 18,1),(‘王五‘,19,0);
修改: update update student set sex=0 where name=‘张三‘;
删除: delete delete from student where name=‘张三‘;
查询:
指定列查询: select sex,name from student;
查询字段为表达式 + 起别名: select height+weight hw from student;
去重: select distinct age from student;
排序: select * from student order by age desc,sex desc;(desc降序)(默认升序)
分页查询: limit
select * from student order by age desc limit 3; (查看前三条)
select * from student order by age desc limit 3 offset 0;(从第0条往后3条)
条件查询 where
关系运算符: <,>,=,<=>,<=,>=,!=
select * from student where name=‘王五‘;
空值匹配: is null; is not null;
select * from student where name is null;
范围: between...and...;
select * from student where age between 17 and 19;
子集匹配: in(子集)
select * from student where name in (‘王五‘,‘赵五‘);
模糊匹配: like
select * from student where name like ‘%五%‘;
逻辑运算符
与: 双目, and -- 连接两个比较条件, 两者同为真结果为真
select * from student where age>=17 and age<=19;
或: 双目, or -- 连接两个比较条件, 两者任意一个为真, 结果为真
select * from student where age>=17 or age<=19;
非: 单目, not -- 针对单个比较条件, 条件为真结果为真
select * from student where not age>=19;