MySQL学习笔记
2019.6.19
1.创建数据库
使用命令
任意打开一个数据库,选择QUERY->NEW QUERY->打开SQL窗口
书写创建库的命令
create database 库名 default character set 编码表;
示例:
create database wollo default character set utf8;
MySQL的注解为 ##注解内容
切换数据库到新建库
use 库名
使用图形化界面
在连接名上右键->new database->弹出新建库的窗口->输入库名->选择编码格式为utf8->点击ok即可
2.删除数据库
使用命令:
任意打开一个数据库,选择QUERY->NEW QUERY->打开SQL窗口
drop database 库名;
使用图形化界面:
选择要删除的库:右键->database即可
3.MySQL中创建表:
创建表语句:
create table 表名(字段名 类型 约束,字段名 类型 约束,。。。)
create table student( sid int(10) not null auto_increment primary key, sname varchar(100) not null, sage int(3), ssex char(4), sbirth date )
##主键自增在创建表的字段后使用 auto_increment
##新增字段 alter table student add money float; ##插入数据 insert into student values(default,'张三',18,'男','2018-02-22',2000.0);
MySQL常见字符类型
数值类型:
int(长度):表示整数类型的数据
float/double:表示浮点数
字符类型:
varchar(长度):动态分配存储长度
char(长度):分配固定长度
日期类型:
date:格式为 yyyy-MM-dd
datetime:格式为 yyyy-MM-dd hh:mm:ss 占用8个字节
timestamp:特点:会自动进行时区的转换,占用4个字节
time:时间
year:年份
其他类型:
TEXT:非二进制大对象(字符)比如:新闻
BLOB:二进制大对象(非字符)
4.约束
主键约束:
在创建表时在字段后使用primary key即可
在创建表语句的最后使用constraint 约束名 primary key(主键字段名)
在创建表的外部添加约束:alter table 表名 add constraint 约束名 primary key(字段名)
非空约束:
在创建表的时候直接在字段后使用not null即可
在创建表后使用alter table 表名 modify 字段名 类型 not null
注意:mysql的非空约束中空字符可以存储进去
检查约束:
问题:在MySQL中没有检查约束,但是使用check关键字不会报错
解决:使用代码逻辑进行无效数据的过滤
使用MySQL的存储过程(百度)
唯一约束:
在字段名后直接使用unique关键字
在创建表语句的最后面使用constraint 约束名 unique(主键字段名)
在创建表的外部添加约束:alter table 表名 add constraint 约束名 unique (主键字段名)
外键约束:
在字段名后直接使用 references 父表名(父表主键名)
在创建表语句的后面使用constraint 外键约束名 foreign key(字段名) refenences 父表名(父表主键名)
在创建表的外部添加约束:alter table 表名 add constraint 外键约束名 foreign key(字段名) refenences 父表名(父表主键名)on delete set null on update cascade;
create table student( sid int(10) not null auto_increment primary key, sname varchar(100) not null, sage int(3) not null, ssex char(4) not null, sqq varchar(20) not null unique, sbirth date, cid int(10) references clazz(cid) )
5.表的修改删除
添加字段:
alter table 表名 add 字段名 类型
删除字段:
alter table 表名 drop 字段名
修改字段类型:
alter table 表名 modify 字段名 新的类型
修改字段名:
alter table 表名 change 字段名 新的字段名 类型
修改表名:
alter table 表名 rename as 新的表名
删除表:
drop table 表名
6.其他操作
显示表信息
show tables
显示创建表语句
show create table 表名
显示库
show database
7.MySQL的数据操作
查询:
单表查询:
别名:直接空格在字段后使用
去除重复:使用distinct关键字
连接符:concat(字段名,字段名)
排序:order by 字段名
where子句:
函数:max,min,avg,sum,count
分组:group by 字段名
having:分组后筛选
多表查询:
SQL92
SQL99
子查询:
单行子查询
多行子查询
增加:
insert into 表名 values(值1,值2,值3,。。。);全字段插入
insert into 表名 values(主键,字段,字段,。。。)values(值1,值2,值3,。。。);部分字段插入
删除:
delete from 表名 where 条件
修改:
update 表名 set 字段名=值,字段名=值。。。where条件
8.分页查询
使用关键字limit
select * from 表名 limit m*n-n,n
m表示页数
n表示每页显示的数量
9.MySQL的数据备份
命令方式:
导出:
mysqldump -u root -p 数据库名 > dbname.sql
导入:
mysql>source d:\dbname.sql
工具方式:
Navicat上选择导入导出按钮