MySQL基础 (麦子学员 php 第二阶段)
通过my.ini配置文件修改字符集:客户端字符集设置:[mysql]default-character-set=utf8 [mysqld] character-set-server=utf8 。设置之后保存,在重启mysql服务。登录mysql:mysql -uroot -p (-u用户名 -p密码 -h服务器名称(ip地址) -P端口号(3306)-D打开指定数据库 --prompt=name指定命令提示符(只针对当前连接有效) --delimiter=name指定分隔符 -V输出版本星系)再输入密码。退出:exit,quit,\q 。
得到mysql当前版本:select version(); 显示当前日期时间:select now(); 显示当前用户:select user();
mysql语句的编码规范:关键字与函数名称全部大写;数据库名称,表名称,字段名称等全部小写;sql语句必须以分隔符结尾;sql语句支持折行操作,只要不把单词、标记和引号字符串分割成两部分,可以在下一行继续写;数据库名称、表名称、字段名称尽量不要用mysql的保留字,如果需要使用的时候需要使用反引号(``)将名称括起来。
在命令行调出之前写过的命令,通过上下箭头键。
开启mysql的输出日志:\T 后跟路径;\t 结束输出日志。
===================================数据库相关操作:
创建数据库:(创建一个数据库相当于在磁盘总创建了一个目录)
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [[DEFAULT] CHARACTER SET[=]charset_name]
查看上一步操作产生的警告:SHOW WARNINGS;
查看当前数据库已有数据库:SHOW DATABASES;
查看指定数据库的定义:SHOW CREATE {DATABASE} db_name;
修改指定数据库的编码方式:ALTER {DATABASE} db_name [DEFAULT] CHARACTER SET [=] charset_name;
打开指定数据库:USE db_name;打开数据库后就可以在指定数据库里面建表等操作。
得到当前打开的数据库名称:SELECT DATABASE();
删除指定的数据库:DROP {DATABASE} [IF EXISTS] db_name;
====================数据表的操作
先有表结构,再有数据,数据表名称要求唯一,而且不要包含特殊字符。数据表由行row和列column构成的二维网络。
MySQL中的数据类型:整数类型,浮点类型,字符串类型,日期时间类型,二进制类型。
1、整数类型:TINYINT(-128~127,0~255,1字节),SMALLINT(-32768~32768,0~65535,2字节),MEDIUMINT,INT(2的32次方,0~4294967295,4字节),BIGINT(8字节),BOOL,BOOLEAN(TINYINT(1),O为false,其余为true,1字节)
MySQL帮助手册:HELP(? \h ) + (类型名称等其他命令):HELP CREATE TABLE;HELP CREATE DATABASE;
2、浮点类型:FLOUT[(M,D)]:占4个字节,M是数字总位数,D是小数点后面的位数,如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。 DOUBLE[M,D]:占8个字节,双精度浮点数。 DECIMAL[(M,D)]:定点数,和DOUBLE一样,但在内部以字符串形式存储数值,所以精度会更高,不会进行四舍五入。
3、字符串类型:CHAR(M):定长字符串,M代表存储的字符数,M个字节,0<=M<=255; VARCHAR(M):变长字符串,M个字节,L+1个字节,其中 L<=M 并且0<=M<=65535;TINYTEXT;TEXT:用于存储大量的文本字符串,MEDIUMTEXT;LONGTEXT;ENUM('value1','value2',...):1个或2个字节,取决于枚举值的个数(最多65535个值),当我们的值可以被列举出来的时候选用枚举类型,枚举类型的值只能从列举出的值中选一个;SET('value1','value2',...):集合,把值保存到集合里,集合里最多可以保存64个成员值,和枚举不同的是SET集合可以选择多个值。
4、日期时间类型:TIME存储时间;DATE存储日期;DATETIME存储日期时间;TIMESTAMP存储时间戳;YEAR存储年份,占用1个字节大小;一般都是通过整型来保存时间戳,这样方便计算。
5、二进制类型:主要是用来保存二进制数据,用的少,一般视频和图片都以路径的形式加以保存。
====================数据表的存储引擎
存储引擎就是表的类型。数据库的存储类型决定了表在计算机中的存储方式,用户可以根据不同的存储方式、是否进行事务处理等来选择合适的存储引擎。Mysql常用的存储引擎:InnoDB存储引擎(支持事务,回滚。并发控制,支持外键约束,读写效率低,占用空间大。默认引擎),MyISAM存储引擎(不支持事务),MEMORY存储引擎(存放在内存中,处理速度快,较少使用)。查看MySQL支持的存储引擎:SHOW ENGINES;查看显示支持的存储引擎信息:SHOW VARIABLES LIKE 'have%';查看默认的存储引擎:SHOW VARIABLES LIKE 'storage_engine';
====================数据表的创建
MySQL注释:#;--;
字段注释:COMMENT
--创建maizi数据库
CREATE DATABASE IF NOT EXISTS `maizi` DEFAULT CHARACTER SET 'UTF8';
USE `maizi`;
CREATE TABLE IF NOT EXISTS `user`(
id SMALLINT,
username VARCHAR(20),
age TINYINT,
sex ENUM('男','女','保密'),
email VARCHAR(50),
addr VARCHAR(200),
birth YEAR,
salary FLOAT(8,2),
tel INT,
married TINYINT(1)
)ENGINE=INNODB CHARSET=UTF8;
注意:当需要输入中文的时候,需要临时转换客户端的编码方式:SET NAMES GBK;这个转换只针对当前连接有效,而且是在输入以上命令以后有效。
建表时多个字段间,以逗号分隔。
查看当前数据库下的数据表:SHOW TABLES;(创建一个表相当于在磁盘上创建了一个文件。)
--课程表
CREATE TABLE IF NOT EXISTS course(
cid TINYINT,
courseName VARCHAR(50),
courseDesc VARCHAR(200)
);
--创建新闻分类表cms_cate
CREATE TABLE IF NOT EXISTS cms_cate(
id TINYINT,
cateName VARCHAR(50),
cateDesc VARCHAR(200)
)ENGINE=MyISAM CHARSET=UTF8;
====================下个视频:7
MySQL基础 (麦子学员 php 第二阶段)的更多相关文章
- 04 mysql 基础三 (进阶)
mysql 基础三 阶段一 mysql 单表查询 1.查询所有记录 select * from department; select * from student; select * from ...
- Mysql基础代码(不断完善中)
Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- 【夯实Mysql基础】记一次mysql语句的优化过程
1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...
- MySQL基础(非常全)
MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...
- mysql 基础篇5(mysql语法---数据)
6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...
- MySQL 基础语句
MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...
- MySQL:基础—数据分组
MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...
- MySQL基础学习总结
1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...
随机推荐
- [转]c#匿名类
首先让我们看一个例子, 假设我们并没有Person类, 并且我们关心的属性只有Name和Age. 下面的代码演示了我们如何在没有声明类型的情况下来构建一个对象的: 1: var tom = new { ...
- Linux mysql 基础操作
命令 #查看版本 mysql --version #进入mysql 命令 mysql -u root -p mysql -u root@localhost (没有密码的情况) #创建数据库 ...
- (C#) Handling and Raising Events
Handling and Raising Events .NET Framework 4.5 Other Versions 6 out of 20 rated this helpful - ...
- php的yii框架开发总结9
这一篇讲解怎么实现的自动发邮件的功能,我在网上查了很多资料,很多都是用定时检测来实现的,我试过,效率太低,网站也卡了. 后来就写了一个.bat文件来实现刷新页面,用了windows的定时任务定时来运行 ...
- 初看Mybatis 源码 (一)
Mybatis 的使用,首先需要构建一个SqlSessionFactory 实例.而该实例可以通过SqlSessionFactoryBuilder来创建. String resource = &quo ...
- [转]Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,下面演示一下Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现) (一):使用ArrayAda ...
- PAT1137
题意 一个学生的成绩由上机,期中,期末共3部分构成,现要求找出有资格获得证书的同学们. 证书获得者要求:上机分至少200,最终成绩及格. 最终成绩的生成规则:若期中分>期末分,则f = 期中 * ...
- API:相关词语笔记
1.SDK 软件开发套件,接口服务器把接口开发之后,把怎么使用的示范代码弄出来给API客户端的开发者参考. 2.头部信息 对头部信息的特殊符号有要求,例如: 持续更新中....
- jmeter参数化读取数据进行多次运行
jmeter参数化数据,可以使用csv,还可以使用数据库的方式 1.使用csv读取数据 在线程组中,配置原件中,选择csv data set config 1.本地创建了16个数据,存为test.tx ...
- POJ-2029 Get Many Persimmon Trees---二维树状数组+枚举
题目链接: https://vjudge.net/problem/POJ-2029 题目大意: 有N棵树在一个n*m的田里,给出每颗树的坐标 用一个s*t的矩形去围,最多能围几棵树 思路: 用二维树状 ...