MySql是关系型数据库管理系统,由瑞典MySql公司开发,后来被sun公司收购,sun公司后来又被Oracle公司收购,目前属于Oracle旗下的产品。
官网地址:www.mysql.com/downloads
集成安装
图形化处理工具
用于辅助学习
SQL(structure query language)
是结构化查询语句,是一种用来操作RDBMS(关系型数据库管理系统)的数据库语言,当前关系型数据库都支持使用SQL语句进行操作。
SQL语句主要分为:
在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的特征,包括数据字段的类型、约束。
整数:int
小数:decimal or float
字符串:varchar(可变字符串),char(不可变字符串)
日期时间:date, time, datetime
枚举类型:enum
特别说明的类型
decimal表示浮点数,如decimal(5,2)表示共5位数,2位小数,如123.45
char表示固定长度的字符串,char(5),如果我只输入’abc’,存储会自动填充两个空格’abc ’
varchar表示可变长度的字符串,如varchar(5),如果我输入’abc’,其就存储’abc’
字符串text表示存储大文本,当字符串大于4000时,推荐使用
我们知道图片、音频、视频是以二进制形式存储的,数据库中并不会保存这些二进制,而是上传到服务器某个文件中,数据库中的表存储的是这些文件的路径
更全面的数据类型,请参考:http://blog.csdn.net/anxpp/article/details/51284106
数值类型
字符串
时间数据类型
主键-primary key:物理上存储的顺序
非空-not null:此字段不允许null
唯一-unique:此字段的值不允许重复
默认-default:当不填写时使用默认值
自增-auto_increment:插入新数据时,插入数据时无需设置此列,默认将自增,表中只有一个自增咧
外键-foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
mysql -u root -p
exit or quit
show databases;
show version();
show now();
DDL(database defination language)
create database demo;
create database demo charset=utf8;
show create database demo
use demo;
select database();
数据表的操作
show tables;
create table demo1(id int,name varchar(10))
create table demo2(
id int not null primary key auto_increment,
name varchar(10)
);
desc demo2;
create table students(
id int primary key auto_increment,
name varchar(12),
age tinyint unsigned default 18,
high decimal(5,2),
gender enum('男','女', '保密') default '保密',
calss_level int
);
create table classes(
id int primary key auto_increment,
name varchar(12)
);
show create table students;
alter table students add birthday date;
alter table students modify birthday date default ‘1996-6-6’;
alter table students change birthday birth date default ‘2019-11-29’;
alter table students drop high;
增删改查(crud)
insert into classes value(1,‘终极一班’);
insert into students values(0,‘shell’,default,179.99,‘男’,1,‘2020-1-1’);
insert into students values(null,‘shell’,19,180,‘男’,1,‘2020-1-1’);
insert into students values(default,‘shell’,20,212.22,‘男’,1,null);
其中枚举类型的插入可以使用下标,从1开始
insert into students values(default,‘joy’,20,160,2,1,‘1996-1-1’);
insert into students(gender
) values(2);
insert into students(name
,gender
) values(‘fafa’,2);
insert into students values
(0,‘yao’,40,212,1,2,default),
(0,‘jr’,25,202,1,2,default);
update students set name=‘iron man’,age=28 where name=‘shell’ and age=18;
注意如果使用删除语句忘了where 条件会删除整个数据表的数据!!!找不回来了的!!!
以下代码仅供参考,请勿轻易尝试!!!如果一定要删除建议使用逻辑删除
物理删除:
delete from students;
delete from students where id = 2;
逻辑删除:
先创建新的字段is_delets,其里面填入的值为0 or 1,0表示False,1表示Trye,is_delete=0表示该行未被删除,is_delete=1表示已删除
alter table students add is_delete tinyint default=0;
update students set is_delete=1 where id = 1;
基本的查询
这里只介绍最基本的,详细的内容,后面文章介绍
select * from students;
select distinct name from students;
select distinct name,age from students;
如果不重复后面有两个字段,当name重复且age也重复时,才会被筛选。
select name,age,calss_level from students;
select name as ‘名字’, age as ‘年龄’ from students;
名字 | 年龄 |
---|---|
iron man | 28 |
shell | 20 |
joy | 20 |
NULL | 18 |
fafa | 18 |
yao | 40 |
jr | 25 |
shell | 20 |
jr | 25 |
iron man | 28 |
以上是对数据库的基本介绍,如果你看到了这里,感谢!!!