如何选择使用那个数据库软件
1、是否开源
- 开源:MySQL、MariaDB、MongoDB(游戏网站、购物网站、论坛网站)
- 商业软件:Oracle、DB2、SQL Sever(政府部门、金融机构)
2、是否跨平台
- 不跨平台:SQL Server
关系型数据库存储
表1、学生信息表 姓名 年龄 班级 小明 25 三班 小张 25 六班
表2、班级信息表 班级 班主任 三班 老李 六班 老白
Windows安装MySQL服务
启动和连接MySQL服务
服务端启动
客户端连接
PATH="$PATH":/usr/local/mysql/bin
/usr/local/mysql/data
/var/lib/mysql
查看已由库
show databases;
创建库(指定字符集)
create database 库名 [character set utf8];
查看创建库的语句(字符集)
show create database 库名
查看当前所在库
select database();
切换库
use 库名;
查看库中已有表
show tables;
删除库
drop database 库名;
查看已有表
show tables;
创建表(指定字符集)
create table 表名(
字段名 数据类型,
字段名 数据类型,
...
字段名 数据类型)character set utf8;
查看已有表的字符集
show create table 表名;
查看表结构
desc 表名
删除表
drop table 表名;
insert 插入:
- insert into 表名 values(值1),(值2),...;
- insert into t1 values(1, ‘Lucy‘, 90),(2, ‘Green‘,86);
- insetr into 表名(字段1,...) values(值1),...;
- insert into t1(name,score) values(‘Peter‘,100); # id默认为空
select 查询:
- select * from 表名 [where 条件];
- select 字段1,字段2, from 表名 [where 条件];
alter 修改:
- 语法:
alter table 表名 执行动作;
- 添加字段(add)
alter table 表名 add 字段名 数据类型;
alter table 表名 add 字段名 数据类型 first;
alter table 表名 add 字段名 数据类型 after 字段名;
- 删除字段(drop)
alter table 表名 drop 字段名;
- 修改类型(modify)
alter table 表名 modify 字段名 新数据类型;
- 表重命名(rename)
alter table 表名 rename 新表名;
练习:
1、查看所有库
2、创建新库 studb
3、在 studb 中创建表 tab1 ,指定字符集utf8,字段有id、name、age
4、查看tab1的表结构
5、在tab1中随便插入两条记录
6、在tab2中的name、age两个字段插入两条记录
7、查看tab1中所有记录
8、查看tab1中所有人的姓名和年龄
9、查看tab1表中年龄大于20的信息
text / longtext(4G) / blob / longblob(4G)
数值类型宽度为显示宽度,只用于select查询显示,和占用内存无关,可用zerofill(用零填充)查看效果。
字符类型的宽度超过之后则无法存储
多选(set):
字段名 set(值1,值,2,...)
create table t5(
id int(3) zerofill,
name varchar(15),
sex enum("M","F","Secret"),
likes set("F","M","Study","Python")
);
多选插入记录时要insert into t1(likes) values("F,Study,Python");
timestamp不给值默认返回系统时间
create table t7(
id int,
name varchar(15),
birthday date,
money int,
shijian datetime)
insert into t7 values(1, "小明", 19900910, 5000, 20180731090000);
日期时间函数
- now() 返回服务器当前时间
- curdate() 返回当前日期
- curtime() 返回当前时间
- year(date) 返回指定时间的年份
- date(date) 返回指定时间的日期
- time(date) 返回指定时间的时刻
`select * from t7 where date(shijian)='20180712';`
`select * from t7 where date(shijian)>'20180712 and ....';`
日期时间的运算
- select * from 表名 where 字段名 运算符(时间-interval 时间间隔单位);
- 时间间隔单位:
1 day/ 2 hour/ 1 minute/ 2 year/ 3 month
1、查询1天以内的记录
select * from t7
where shijian > (now()-interval 1 day)
2、查询一年以前的记录
select * from t7
where shijian < (now()-interval 1 year)
3、查询1天以前,3天以内的记录
select * from t7
where shijian <(now()-interval 1 day) and
where shijian >(now()-interval 3 day;
原文:https://www.cnblogs.com/haoenwei/p/10601232.html