数据库的意义
在学习python以来,写了一点程序,虽然也只是个人用的,但是数据的存储已经开始变得麻烦起来。而且自己的写的小小程序自然可以把数据存到本机,但是一旦是立足于网络通讯的软件,自然要有一个专门的存储数据的地方。而对于这一点,数据库也就应运而生了。
数据库的功能大致就包括
a. 将数据保存到文件或内存
b. 接收特定的命令,然后对文件进行相应的操作
而这之中的特定的命令,对应到MySQL自然就是SQL语句,所以相应的想要学习数据库,除了运行原理之外,首先得要学会sql语句。
一点区分
数据库有许多的类型,通过我个人粗浅的了解,大致分为关系型数据库与非关系型数据库。而既然有分类,那自然就有区别,虽然主要学习mysql,但我觉得还是应当了解一点两者的区别。
*上述图片非原创,转载于https://blog.csdn.net/lijinqi1987/article/details/51823506
数据类型
数据库的安装与连接等一系列操作,这里就不在赘述,要想了解sql语句的规则,首先要了解它所支持的数据类型。
数字:
- unsigned与signed表示有无符号
- 整数:tinyint int bigint
- 浮点数:float double 不精准,长度不长的可以用
decimal :内部存的时候按照字符串来存。非常精确
字符串
- char,varchar:后面必须加括号,内部表示长度(最长255字符)
char类型如果没有达到规定的长度,就会传入空值,让他占满规定长度。
varchaar传入空值,节省空间,但是速度没有char快。因为char的长度都是固定的,所以查找速度快。(非常重要的一点区别)
PS: 所以一般创建数据表时,定长(char)列往前放,变长的往后放。
定长举例:手机号码,变长:人物地址。
text:长度比255长得多,最长可超过65535.
一般来说数据库上传文件: 文件存硬盘,db存路径
时间类型
- DATETIME YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)
- TIMESTAMP YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
其它
*枚举 enum 表示以后的取值只能在枚举中给出的值中取
- 集合 set 同枚举类似,但是取值可以取多个值,但必须都在集合类型的值之中。
简单的语句
操作文件夹
create database ***;
create database *** default charset utf8; 给定默认编码以支持中文
show databases;#展示数据库
drop database ***;#删除数据库
操作文件
show tables;#展示表格
#创建表格
create table t1(
列名 类型 null,
列名 类型 not null,
列名 类型 not null auto_increment primary key,
id int,
name char(10)
)engine=innodb default charset=utf8;
# innodb 支持事务,原子性操作
# myisam myisam
#default charset=utf8; 给定默认编码
auto_increment 表示:自增
primary key: 表示 约束(不能重复且不能为空); 加速查找
not null: 是否为空
#清空表:
delete from t1;不会清空索引
truncate table t1;速度快,并且会清空索引
#删除表:
drop table t1;
操作文件中内容
插入数据:
insert into **(列名,列名) values(**,**);
删除:
delete from ** where **<6
修改:
update ** set age=18;
update ** set age=18 where age=17;
查看数据:
select * from**;
网友评论