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

 

posted @ 2018-08-13 02:10  dotNet_Fan  阅读(278)  评论(0编辑  收藏  举报