学习笔记—MySQL基础
程序员文章站
2022-08-31 12:48:19
数据库的介绍 mysql数据库介绍 开放源码的轻量级关系型数据库管理系统,体积小、速度快、操作便捷。 数据库的启动和连接 mysql数据库启动 在终端输入以下命令,启动mysql服务器 输入命令,查询mysql服务器状态 出现如下提示表示mysql服务器以启动成功 mysql数据库连接 输入账户和密 ......
数据库的介绍
mysql数据库介绍
开放源码的轻量级关系型数据库管理系统,体积小、速度快、操作便捷。
数据库的启动和连接
mysql数据库启动
在终端输入以下命令,启动mysql服务器
service mysql start
输入命令,查询mysql服务器状态
service mysql status
出现如下提示表示mysql服务器以启动成功
mysql数据库连接
输入账户和密码连接数据库
表示启动成功。
mysql数据库断开连接
输入exit,如果显示bye表示断开成功。
数据库的操作
显示数据库
show databases;
创建数据库
create database 库名 default character set utf8;
删除数据库
drop database 库名;
使用数据库
use 库名;
表示以成功切换到study数据库。
数据表的操作
显示数据表
show tables;
创建数据表
## 创建表语句 create tables 表名(字段名 类型 约束,字段名 类型 约束,......); ## 注意:mysql是没有序列的,但是可以在创建表的时候直接指定主键是自赠的。 在字段后使用 auto_increment 表示自增。 ## mysql常见字段类型 数值类型: int(长度)表示整数类型的数据 float/double表示浮点数 字符类型: varchar(长度)动态分配存储长度 char(长度)分配固定长度 日期类型: date:格式为yyyy-mm-dd datetime:格式为yyyy-mm-dd hh:mm:ss 占用8个字节 timestamp:特点:会自动进行时区的转换,占用4个字节 time:时间 year:年份 其他类型: text:字符数据 blob:二进制数据 ## 约束 主键约束: 在创建表时,在字段后使用 primary key 即可 在创建表语句的最后面使用 constraint 约束名 pirmary key(主键字段名) 非空约束: 在创建表的时候直接在字段后使用 nut null 即可 注意: mysql的非空约束中空字符是可以存储进去的。 检查约束: 在mysql中是没有检查约束的,但是使用check关键字又不会报错。 解决: 使用代码逻辑进行无效的数据过滤。 使用 mysql 的存储过程。 唯一约束: 在字段名后直接使用 unique 即可 在创建表语句的最后面使用 constraint 约束名 unique(字段名) 外键约束: 在字段名后直接使用 references 父表名(父表主键名) 在创建表语句的最后面使用 constraint 外键约束名 foreign key(字段名) references 父表名(父表主键名) ## 在表外部添加约束 ## 主键约束 alter table 表名 add constraint 约束名 pirmary key(主键字段名); ## 唯一约束 alter table 表名 add constraint 约束名 unique key(字段名); ## 非空约束 alter table 表名 modify 字段名 类型 not null; ## 外键约束 alter table 表名 constraint 外键约束名 foreign key(字段名) references 父表名(父表主键名)on delete set null on update cascase;
修改数据表
添加字段: alter table 表名 add 字段名 类型 约束; 删除字段: alter table 表名 drop 字段名; 修改字段类型: alter table 表名 modify 字段名 新的类型; 修改字段名: alter table 表名 change 字段名 新的字段名 类型; 修改表名: alter table 表名 rename as 新的表名;
删除数据表
drop table 表名;
查看表创建语句
show create table 表名;
表数据的操作
查询数据
## 单表查询 ## 查询全部 select * from 表名; ## 别名 直接在字段后使用即可 select 字段,字段 别名,字段 from 表名; ## 连接符 使用concat(字段名,“连接的字符”) ## 去除重复 使用 distinct 关键字即可 ## 排序 order by 字段名 ## where字句 select * from 表名 where 判断条件; ## 分组 group by 字段名 注意: 分组可以和字段一起使用 ## having 分组后筛选
## 多表查询 select * from 表名1 别名1,表名2 别名2 where 别名1.字段名 判断条件 别名2.字段名; select * from 表名1 别名1 inner join 表名2 字段名2 on 别名1.字段名 判断条件 别名2.字段名;
## 子查询 select * from 表名 where 字段名 in (select 字段名 from 表名 where 查询条件);
增加数据
insert into 表名 values(值1,值2,值3,...); 全字段插入 insert into 表名(主键字段名,字段,字段,...) values(值1,值2,值3,...); 部分字段插入
删除数据
delete from 表名 where 条件;
修改数据
update 表名 set 字段名=值,字段名=值,... where 条件;
分页查询
select * from 表名 limit x,y; x:从第几条数据开始查询 y:每页显示多少条数据 ## 每页显示n条,查询第m页的信息 select * from 表名 limit m*n-n,n;
数据库的备份
导出
## 导出整个数据库 mysqldump -u root -p 数据库名>/目录/文件名.sql; ## 只导出一个表 mysqldump -u root -p 数据库名 表名>/目录/文件名.sql;
导入
## 方法一 连接数据库之后输入 mysql>source /目录/文件名.sql; ## 方法二 连接数据库之前输入 mysql -u root -p 数据库名<文件名.sql;
上一篇: C#并发编程之异步编程(二)