zoukankan      html  css  js  c++  java
  • 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 后跟路径; 结束输出日志。

    ===================================数据库相关操作:

    创建数据库:(创建一个数据库相当于在磁盘总创建了一个目录)
    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

     

  • 相关阅读:
    python中创建列表、元组、字符串、字典、集合
    python中字典的键不允许重复
    python中生成字典
    python中实现列表元素的倒序排列
    python中实现字典的逆向排列
    python中增加字典的键值对(项)、修改键值对的值
    python中访问字典
    Fortran 2003:完美还是虚幻?(节选)
    感谢裘宗燕老师!
    “符号化”的效用和缺失
  • 原文地址:https://www.cnblogs.com/Adobe_fans/p/9465807.html
Copyright © 2011-2022 走看看