MySQL数据库(一)
一:MySQL的简单介绍
MySQL属于关系型数据库,数据是以行和列的形式去存储(表),表中的每一行叫一条记录,表中的每一列叫一个字段,表和表之间的逻辑关联叫关系.
二:MySQL的基本操作
(一)MySQL安装
Ubuntu上安装MySQL服务
1、安装服务端
sudo apt-get install mysql-server
2、安装客户端
sudo apt-get install mysql-client
Windows上安装MySQL服务
1、下载MySQL安装包(windows)
mysql-installer***5.7.***.msi
(二)启动和连接MySQL服务
1、服务端启动
1、查看MySQL服务的状态
sudo /etc/init.d/mysql status
2、停止MySQL服务
sudo /etc/init.d/mysql stop
3、启动MySQL服务
sudo /etc/init.d/mysql start
4、重启MySQL服务
sudo /etc/init.d/mysql restart
2、客户端连接
1、命令格式
mysql -h主机地址 -u用户名 -p密码
mysql -hlocalhost -uroot -p123456
2、本地连接可以省略 -h 选项
mysql -uroot -p123456
(三)基本SQL命令
*SQL命令的使用规则
1、每条命令必须以 ; 结尾
2、SQL命令不区分字母大小写
3、使用 \c 终止SQL命令的执行
*******************************
目录
一、库的管理 二、表的管理(创建|增删改查)
*******************************
一、库的管理
1、查看已有的库
show databases;
2、创建库(指定字符集,默认为latin1)
create database 库名 default charset=utf8;
3、查看创建库的语句
show create database 库名;
4、查看当前所在库
select database();
5、切换库
use 库名;
6、查看库中已有表
show tables;
7、删除库
drop database 库名;
*库的命名规则
1、可以使用数字、字母、_,但是不能使用纯数字
2、库名区分字母大小写
3、库名具有唯一性
4、不能使用特殊字符和mysql的关键字
二、表的管理
1、创建表(指定字符集)
create table 表名(
字段名 数据类型,
字段名 数据类型,
... ...
)default charset=utf8;
***数据类型***
一、数值类型(有符号signed和无符号unsigned)
1、整型
1)tinyint 微小整型(1个字节)
有符号(signed默认): -128 ~ 127
无符号(unsigned): 0 ~ 255
2)smallint 小整型(2个字节)
取值范围:0 ~ 65535
3)int 大整型(4个字节)
取值范围:2**32 - 1(42亿多)
4)bigint 极大整型(8个字节)
取值范围:0 ~ 2**64 - 1
2、浮点型
1、float(4个字节,最多显示7个有效位)
1、用法
字段名 float(m,n) m->总位数,n->小数位位数
float(5,2) 取值范围? -999.99 ~ 999.99
2、注意
1、浮点型插入整数时会自动补全小数位
2、小数位如果多于指定的位数,会对下一位进行四舍五入
2、double(8个字节,最多显示15个有效位)
1、用法
double(m,n)
3、decimal(M+2个字节,最多显示28个有效位)
1、用法
字段名 decimal(M,D)
二、字符类型
1、char(定长)
1、宽度取值范围:1~255
2、不给定宽度默认宽度为1
2、varchar(变长)
1、取值范围:1~65535
2、注意
1、varchar没有默认宽度,必须给定一个宽度值
2、char、varchar使用时都给定宽度,但不要超过各自的范围
**char和varchar的特点
1、char(定长)
浪费存储空间,但是性能高
2、varchar(变长)
节省存储空间,但是性能低
**字符类型的宽度和数值类型的宽度的区别
1、数值类型的宽度为显示宽度,只用于select查询时显示,和占用的存储空间大小无关,可用zerofill来显示效果
2、字符类型的宽度超过指定宽度则无法存储
create table t1(
id int(3) zerofill,
name char(20)
);
insert into t1 values(1,"lucy"); ## 显示效果为 001
三、枚举类型
*定义:字段值只能在列举的范围内去选择
1、enum 单选(最多有65535个不同的值)
字段名 enum(值1,值2,...)
2、set 多选(最多有64个不同的值)
字段名 set(值1,值2,...)
插入记录时 "Python,MySQL,Study
3、日期时间类型
1、year :年 YYYY
2、date :日期 YYYYMMDD
3、time :时间 HHMMSS
4、datetime :日期时间 YYYYMMDDHHMMSS
5、timestamp:日期时间 YYYYMMDDHHMMSS
6、注意
1、插入记录时datetime字段不给值默认返回NULL
2、插入记录时timestamp字段不给值默认返回系统当前时间
****************************************
2、查看创建表的语句(字符集)
show create table 表名;
3、查看表结构
desc 表名;
4、删除表
drop table 表名;
*表的命名规则(同库的命名规则)
*注意
1、所有的数据都是以文件形式存放在数据库目录下
2、数据库目录:/var/lib/mysql
5、表-字段的操作
***语法:alter table 表名 执行动作;
1、添加字段(add)
1、添加到末尾
alter table 表名 add 字段名 数据类型;
2、添加到第一列
alter table 表名 add 字段名 数据类型 first;
3、添加到指定位置
alter table 表名 add 字段名 数据类型 after 字段名;
2、删除字段(drop)
alter table 表名 drop 字段名;
3、修改字段数据类型(modify)
alter table 表名 modify 字段名 新的数据类型;
4、修改字段名(change)
alter table 表名 change 旧字段名 新字段名 数据类型;
5、修改表名(rename)
alter table 表名 rename 新表名;
********练习********
1、创建一个库STUDB,指定字符集为utf8,并切换到该库
create database STUDB default charset=utf8;
2、在STUDB中创建表stuinfo01,字段要求如下:
姓名name:变长,宽度为20
班级class:定长,宽度为5
年龄age:微小整型,要求不能输入负数
身高height:浮点型,小数位为2位
use STUDB;
create table stuinfo01(
name varchar(20),
class char(5),
age tinyint unsigned,
height float(5,2)
);
3、查看stuinfo的表结构
desc stuinfo;
4、查看 stuinfo 中的所有记录
select * from stuinfo;
5、删除表 stuinfo
drop table stuinfo;
6、删除库 studb
drop database studb;
MySQL数据库(一)的更多相关文章
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
- MySQL数据库和InnoDB存储引擎文件
参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...
- 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库
说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...
- CentOS下mysql数据库常用命令总结
mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...
- mysql数据库主从同步
环境: Mater: CentOS7.1 5.5.52-MariaDB 192.168.108.133 Slave: CentOS7.1 5.5.52-MariaDB 192.168. ...
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- mysql数据库开发常见问题及优化
mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...
- 如何在删除ibdata1和ib_logfile的情况下恢复MySQL数据库
昨天,有个朋友对公司内部使用的一个MySQL实例开启binlog,但是在启动的过程中失败了(他也没提,为何会失败),在启动失败后,他删除了ibdata1和ib_logfile,后来,能正常启动了,但所 ...
随机推荐
- 爬虫之进阶 twisted
简介 Twisted是用Python实现的基于事件驱动的网络引擎框架.Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库.Twi ...
- Game Engine Architecture 1
[Game Engine Architecture 1] 1.This book is really just the beginning of a fascinating and potential ...
- python+selenium页面自动化 元素定位实际遇到的各种问题(持续更新)
1.class属性有空格 (已验证) 当classname 中存在空格的时候,直接使用find_element_by_class_name时,会显示定位失败,此时,需要将classname中的空格替 ...
- 禁止网站显示文件目录列表的方法(htaccess)
主机默认都可以把网站内的文件以列表的形式显示出来: 修改.htaccess文件 在空间网站的根目录下找到.htaccess文件,空间路径一般在/home/YouUsername/public_html ...
- 区间求小于等于k的数字个数 hdu4177
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题目意思给出一个序列,叫我们求一个区间里面小于等于k的数字个数. 这里面我用分块和主席树两种方法 ...
- unity插件各领域王者
移动端手势操作 Easy Touch 获取 缓动 iTween 获取 可视化编程 Playmaker1.9.0 获取 UI NGUI,UGUI 获取 Shader着色器可视化编程 AmplifySha ...
- 玩转postman(一)-----基础
postman的GUI界面以及各个组件介绍 主界面如下 打开postman的GUI界面以及各个元素组件介绍 分为下三部分: 1.Head navigation bar (头部导航栏):此部分有以下选项 ...
- Spring--基础介绍一:IOC和DI
前面学习了Struts2和Hibernate. Struts2主要是用来控制业务层面逻辑和显示,告诉你什么时候走哪个action,跑去运行哪个class的什么方法,后面调到哪个jsp. Struts2 ...
- dotnet run 提示System.Net.Sockets.SocketException (10049): 在其上下文中,该请求的地址无效。
更换端口号试一下. 查看官方文档 PS: 使用帮助命令 -h,可以指定启动配置文件: dotnet run --launch-profile xxx 例如下面的配置文件,假如我们要使用codes-t ...
- .NET Core 微服务实例
关于微服务,MSDN给出了定义和架构图:https://docs.microsoft.com/zh-cn/azure/architecture/guide/architecture-styles/mi ...