MySQL(特点,数据库的创建,基本数据类型)

一.MySQL特点:
1.是开源的,不需要支付额外费用
2.支持大型地数据库
3.MySql可以运行在多个系统上,并且支持多种语言C,C++,python,java,php4.存储数据量比较大,32位系统最大可支持4GB,64位系统最大支持8TB5.是可以定制地,采用了GPL协议,可以修改源码来开发自己地MySql系统
停止MySql服务:开始-》所有应用-》windows管理工具-》服务,将MySql服务停止卸载mysql server卸载-》控制面板-》所有控制面板-》程序和功能,将mysql server卸载掉

二. MySql与Oracle的区别:
1.实例区别:MySql是轻量数据库 ,开源免费。Oracle是收费的并且价格昂贵MySql 一个实例可以操作多个库,而Oracle一个实例只能对应一个库
2.操作区别:在这里插入图片描述

三.创建数据库

打开数据库:cmd 指令 : mysql -u root -p1
(1).使用create database 数据库名 default character set 字符编码;
创建数据库: create database test default character set utf8;
查看数据库: show databases;
查看数据库编码: select schema_name,default_character_set_name from information_schema.schemata where schema_name = “test”;
(2).使用命令删除数据库Drop database 数据库名称
2.选择数据库 :需要在哪个库中创建表需要先选择该数据库use 需要选择的库的名称
例如: 创建一个名称为nuc的数据库,编码为 utf8 create database nuc default character set = utf8;
选择该数据库 use nuc;

四.数据类型
1.MySQL支持所有标准SQL数值数据类型作为SQL标准的扩展,MySQL也整数类型TINYINT,MEDIUMINT,BIGINT
MySQL数据类型:
tinyint(m) 1个字节
smallint(m) 2个字节
mediumint(m) 3个字节
int(m) 4个字节
bigint(m) 8个字节
数值类型中的长度m显示的是长度,并不表示存储长度,只有字段指定zerofill时有用例如: int(m),如果实际值为2 ,如果列指定了zerofill,查询结果就是002,左边用0来表示
2.浮点型
float(m,d) 8位精度(4字节),m总个数,d小数位double(m,d) 16位精度(8字节) m总个数 ,d小数位
3.字符串型
char(n) 固定长度
varchar(n) 可变长度
tinytext 可变长度
text 可变长度
mediumtext 可变长度longtext 可变长度 最多2的32次方-1字符

4.char和varchar的区别:
(1)如果char’(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。char类型存储的字符床末尾不能有空格,varchar 不限于此
(2)char类型的字符串检索速度要比varchar类型快
5.varchar 和text的区别:
(1)varchar 可指定 n,text 不能指定,内部存储varchar 是存入的实际字符数+1个字节(n<225)或2个字节(n>225),text是实际字符数+2个字节
(2)text类型不能有默认值
(3)varchar 可直接创建索引,text创建索引要指定前多少个字符,varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用
6.日期类型
date 日期2019-12-2
time 时间
datetime 日期时间都有
timestamp 自动存储记录修改时间

四.DDL创建表与删除表,修改表
1.创建表通过DDL语句创建表:例如:创建一个employees 表包含雇员ID,雇员名字,雇员薪水。create table employees(employee_id int,last_name varchar(30),salary float(8,2));navicat 工具先创建表,填入数据类型,之后再ctrl s保存为表起名字
2.查看已经创建的表:show tables;
3.删除表:drop tables;
4.修改表修改表名:alter table 旧表名 rename 新表名修改列名:alter table 表名 change column 旧列名 新列名 类型
5.查看表结构:desc 表名;
6.修改列类型alter table 表名 modify 列名 新类型;
7.添加列alter table 表名 add column 新列名 类型;
8.删除列alter table 表名 drop column 列名;

五.创建表时指定约束
1.创建表时添加约束查询表中的约束信息show keys from 表名
2.添加主键约束添加主键 : alter table 表名 add primary key(列名);添加自动增长:alter table 表名 modify 列名 int auto_increment;
3.删除主键约束 : alter table 表名 drop primary key
注意: 删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后再删除主键先删除自动增长可以用: alter table 表名 modify 列名 int null;再删除主键:alter table 表名 drop primary key;

六.非空约束
添加非空约束: alter table 表名 modify 列名 类型 not null;
删除非空约束: alter table 表名 modify 列名 类型 null;

七.唯一约束添加
唯一约束:alter table 表名 add constraint 约束名 unique(列名);
删除唯一约束: alter table 表名 drop key 约束名;

八.外界约束:
添加外界约束 : alter table 表名 add constraint 约束名 foreign key(列名) references 参照的表名(参照的列名)
删除外界约束: alter table 表名 drop foreign key 约束名; 还得删除索引: alter table emp drop index 索引名

九.选择插入
insert into 表名(列名1,列名2,列名3) values(值1,值2);
查看插入的内容: select * from 表名;

十.完全插入
insert into 表名 values(值1,值2,值3);
如果主键是自动增长,需要使用default 或者 null 或者 0 占位